본문 바로가기
IT 및 프로그래밍

운영체제의 발전 과정과 유형 중 유형에 대하여

by 데이터 석사 2024. 10. 22.

컴퓨터 시스템의 발전 과정과 응답시간, 용도나 데이터 입력 수단에 따라 운영체제를 구별할 수 있다. 이 중 일괄 처리 시스템은 앞서 일괄 처리의 개념과 함께 이미 설명했으므로 여기서는 다른 운영체제 유형을 살펴보자.

운영체제의 발전 과정과 유형 중 유형에 대하여

 

다중 프로그래밍 시스템

일괄 처리 시스템의 매우 큰 문제는 프로세스가 다른 일을 하고 있을 때는 입출력 작업이 불가능하여 프로세서와 메인 메모리의 활용성이 떨어진다는 것이다. 이는 다중 프로그래밍을 도입하여 해결했다.

 

다중 프로그래밍은 프로세서가 유휴 상태일 때 수행 중인 둘 이상의 작업이 프로세서를 전환하여 이용할 수 있도록 작동한다. 곧 여러 프로그램을 메모리에 적재한 후 하나의 프로그램이 프로세서를 이용하다가 입출력 동작 등을 하여 프로세서를 이용하지 않는 유휴 시간 동안 다른 프로그램이 프로세서를  이용하도록 하는 시스템이다.

 

어떤 작업 a가 프로세서를 이용하다가 입출력 동작 중이면 그동안 작업 b 프로세서를 이용한다. 작업 c는 프로세서 수행 시간을 받을 때까지 기다리도록 하여 프로세서가 쉬지 않게 함으로써 프로세서 이용을 극대화한다. 예시를 들면, 프로그램 A가 프로세서를 이용하다가 작업 중이거나 입출력을 하려고 기다리는 유휴시간이 발생하면 프로그램 B가 프로세서를 이용하는 방법으로 여러 프로그램을 순차적으로 수행한다. 프로세서의 유휴시간에도 다른 프로그램을 작업하여 동시에 여러 프로그램을 수행하는 것과 같은 효과를 내어 프로세서 효과를 극대화한다.

 

다중 프로그래밍의 장점은 높고 효과적인 프로세서 사용률이 증가하여 마치 많은 사용자의 프로그램이 거의 같은 순간에 프로세서를 나누어 받는 듯한 느낌을 준다. 그래서 다중 프로그래밍 운영체제는 아주 까다롭다. 여러 작업을 준비 상태로 두기 위해 이를 메모리에 보관해야 하고, 일정 형태의 메모리를 관리해야 한다. 더욱이 다중 작업이 실행할 준비를 갖추고 있으면, 이 중 하나를 결정하는 결정 방법이 필수다. 이게 바로 인터럽트를 사용하여 실행하는 프로세서 스케줄링의 다중 프로그래밍으로 현재 운영체제의 메인 주제이다.

시분할 시스템

시분할 시스템은 다중 프로그래밍을 논리적으로 확장한 개념으로 프로세서가 여러 작업을 교체하며 실행한다. 다양한 터미널에 위치한 많은 사용자가 특정 컴퓨터 시스템을 동시에 이용할 수 있게 한다. 대다수의 사용자가 같은 순간에 컴퓨터의 자원을 공유할 수 있는 기술이다.

 

1970년 초까지는 시분할 시스템을 생성하기가 아주 까다롭고 값도 많이 들어 일반화하지는 못했으나, 이제는 대부분 다중 프로그래밍과 시분할 방법을 모두 지원한다. 시분할 시스템 아이디어는 1960년 이전에 제시되었으며, 초기에 개발한 시스템 중 하나가 MIT에서 개발한 CTSS이다. CTSS는 1961년 IBM 709에 넣어서 이용했다.

 

여러 사용자에게 짧은 간격으로 프로세서를 바꾸어 가며 나누어줘 마치 자기 혼자 프로세서를 독점하고 있는 양 착각하게 하여 여러 사용자가 단일 컴퓨터 시스템을 동시에 이용할 수 있게 한다. 프로세서에 적재된 여러 프로그램을 교대로 수행하지만, 각 프로그램에 일정한 프로세서 사용 시간 또는 규정 시간량을 나누어줘 사용자가 할당된 시간 동안 컴퓨터와 대화하는 형식으로 실행한다.

 

