운영체제는 user program이 H/W 자원을 사용하고 싶을 때 하드웨어를 관리하고 user program에 H/W 자원을 대여해주는 역할을 합니다.
그림과 같이 Application은 OS를 통해 H/W자원을 사용하게됩니다.
이 처럼 OS는 관리하는 부서라고 할 수 있습니다.
OS가 관리하는 부서에 대해 살펴보겠습니다.
프로세스 관리
메모리에서 실행 중인 프로그램을 프로세스라고 합니다.
주요기능
- 프로세스의 생성, 소멸(creation, deletion)
- 프로세스 활동 일시 중지, 활동 재개(suspend, resume)
- 프로세스간 통신(inerprocess communication)
- 프로세스간 동기화(synchronization)
- 교착상태처리(deadlock handling)
주기억장치 관리
주요기능
- 프로세스에게 메모리공간 할당(allocation)
- 메모리의 어느 부분이 어느 프로세스에게 할당되었는가 추적 및 감시
- 프로세스 종료 시 메모리 회수(deallocation)
- 메모리의 효과적 사용
- 가상 메모리: 물리적 실제 메모리보다 큰 용량 갖도록
파일 관리
Track/sector로 구성된 디스크를 파일이라는 논리적인 관점으로 볼 수 있도록 합니다.
주요기능
- 파일의 생성과 삭제(file creation & deletion)
- 디렉토리(directory)의 생성과 삭제
- 기본동작지원: open, close, read, write, create, delete
- Track/sector - file 간의 매핑(mapping)
- 백업
보조기억장치 관리
주요기능
- 빈 공간 관리(free space management)
- 저장공간 할당(storage allocation)
- 디스크 스케쥴링(disk scheduling)
입출력 장치 관리
I/O device management
주요기능
- 장치 드라이브(Device drivers)
- 입출력 장치의 성능 향상: buffering, caching, spooling
시스템 콜
위와 같은 관리부서에 서비스를 받기 위한 호출을 시스템 콜이라고 합니다.
주요 시스템 콜
- Process: end, abort, load, execute, create, terminate, get/set attributes, wait event, signal event
- Memory: allocate, free
- File: create, delete, open, close, read, write, get/set attributes
- Device: request, release, read, wirte, get/set attributes, attach/detache devices
- Information: get/set time, get/set system data
- Communication: socket, send, receive