HPC Lab. KOREATECH 채널 OS 강의를 듣고 정리
하드웨어를 효율적으로 관리하고 사용자 또는 응용 프로그램에 서비스를 제공하는 소프트웨어
운영체제는 동시 사용자의 수, 동시 실행 프로세스의 수, 작업 수행 방식 등에 따라 구분할 수 있다.
단일 사용자 (Single-User System)
- 한 명의 사용자만 시스템을 사용
- 사용자가 모든 시스템 자원을 독점
- 자원관리와 시스템 보호가 간단- PC, Mobile Phone 등 개인용 장비에 사용
다중 사용자 (Multi-User System)
- 동시에 여러 사용자들이 시스템을 사용
- 각종 시스템 자원들에 대한 소유 권한의 관리 필요
- 멀티 태스킹 기능이 필요
- 운영체제의 기능과 구조가 복잡함- 서버, 클러스터 장비 등에 사용
단일 작업 (Single-Tasking System)
- 시스템 내에 하나의 프로세스만 존재
- 하나의 프로그램 실행을 마친 뒤에 다른 프로그램을 실행- 운영체제의 구조가 간단
- ex) MS-DOS
다중 작업 (Multi-Tasking System)
- 동시에 여러 프로세스를 수행할 수 있음
- 작업들 사이의 동시 수행, 동기화 등을 관리해야 함- 운영체제의 기능과 구조가 복잡함
- ex) Unix/Linux, Windows 등
순차 처리 (NO OS, ~ 1940s)
- 운영체제라는 개념이 존재하지 않음
- 사용자가 직접 기계어로 프로그램을 작성- 실행하는 작업 별로 순차적 처리
- 각 작업에 대한 준비시간이 소요
Batch System (1950s ~ 1960s)
- 모든 시스템을 중항에서 관리, 운영
- 사용자의 요청 작업을 일정 시간 혹은 일정 작업량만큼 모아두고 한번에 처리
- 시스템 지향적
- 장점
- 많은 사용자가 시스템 자원을 공유
- 효율성- 단점
- 같은 유형의 작업들이 모이기를 기다려야 함 (생산성 문제)
- 긴 응답시간
Time Sharing Systems (시분할 방식, 1960s ~ 1970s)
- 여러 사용자가 자원을 동시에 사용
- 운영체제가 파일 시스템과 가상 메모리를 관리- 사용자 지향적
- 응답이 있는 대화형 시스템
- 단말기 사용- 장점
- 응답시간의 단축
- 프로세서 유휴시간 감소 (생산성 향상)- 단점
- 통신선, 보안 등으로 인한 통신 비용의 증가
- 개인 사용자 체감속도 저하 (사용자 수 증가가 시스템 부하로 이어져 개인 사용자는 느려진다는 체감)
Personal Computing
- 개인이 시스템 전체를 독점
- CPU 활용률을 크게 고려하지 않음
- 상대적으로 운영체제가 단순하지만 다양한 사용자 지원 기능을 가지고 있음
- 장점
- 빠른 응답시간- 단점
- 낮은 성능
Parallel Processing System (병렬 처리 시스템)
- 단일 시스템 내에서 둘 이상의 프로세서 사용
- 동시에 둘 이상의 프로세스 지원- 다수의 CPU가 메모리 등의 자원을 공유 (Tightly-coupled system)
- 성능과 신뢰성의 향상 (CPU 하나가 고장나도 정상 동작이 가능)
- 프로세서 간의 관계 및 역할의 관리가 필요
Distributed Processing System (분산 처리 시스템)
- 네트워크를 기반으로 구축된 병렬 처리 시스템(Loosely-coupled system)
- 물리적으로 분산되어 통신망을 이용해 상호 연결
- 각각 운영체제를 탑재한 다수의 범용 시스템으로 구성됨
- 사용자는 분산 운영체제를 통해 하나의 프로그램, 자원처럼 사용할 수 있음 (은폐성)
- 각 구성 요소들 간의 독립성을 유지, 공동작업 가능- 장점
- 자원 공유를 통한 높은 성능
- 높은 신뢰성과 확정성- 단점
- 구축과 유지보수 등의 관리가 어려움
Real-Time System (실시간 시스템)
- 작업 처리에 제한 시간을 갖는 시스템
- 자원 활용의 효율보다 제한 시간 내에 서비스를 제공하는 것이 중요한 경우- 작업의 종류
- Hard real-time task (발전소 제어, 무기 제어 등)
- Soft real-time task (동영상 재생 등)
- Non real-time task
커널 (Kernel)
- 운영체제의 핵심 부분 (메모리에 상주)
- 하드웨어와 소프트웨어의 자원을 관리
유틸리티 (Utility)
- 비상주 프로그램
- UI 등 서비스 프로그램들
한 커널 내에 모든 모듈
모듈들을 계층별로 분리
커널의 크기를 최소화하여 필수 기능을 제외한 기능들을 사용자 영역에서 수행