다중 프로그래밍 시스템이 프로세서 이용을 최대화하는 것이 목적이라면, 시분할 시스템은 응답시간을 최소화하는 것이 목적이라는 큰 차이가 있다. 또 다중 프로그래밍 시스템과 시분할 시스템 둘 다 메모리에 여러 프로그램을 탑재하므로 메모리를 관리해야 하고, 어떤 프로그램을 첫 번째로 수행할지 선택하는 스케줄링이라는 개념이 필수이다.

 

시분할 시스템은 다수의 사용자가 접근하는 파일은 접근 권한을 제공하여 특정 권한이 있는 사용자만 접근이 가능하도록 파일 시스템을 지켜야 한다. 공유 자원에는 액세스 순번을 조정할 수 있는 기능도 추가해야 한다. 그리고 여러 작업을 메모리에 저장하므로 짧은 시간에 작업을 교체할 수 있도록 메모리를 적절하게 관리해야 하고, 한 작업이 다른 작업이 데이터를 바꾸는 등 작업 보호가 필수이다.

 

다중 처리 시스템

다중 처리 시스템은 단일  컴퓨터 시스템 안에서 둘 이상의 프로세서를 이용하여 동시에 둘 이상의 프로세서를 보조한다. 프로세서가 둘 이상이므로 빠르고, 프로세서 하나가 고장이 나도 다른 프로세서를 이용하여 일을 계속할 수 있어 신뢰성이 높다. 하나의 프로세서가 2개 이상의 프로그램을 전환하는 다중 프로그래밍과 헛갈려서는 안 된다. 다중 처리 시스템은 여러 프로세서와 시스템 버스, 클록, 메모리와 주변장치 등을 공유한다. 다중 처리 시스템을 구성하는 수단에는 비대칭적 구성과 대칭적 구성이 있다. 또 다중 처리 시스템은 프로세서가 여러 개이므로 프로세서 간이 연결, 상호작용, 역할 분담 등을 생각해 봐야 한다.

 

실시간 처리 시스템

실시간 처리 시스템은 데이터 처리 시스템으로 설명할 수 있다. 입력 및 업데이트된 정보 요청 사항을 처리한 후 디스플레이에 응답하는 시스템에 소비되는 시간을 반응 시간으로 한다. 응답시간은 프로세서에 이미 고정되어 있다. 그래서 응답시간이 온라인 처리에 비해 매우 짧다. 입력에 반응하는 데 필요한 시간 간격이 너무 짧아서 환경을 통제한다. 온라인 시스템은 실시간으로 할 필요가 없는 반면에, 실시간 처리 시스템은 항상 온라인 상태여야 한다.

 

실시간 처리 시스템은 더 높은 적시 반응을 요청하는 장소에서 이용하거나 데이터 흐름 혹은 프로세서 계산에 엄격한 시간 요청이 있을 때 이용할 수 있다. 실시간 처리 시스템은 고정 시간 제약을 잘 정의하지 않으면 시스템이 실패한다. 시스템은 다음 두 가지 유형으로 분류할 수 있다.

 

- 경성 실시간 처리 시스템

- 연성 실시간 처리 시스템

 

또 전용 응용 프로그램의 통제 장치로도 사용한다.

 

분산 처리 시스템

분산 처리 시스템은 시스템마다 독립적인 운영체제와 메모리로 운영하며, 필요할 때 연락하는 시스템이다. 그리고 데이터를 여러 위치에서 처리 및 저장하며, 여러 사용자가 공유할 수 있다. 하나의 프로그램을 여러 프로세서에서 같은 순간에 수행할 수도 있다.

 

요약 및 결론

다중 프로그래밍 시스템은 프로세서가 유휴 상태일 때 실행 중인 둘 이상의 작업이 프로세서를 전환하여 사용할 수 있도록 동작하는 운영체제이다. 시분할 시스템은 다중 프로그래밍을 논리적으로 확장한 개념으로 프로세서가 여러 작업을 교대하며 수행한다. 다중 처리 시스템은 단일 컴퓨터 시스템 내에서 둘 이상의 프로세서를 사용하여 동시에 둘 이상의 프로세서를 지원한다. 실시간 처리 시스템은 데이터 처리 시스템으로 입력 및 업데이트된 정보 요구를 처리한 후 디스플레이에 응답하는 시스템에 소요되는 시간을 응답 시간으로 한다. 분산 처리 시스템은 시스템마다 독립적인 운영체제와 메모리로 운영하며, 필요할 때 통신하는 시스템이다.