[운영체제] 운영체제의 분류

Yoon Uk·2023년 9월 11일
0

운영체제

목록 보기
2/11
post-thumbnail

1. 동시 작업을 지원하는지의 여부에 따른 분류

운영체제는 동시 작업을 지원하는지의 여부에 따라 단일작업(single tasking) 운영체제다중작업(multi tasking) 운영체제로 나눌 수 있습니다.

1) 단일작업(single tasking) 운영체제

한 번에 하나의 프로그램만 실행시킬 수 있는 운영체제입니다.

도스(Disk Operating System: DOS) 환경이 있습니다.

2) 다중작업(multi tasking) 운영체제

하나의 프로그램이 끝나기 전에 다른 프로그램을 실행시키는 것이 가능한 운영체제입니다.

MS 윈도우나 유닉스가 있습니다.

운영체제가 다중작업을 처리할 때에는 여러 프로그램이 CPU와 메모리를 공유하게 됩니다. 비록 CPU가 하나밖에 없어 매 순간 하나의 프로그램만 CPU에서 실행될 수 있더라도 CPU의 처리 속도가 워낙 빨라 수 밀리초(ms) 이내의 짧은 시간 규모로 여러 프로그램들이 CPU에서 번갈아 실행됩니다.
이는 사용자에게 여러 프로그램이 동시에 실행되는 것처럼 보이게 합니다.

(1) 시분할 시스템

이미지 출처

이와 같이 CPU의 작업시간을 여러 프로그램들이 조금씩 나누어 쓰는 시스템을 시분할 시스템(time sharing system) 이라고 부릅니다.

시분할 시스템의 구체적인 작동 원리는 CPU 스케줄링과 다중 프로그래밍을 이용해서 각 사용자들에게 컴퓨터 자원을 시간적으로 분할하여 사용할 수 있게 해 줍니다. 이 시스템은 출력이 사용자에게 표시되고, 입력을 키보드에서 읽어들이는 대화식 인터페이스를 제공할 수 있습니다.

시분할 시스템은 CPU를 일정한 시간 단위로 프로그램에게 할당하여 처리해줌으로써 각 사용자에게 독립된 컴퓨터를 사용하는 느낌을 줍니다. 이를 라운드 로빈(Round Robin)방식이라고도 합니다. CPU의 전체 사용시간을 작은 작업 시간량으로 쪼개어 그 시간량 동안만 번갈아가면서 CPU를 할당하여 각 작업을 처리하는 방법으로, 모든 작업이 동시에 진행되는 것처럼 대화식 처리가 가능하게 합니다.
이를 대화형 시스템(interactive system)이라고 표현합니다.

이러한 시분할 시스템은 오늘날 범용적인 컴퓨터에 가장 많이 활용되는 운용 기법 중 하나로, 여러 작업이 사용하고자 할 때에 아주 작은 시간 단위로 나누어 한정된 자원을 나눠쓸 수 있도록 하는 방식입니다.

(2) 다중 프로그래밍 시스템

메모리 공간을 분할해 여러 프로그램들을 동시에 메모리에 올려놓고 CPU가 항상 작업을 수행할 수 있도록 하는 시스템을 다중 프로그래밍 시스템(multi-programming system)이라고 부릅니다.
이를 통해 CPU 작업과 입출력 작업을 병행하여 CPU의 이용률과 처리량을 향상시킬 수 있습니다.

다중 프로그래밍 시스템에서는 CPU 스케줄링이 중요한 역할을 합니다. 여러 개의 작업들이 수행 준비를 갖추고 있을 때, 이 작업들 중 하나를 선택하는 결정을 CPU 스케줄링이라고 합니다. CPU가 작업을 수행하다가 입출력 조작이 필요하면, 해당 작업은 CPU를 놓고 대기 상태가 됩니다. 이때, 다중 프로그래밍 시스템에서는 운영체제가 다른 작업으로 전환하여 CPU의 유휴 상태를 최소화합니다.

다중 프로그래밍 방식에는 고정분할 다중 프로그래밍동적분할 다중 프로그래밍이 있습니다.

(2) - 1. 고정분할 다중 프로그래밍

고정분할 다중 프로그래밍은 기억장치의 영역을 고정된 크기로 분할하여 사용하는 방식입니다. 이 방식은 초기의 시스템에서 주로 사용되었고 단편화 문제가 많이 발생할 수 있습니다.

페이징(Paging) 기법을 예로 들 수 있습니다.

(2) - 2. 동적분할 다중 프로그래밍

반면, 동적분할 다중 프로그래밍은 기억장치의 고정된 경계를 제거하고 각 작업에 필요한 양만큼만 할당하는 방식입니다. 이 방식은 고정분할보다 기억장치의 낭비를 줄일 수 있지만, 추가적인 CPU 스케줄링이 필요합니다.

