운영체제의 주된 목적은 사용자의 편의성과 높은 성능을 제공하는 것이다. 이러한 목적을 이루기 위해 운영체제는 다양한 방법으로 하드웨어를 관리하고 있으며, 상황에 맞는 서비스를 제공하고 있다.
1. 운영체제 서비스
다양한 상황에 사용되는 운영체제의 서비스는 아래와 같다.
- 프로세스 관리
- 주기억장치 관리
- 파일 관리
- 보조기억장치 관리
- 입출력 장치 관리
- 네트워킹
- 보호
- 기타...
1-1. 프로세스 관리(Process Management)
프로세스란 메모리에 실행 중인 프로그램을 의미한다. 즉 프로그램이 메모리에 적재되어 일정 CPU를 할당 받으며 실행하는 프로그램을 말한다.
프로세스 관리의 주요 기능으로는 아래와 같다.
- 프로세스의 생성, 소멸 (creation, deletion)
- 프로세스 활동 일시 중지, 활동 재개 (suspend, resume)
- 프로세스간 통신 (interprocess communication: IPC)
- 프로세스간 동기화 (synchronization)
- 교착상태 처리 (deadlock handling)
1-2. 주기억장치 관리 (Main Memory Management)
주기억장치는 크게 ROM과 RAM으로 나뉘며 프로그램, 운영체제 등 다양한 작업을 진행하고 처리하는 공간(비유하자면 작업 책상)이다. 이러한 공간을 관리하는 서비스를 주기억장치 관리라고 한다.
주기억장치 관리의 주요 기능으로는 아래와 같다.
- 프로세스에게 메모리 공간 할당 (Allocation)
- 메모리의 어느 부분이 어느 프로세스에게 할당되었는가 추적 및 감시
- 프로세스 종료 시 메모리 회수 (Deallocation)
- 메모리의 효과적 사용
- 가상 메모리: 물리적 실제 메모리보다 큰 용량을 갖도록 사용
1-3. 파일 관리(File Management)
Track과 Sector로 구성된 디스크(H/W)를 사용자에게 파일이라는 관점으로 보이게 하여 보다 쉽게 사용할 수 있도록 운영체제에서 관리하는 서비스를 파일 관리라고 한다.
파일 관리의 주요 기능으로는 아래와 같다.
- 파일의 생성과 삭제(File Creation, Deletion)
- 디렉토리(Directory)의 생성과 삭제
- 기본 동작 지원: open, close, read, write, create, delete
- Track/Sector - file 간의 매핑(mapping)
- 백업(Backup)
1-4. 보조기억장치 관리(Secondary Storage Management)
HDD, SSD, 플래시 메모리(USB, SD카드 등)를 관리하는 서비스를 보조기억장치 관리라고 한다.
보조기억장치 관리의 주요 기능으로는 아래와 같다.
- 빈 공간 관리(Free space management)
- 저장공간 할당(Storage allocation)
- 디스크 스케줄링(Disk scheduling)
1-5. 입출력 장치 관리(I/O Device Management)
입력을 하는 장치(마우스, 키보드 등)와 출력을 하는 장치(스피커, 모니터, 프린터 등)를 관리하는 서비스를 입출력 장치 관리라고 한다.
입출력 장치 관리의 주요 기능으로는 아래와 같다.
- 장치 드라이브(Device drivers)
- 입출력 장치의 성능향상: buffering, caching, spooling
2. 시스템 콜(System Call)
정식 명칭은 시스템 호출로 메모리에 적재되어 실행 중인 프로세스가 운영체제에게 어떠한 서비스를 받기 위해 요청하는 것을 시스템 콜이라 한다.
User3(process3)가 운영체제에게 어떠한 서비스를 요청하는 그림 입니다.
주요 시스템 콜은 아래와 같다.
- 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, write, get/set attributes, attach/detach devices
- information: get/set time, get/set system data
- Communication: socket, send, receive
Reference
경성대학교 양희재 교수님의 운영체제