1. 동시 작업 지원 여부에 따른 분류
운영체제는 동시 작업을 지원하는지의 여부에 따라 단일작업(Single Tasking) 운영체제와 다중작업(Multi Tasking) 운영체제로 나뉜다.
(1) 단일작업(Single Tasking) 운영체제
한 번에 하나의 프로그램만 실행시킬 수 있는 운영체제이다. 도스 환경이 이에 속한다.
(2) 다중 작업(Multi Tasking) 운영체제
하나의 프로그램이 끝나기 전에 다른 프로그램을 실행시키는 것이 가능한 운영체제이다. MS 윈도우나 유닉스가 이에 속한다.
운영체제가 다중 작업을 처리할 때 여러 프로그램이 CPU와 메모리를 공유하게 되는데, 비록 CPU가 하나밖에 없어 매 순간 하나의 프로그램만 CPU에서 실행되지만 CPU의 처리 속도가 매우 빨라 수밀리초(ms) 이내에 짧은 시간 규모로 여러 프로그램들이 CPU에서 번갈아 실행된다. 이것은 사용자에게 여러 프로그램이 동시에 실행되는 것처럼 보이게 한다.
1) 다중 프로그래밍 시스템(Multi Programming System)
CPU가 수행할 작업을 항상 가지도록 하는 방식이다. 먼저 하드 디스크나 SSD에서 여러 개의 프로그램을 선택해 메인 메모리에 적재한다. 이후 메모리 내에 있는 작업 중에서 하나를 선택해 차례대로 실행한다. 이 때 수행 중인 작업이 입/출력 등 때문에 기다리는 상태에 도달하면 CPU는 다른 작업으로 넘어가 수행을 계속한다. 이후에 첫 번째 작업이 끝나면 현재의 작업을 중단하고 다시 첫 번째 작업이 CPU를 차지하게 되는 방식이다.
2) 시분할 시스템(Time-Sharing System)
CPU의 작업 시간을 여러 프로그램이 조금씩 나누어 쓰는 시스템을 시분할 시스템이라고 부른다.
시분할 시스템의 구체적인 작동 원리는 CPU 스케줄링과 다중 프로그래밍을 이용해 각 사용자들에게 컴퓨터 자원을 시간적으로 분할해 사용할 수 있게 한다.
3) 다중 처리기 시스템(Multi-Processor System)
다중 처리기 시스템은 하나의 컴퓨터 안에 CPU가 여러 개 설치된 시스템을 말한다. 이러한 시스템은 병렬 처리를 가능하게 하여 전체 시스템의 성능을 향상시키는데 사용된다.
다중 처리기 시스템은 다음과 같은 두 가지 주요 유형으로 분류된다.
3 - 1) 대칭형 다중 처리
대칭형 다중 처리란 모든 처리기가 동등한 관계에 있으며, 각 처리기는 자체적인 레지스터와 캐시를 가진다.
또한 모든 처리기는 메모리를 공유한다는 특징이 있다.
이러한 시스템은 운영체제의 설계와 구현을 복잡하게 만들 수 있지만, 병렬 처리를 최대화하는 데 효과적이다.
3-2) 비대칭형 다중 처리
비대칭형 다중 처리는 하나의 주 처리기가 시스템을 제어하며, 다른 처리기들은 주 처리기의 명령을 수행하거나 미리 정의된 작업을 수행한다.
이러한 시스템은 운영체제의 설계와 구현은 비교적 덜 복잡하지만, 병렬 처리의 효과가 비교적 적다.
2. 작업을 처리하는 방식에 따른 분류
(1) 일괄 처리 방식(Batch Processing)
요청된 작업을 일정량씩 모아 한꺼번에 처리하는 방식이다.
이 방식에서는 처리해야 할 여러 작업들을 모아 일정량이 쌓이면 일관적으로 처리하고, 모든 작업이 완전히 종료된 후에 결과를 얻을 수 있다. 이러한 특징 때문에 사용자 입장에서는 응답시간이 길다는 단점이 있다.
(2) 시분할 방식
위의 시분할 시스템과 같다.
여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식이며, 여러 사용자의 작업을 짧은 시간 단위씩 번갈아가며 처리하게 되어 사용자들은 짧은 응답 시간을 갖게 된다.
이 때, 사용자의 요청에 대한 결과를 곧바로 얻을 수 있는 시스템을 대화형 시스템이라 한다.
(3) 실시간 방식
실시간 운영체제는 정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장해야 하는 시스템에서 사용된다.
실시간 시스템은 시간 제약의 중요성에 따라 두 가지로 나뉠 수 있다.
1) 경성 실시간 시스템
주어진 시간을 지키지 못할 경우 매우 위험한 결과를 초래할 가능성이 있는 로켓, 원자로 제어 시스템 등을 말한다.
2) 연성 실시간 시스템
멀티미디어 스티리밍 시스템과 같이 데이터가 정해진 시간 단위로 전달되어야 올바른 기능을 수행할 수 있는 시스템을 말한다. 하지만 경성 실시간 시스템처럼 위험한 결과를 초래하지는 않는다.
'CS > 운영체제' 카테고리의 다른 글
[CS/운영체제] 프로세스 (0) | 2024.01.18 |
---|---|
[CS/운영체제] 동기 I/O와 비동기 I/O (0) | 2024.01.11 |
[CS/운영체제] DMA(Direct Memory Access) (0) | 2024.01.11 |
[CS/운영체제] 폴링과 인터럽트 (0) | 2024.01.11 |
[CS/운영체제] 운영체제의 역할과 구조 (1) | 2024.01.11 |