참고 : [Course] Operating System (CPA310) - 운영체제 강의
[ 운영체제 3강 ] 운영체제의 구조 & 기능
1. 운영체제의 구조
2가지 구조로 구성
- Kernel ( 커널 )
- OS의 가장 핵심적인 부분이다 ( 가장 빈번하게 사용하는 기능 )
- 상주 프로그램 ( 메모리에 항상 올라가있다 )
- 시스템 ( processor, memory ) 관리
- Utility ( 유틸리티 )
- 비상주 프로그램
- ex) UI
(1) 단일 구조
[ 장/단점 ]
-
장점 : 커널 내 모듈 간 “직접 통신”을 한다 ( 효율적 자원 관리/사용이 가능하다 )
-
단점 : 커널의 거대화
- 오류/버그/추가 기능 구현 등 유지 보수 hard
- 하나의 error -> 전체에 영향
(2) 계층 구조
[ 장/단점 ]
-
장점 : 모듈화 / 설계 및 구현의 단순화
-
단점 : (단일 구조 대비) 성능 저하 ( 여러 계층 거쳐서 수행해야하므로 )
(3) 마이크로 커널 구조
커널의 크기 최소화
- “필수 기능”만 포함
- 기타 기능은 “사용자 영역”에서 수행
2. 운영체제의 기능
모든 것을 “관리”한다!
- 프로세스 ( Process )
- 프로세서 ( Processor )
- 메모리 ( Memory )
- 파일 ( File )
- 입출력 ( I/O )
- 보조 기억 장치 & 기타 주변 장치 관리
(1) 프로세스
-
Process = “실행 중인” 프로그램
- 커널에 등록된 “실행 단위”, “수행 주체”
- OS의 프로세스 관리
- 생성/삭제/관리, 자원할당, 통신 및 동기화, 교착상태 해결
- 프로세스 정보 관리하기 위한 PCB (Process Control Block)
(2) Processor ( CPU )
- 중앙 처리 장치 (CPU)를 누구에게 언제/얼마나 줄 것인지!
- 프로세서 할당 관리
- 프로세스 스케줄링
(3) Memory Management
- 주기억장치 (DRAM)
- 작업을 위한 프로그램/데이터를 올려놓는 공간
- OS의 메모리 관리
- Multi-user & Multi-tasking 시스템
- 여러 프로세스에 대해, 메모리 할당/회수 작업
- 메모리의 여유 공간 관리
- Multi-user & Multi-tasking 시스템
(4) File Management
- 파일 = “논리적” 데이터 저장 단위
- OS의 파일 관리
- 사용자 & 시스템의 파일을 관리한다
(5) I/O Management
- 입출력과정 또한 제어
- OS를 반드시 거쳐야 ( 직접은 불가능 )