Chapter2 운영체제 개요
2.1 운영체제의 역할
- 운영체제란?
- 컴퓨터 하드웨어 바로 윗단에 설치되는 SW
- H/W를 효율적으로 관리하여 사용자에게 서비스를 제공하는 역할
2.1.1 운영체제의 역할
- 편리성 : User Interface
- 효율성 : Resource management
- Process and Thread management
- 시스템 보호
2.1.2 컴퓨터 시스템의 구성
- System Call Interface : 사용자가 필요한 기능을 사용하기 위해서 커널에 요청할 수 있는 통로로, 커널이 제공하는 기능 중에서 사용자가 사용할 수 있는 것들을 모아둔 것
2.2 운영체제의 구분
2.2.1 동시 사용자수
- 단일 사용자
- 한 명의 사용자만 시스템 사용 → 시스템 자원 독점, 자원관리, 보호 방식이 간단
- 개인용 장비에서 사용 ex) Windows
- 다중 사용자
- 동시에 여러 사용자 사용 가능 → 자원 및 소유 권한 관리, 멀티테스킹 기능 필요, 구조가 복잡
- 서버 및 클러스터 장비 등에 사용 ex) Unix, Linux
2.2.2 동시 실행 프로세스 수
- 단일작업
- 시스템 내에 하나의 작업(프로세스)만 존재 ex) MS-DOS
- 다중작업
- 동시에 여러 작업(프로세스)의 수행 가능
- 기능 및 구조가 복잡
2.2.3 작업 수행 방식
- 순차처리
- 운영체제 개념이 존재하지 않은 시점
- 각각의 작업에 대한 준비 시간이 필요
- Batch Systems
- 사용자의 요청 작업을 일정 시간 모아 두었다가 한번에 처리
- 많은 사용자가 시스템 자원을 공유하여 처리 효율(throughput) 향상이 됨
- 생산성↓, 응답시간↑
- Time Sharing Systems(시분할 시스템)
- 여러 사용자가 자원을 동시에 사용(OS가 파일 시스템 및 가상 메모리 관리)
- 사용자 지향적 ← 단말기를 사용하여 대화형 시스템 구축
- 응답시간 단축, 생산성 향상(프로세서 유휴 시간 감소)
- 통신 비용↑, 체감 속도↓
- Personal Computing
- 개인이 시스템 전체 독점 → CPU 활용률이 고려 대상 X
- 빠른 응답시간
- 성능이 낮음
- Parallel Processing System
- 단일 시스템에서 둘 이상의 프로세서 사용
- 메모리 같은 자원의 고유(Tightly-coupled system)
- 성능과 신뢰성 향상
- 프로세서간의 역할 관리 필요
- Distributed Processing System
- 네트워크를 기반으로 구축된 병렬처리 시스템(Loosely-coupled system)
- 물리적인 분산으로 구축, 분산 운영체제를 사용하여 하나의 프로그램 처럼 사용 ex) Cluster System, Super Computer
- 높은 성능, 고신뢰성, 높은 확장성
- 구칙 및 관리가 어려움
- Real-time Systems
- 작업 처리에 대한 제한 시간을 갖는 시스템으로 실시간 시스템이라 한다.
- 작업의 종류
- Hard real-tiem task : 시간 제약을 지키지 못하는 경우 시스템에 치명적 영향 ex) 발전소 제어, 무기 제어
- Soft real-tim task : ex) 동영상 재생
2.3 운영체제의 구조
- 커널(Kernel)
- OS의 핵심 부분으로 가장 빈번하게 사용하는 기능을 담당
- 메모리에 상주
- 유틸리티(Utility)
- 비상주 프로그램
- ex) UI
2.3.1 단일 구조
- 모듈간 직접 통신이 가능
- 커널의 거대화가 발생하여 유지보수가 어렵고, 한 모듈의 문제가 전체 시스템에 영향을 줄 수 있다.
2.3.2 계층 구조
- 모듈화를 하여 계층간 검증 및 수정이 용의
- 설계 및 구현의 단순화
- 단일 구조 대미 성능 저하
2.3.3 마이크로 커널 구조
- 커널의 크기 최소화
- 필수 기능만 포함
- 기타 기능은 사용자 영역에서 수행
2.4 운영체제의 기능
2.4.1 Process Management
- 프로세스(Process)
- 커널에 등록된 실행 단위(실행 중인 프로그램)
- 프로그램의 수행 주체(entity)
- OS의 프로세스 관리 기능
- 생성 및 삭제, 상태관리
- 자원할당
- 교착상태 해결
- 프로세스 간 통신 및 동기화
- 프로세스 정보 관리
- PCB(Process Control Bloc)
2.4.2 Processor Management
- 중앙 처리 장치(CPU)
- 프로그램을 실행하는 핵심 자원
- 프로세스 스케줄링 : 프로세스 처리 순서 결정
- 프로세서 할당 관리 : 프로세스들에 대한 프로세서 할당
2.4.3 Memory Management
- 주기억장치
- 작업을 위해 프로그램 및 데이터를 올려 놓는 공간
- Multi-user, Multi-tasking 시스템
- 프로세스에 대한 메모리 할당 및 회수
- 메모리 여유 공간 관리 및 메모리 영역 보호
- 메모리 할당 방법(scheme)
- 전체 적재 : 구현이 간단
- 일부 적재 : 메모리의 효율적 사용이 가능 하지만 복조기억 장치 접근이 필요
2.4.4 File Management
- 파일 : 논리적 데이터 저장 단위
2.4.5 I/O Management
- 반드시 OS를 거쳐야 하는 과정
'CS > [OS]' 카테고리의 다른 글
Chapter6 프로세스 동기화 & 상호배제 (0) | 2021.12.16 |
---|---|
Chapter5 프로세스 스케줄링 (0) | 2021.12.14 |
Chapter4. 스레드(Thread) (0) | 2021.12.09 |
Chapter3 프로세스 관리 (0) | 2021.12.07 |
Chapter1 컴퓨터 시스템 개요 (0) | 2021.11.30 |