• os

운영체제의 유형

일괄 처리부터 다중 프로그래밍, 시분할, 다중 처리, 실시간, 분산 처리까지 운영체제 유형별 목표와 특징을 정리한다.

시리즈 · 운영체제1 / 18
  1. 운영체제의 유형
  2. System Call과 Dual Mode
  3. 인터럽트와 폴링
  4. 프로세스와 PCB, 프로세스의 상태 변화
  5. 프로세스 주소 공간과 Stack이 높은 주소부터 할당되는 이유
  6. 스레드: 사용자·커널 수준 스레드와 Thread Pool, Fork-Join
  7. Context Switching
  8. 프로세스 스케줄링: 단계와 알고리즘
  9. Thread Scheduling: 경합 범위 PCS와 SCS
  10. 경쟁 상태와 상호 배제: Thread Safe, 데커·피터슨 알고리즘
  11. 뮤텍스와 세마포, 모니터
  12. 교착 상태: 발생 조건과 해결 방법
  13. 메모리 계층 구조와 캐시 메모리
  14. 메모리 관리: 주소 바인딩과 연속 메모리 할당
  15. 가상 메모리: Paging과 Segmentation, TLB
  16. 요구 페이징과 페이지 교체 알고리즘, Thrashing
  17. File Descriptor와 File System, I-Node
  18. 동기/비동기와 블로킹/논블로킹, I/O Multiplexing

운영체제는 처리 방식에 따라 크게 다음과 같이 나뉜다.

운영체제 유형 분류

일괄 처리 시스템

  • 초기 컴퓨터 시스템에서 사용된 형태로, 일정량 또는 일정 기간 동안 데이터를 모아 한꺼번에 처리한다.
  • 한 작업이 입출력을 하는 동안 다른 작업을 수행할 수 없어 프로세서와 메인 메모리의 활용도가 떨어진다.

다중 프로그래밍 시스템

목표는 프로세서 사용 최대화다.

  • 일괄 처리 시스템의 문제를 다중 프로그래밍으로 해결한다.
  • 프로세서가 유휴 상태(어떤 프로그램도 사용하지 않는 상태)가 되면, 실행 중인 둘 이상의 작업이 프로세서를 번갈아(인터리빙) 사용한다.
  • 여러 작업을 준비 상태로 두려면 이들을 메모리에 보관해야 하므로 메모리 관리가 필요하다.

다중 프로그래밍 시스템에서 프로세서를 번갈아 사용하는 모습

시분할 시스템 (TSS, Time Sharing System)

목표는 응답 시간 최소화다.

  • 여러 사용자가 자원을 동시에 사용하는 사용자 지향적(user-oriented) 대화형 시스템이다.
  • 어떤 프로그램을 먼저 실행할지 결정하는 스케줄링 개념이 필요하다.
  • 장점: 빠른 응답, 소프트웨어 중복 회피, 프로세서 유휴 시간 감소
  • 단점: 신뢰성, 보안, 데이터 통신 문제

다중 처리 시스템

  • 단일 컴퓨터 시스템 안에서 둘 이상의 프로세서를 사용해 동시에 둘 이상의 프로세스를 지원한다.
  • 여러 프로세서가 시스템 버스, 클록, 메모리, 주변장치를 공유한다.
  • 프로세서 하나가 고장 나도 다른 프로세서로 작업을 계속할 수 있어 신뢰성이 높다.
  • 프로세서 간의 연결, 상호작용, 역할 분담을 고려해야 한다.

다중 프로그래밍은 CPU 1개에 프로그램 여러 개, 다중 처리는 CPU 여러 개라는 점이 다르다.

실시간 처리 시스템

제한 시간 안에 서비스를 제공하는 것이 중요한 시스템이다.

  • Hard real-time task: 시간 제약을 지키지 못하면 시스템에 치명적인 영향을 준다. (예: 발전소 제어)
  • Soft real-time task: 시간 제약을 어겨도 치명적이지는 않다. (예: 동영상 재생)

분산 처리 시스템

  • 주로 네트워크를 기반으로 구축된 병렬 처리 시스템이다.
  • 시스템마다 독립적인 운영체제와 메모리로 운영하고, 필요할 때 통신한다.
  • 데이터를 여러 위치에서 처리·저장하며 여러 사용자가 공유한다.
  • 하나의 프로그램을 여러 프로세서에서 동시에 실행한다.

참고

  • 운영체제: 그림으로 배우는 구조와 원리 (한빛아카데미)