자원 관리자 관점
- 운영체제의 기능은 자원이 효율적으로 사용되도록 관리하고 다양한 요구를 가지는 사용자 간에 발생할 수 있는 자원에 대한 경쟁 및 이로 인한 충돌을 해결하는 것
- 시스템 자원 : 프로세서, 기억장치, 각종 장치, 프로그램이나 데이터 같은 정보 등
- 각 자원에 대한 수행 과정
- 자원의 상태를 추적/저장
- 어떤 프로세스가 언제 어떤 자원을 얼마나 취할 것인지를 결정하기 위한 정책 수립
- 자원의 할당
- 자원의 회수
프로세스 관리 기능
- 중앙처리장치와 프로세스(process)의 상태를 추적, 저장
-> 트래픽 제어기- 어떤 작업에게 프로세서(processor)를 사용하도록 할 것인지를 결정
-> 작업 스케줄러는 제시된 모든 작업 중 하나를 선택하여 그 작업이 필요로 하는 자원을 할당- 만약 다중 프로그래밍 시스템이라면 어떤 프로세스가 언제 얼마나 중앙처리장치를 차지할 것인지를 결정해야 하는데 이는 프로세스 스케줄러에 의해 결정됨
- 디스패쳐(dispatcher)는 필요한 하드웨어 레지스터를 설정함으로써 프로세스에게 중앙처리장치를 할당
-> 프로세스 스케줄러- 프로세스가 수행을 종료하였거나, 어떤 이유로 인하여 사용의 양도 또는 허용된 사용 시간을 초과하였을 경우 중앙처리장치를 회수
기억장치 관리 기능
- 기억장치의 상태를 추적, 저장
-> 기억장치의 어떤 부분이 사용되고, 어떤 부분이 사용되고 있지 않은가?
-> 만약 사용된다면 어떤 프로세스에 의해 사용되는가를 추적, 저장- 다중 프로그래밍 환경 하에서, 어떤 프로세스에게 언제, 얼마의 기억 장치를 할당할 것인지를 결정
- 프로세스가 기억장치를 요구하면 앞에서 결정한 내용에 따라 할당
- 프로세스가 더 이상 기억장치를 필요로 하지 않게 되면 회수
장치 관리 기능
- 채널 등의 제어장치 및 입출력장치와 같은 각종 장치들의 상태를 추적, 저장
-> I/O traffic controller- 장치를 할당하는데 어떤 방법이 효율적인지를 결정
-> 각 장치마다 대기 큐를 유지함으로써 스케줄링을 구현
-> I/O scheduling- 해당 장치를 할당하고 입출력 동작을 시작
- 입출력이 종료되면 자동적으로 자원을 회수
정보 관리 기능
- 정보의 위치, 사용 여부 및 상태 등을 추적, 관리
-> 파일 시스템- 어떤 작업에게 정보 자원을 사용하도록 할 것인지를 결정
- 정보보호를 위한 대책을 수립하고, 접근(access) 루틴(방법)을 제공
- 정보 자원을 할당
- 정보 자원을 회수
프로세스 관점
- 다중 프로그래밍 환경 : 복수의 프로세스(실행 중의 사용자 프로그램)를 나타냄
- 여러 작업이 수행되어야 할 경우, 중앙처리장치가 처리할 수 있는 것은 어느 한 시점에서 볼 때 오직 하나의 프로세스뿐임
- 선택 받지 못한 프로세스는 자신의 위상에 따라 상태를 변화시켜야 함
- 운영체제는 하나의 작업이 제시되어 완료될 때까지 하나의 프로세스에 대하여 그 상태를 변환시키고 관리할 책임이 있음
계층 구조 관점
-> 자원관리 루틴이 어떻게 수행되고, 이 루틴들이 상호간에 어디에 논리적으로 위치하는가?
- 많은 시스템 모듈에서 필요로 하는 주된 기능은 ‘내부적 확장 기계’로, 그 이외의 모듈은 ‘외부적 확장 기계’로 분류
- 어떤 시스템 모듈들은 사용자 프로세스와 같은 방법으로 확장된 기계에서 수행하도록 할 수 있음
- 운영체제의 커널(kernal)
- 프로세스의 계층으로 운영되는 운영체제의 모듈과는 달리 확장된 기계 개념으로 운영되는 모든 운영체제 모듈을 총칭
커널의 구성 레벨 및 레벨 별 해당 모듈(예)
- 레벨 1 : 프로세서 관리 하위 모듈(동기화 프리미티브, 프로세스 스케줄러)
- 레벨 2 : 기억장치 관리(메모리 할당 및 회수)
- 레벨 3 : 프로세서 관리 상위 모듈(메시지, 프로세스의 생성 및 제거)
- 레벨 4 : 장치 관리(입출력 트래픽 제어기)
- 레벨 5 : 정보 관리(파일 시스템)