세그먼트(Segment) 기법을 예로 들 수 있습니다.

장점과 단점

다중 프로그래밍 시스템은 CPU의 이용률을 향상시키고, 여러 작업을 동시에 처리할 수 있어 효율성을 증가시키는 장점이 있습니다.
하지만 이 시스템을 사용하려면 CPU 스케줄링, 메모리 관리 등 복잡한 운영체제 기능이 필요합니다.

(3) 다중처리기 시스템

다중처리기 시스템(multi-processor system)은 하나의 컴퓨터 안에 CPU가 여러개 설치된 경우를 뜻합니다.
이러한 시스템은 병렬 처리를 가능하게 하여 전체 시스템의 성능을 향상시키는데 사용됩니다.

다중 처리기 시스템은 다음과 같은 두 가지 주요 유형으로 분류될 수 있습니다.

(3) - 1. 동등 처리기 시스템 (Symmetric Multiprocessing System)

이미지 출처

동등 처리기 시스템(Symmetric Multiprocessing System)에서는 모든 프로세서가 동등하게 작동하며, 각 프로세서는 자체 캐시를 가집니다.
또한, 모든 프로세서는 동일한 메모리와 I/O 장치에 접근할 수 있습니다.

이러한 시스템은 운영 체제의 설계와 구현을 복잡하게 만들 수 있지만, 병렬 처리를 최대화하는 데 효과적입니다.

(3) - 2. 비대칭 처리기 시스템 (Asymmetric Multiprocessing System)

이미지 출처

비대칭 처리기 시스템(Asymmetric Multiprocessing System)에서는 한 프로세서가 시스템을 제어하고 다른 프로세서는 종속적인 역할을 합니다.

이러한 시스템은 보통 운영 체제의 설계와 구현이 덜 복잡하지만, 병렬 처리의 효과가 덜 합니다.

장점과 단점

다중 처리기 시스템(Asymmetric Multiprocessing System)의 주요 장점은 성능 향상, 신뢰성 향상, 및 경제적 효과입니다.
병렬 처리를 통해 작업을 더 빠르게 처리할 수 있으며, 한 프로세서가 실패하더라도 다른 프로세서가 작업을 계속할 수 있습니다. 또한, 여러 개의 저가 프로세서를 사용하는 것이 한 개의 고가 프로세서를 사용하는 것보다 경제적일 수 있습니다.

하지만 여러 CPU를 관리하기 위해 더욱 복잡한 과정을 거쳐야합니다.

2. 작업을 처리하는 방식에 따른 분류

1) 일괄처리(batch processing) 방식

요청된 작업을 일정량씩 모아 한꺼번에 처리하는 방식입니다.
이 방식에서는 처리해야 할 여러 작업들을 모아 일정량이 쌓이면 일괄적으로 처리하고, 모든 작업이 완전히 종료된 후에 결과를 얻을 수 있습니다.
이러한 특징 때문에 사용자 입장에서는 응답시간이 길다는 단점이 있습니다.

초창기 컴퓨터에 사용되던 펀치 카드(punch card) 처리 시스템이 이러한 방식이었습니다.

2) 시분할 방식

위의 시분할 시스템에서 설명했기 때문에 간단히 요약만 하겠습니다.

시분할 방식은 여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식입니다.
여러 사용자의 작업을 짧은 시간 단위씩 번갈아가며 처리하게 되어 사용자들은 짧은 응답시간을 갖게 됩니다.
사용자의 요청에 대한 결과를 곧바로 얻을 수 있는 시스템을 대화형 시스템이라고 표현합니다.

3) 실시간 방식

실시간(real time) 운영체제는 정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장해야 하는 시스템에서 사용됩니다.

원자로, 반도체 공장 제어 시스템, 미사일 제어 시스템 등이 있습니다.

실시간 시스템은 시간 제약의 중요성에 따라 두 가지로 나눌 수 있습니다.

(1) 경성 실시간 시스템

경성 실시간 시스템(hard realtime system)은 주어진 시간을 지키지 못할 경우 매우 위험한 결과를 초래할 가능성이 있는 로켓, 원자로 제어 시스템 등을 말합니다.

(2) 연성 실시간 시스템

연성 실시간 시스템(soft realtime system)은 멀티미디어 스트리밍 시스템과 같이 데이터가 정해진 시간 단위로 전달되어야 올바른 기능을 수행할 수 있는 시스템을 말합니다.
하지만 경성 실시간 시스템(hard realtime system)처럼 위험한 결과를 초래하지는 않습니다.

참고

운영체제와 정보기술의 원리 - 반효경

0개의 댓글