운영체제 서비스
운영체제가 제공하는 서비스 주요 서비스 중 하나는 바로 하드웨어 자원의 효율적인 분배이다.
하드웨어 자원은 CPU, 메인 메모리, 하드 디스크, 키보드, 마우스, 프린터 등이 존재하는데, 어플리케이션 또는 사용자의 요청에 따라 이 자원들을 적절히 분배하여 효율성을 극대화시키는데 그 목적이 있다.
이러한 역할을 수행하는 운영체제 서비스는 크게 다음과 같이 분류할 수 있다.
- 프로세스 관리
- 주기억장치 관리
- 파일 관리
- 보조기억장치 관리
- 입출력 장치 관리
- 네트워킹
- 보호
- 기타
프로세스 관리 (Process Management)
프로세스 (Process)
프로그램 : 보조기억장치에는 들어있지만 아무런 동작을 하지 않는 상태
프로세스 : 메모리에서 실행 중인 프로그램 (Program in execution)
사용자 또는 어플리케이션의 요청에 따라 프로그램을 실행시키면 프로세스가 된다.
주요 기능
- 프로세스의 생성, 소멸 (Creation, Deletion)
- 프로세스 활동의 일시 중지, 재개 (Suspend, Resume)
- 프로세스간의 통신 (Interprocess Communication: IPC)
- 프로세스간의 동기화 (Synchronization)
- 교착상태의 처리 (Deadlock Handling)
주기억장치 관리 (Main Memory Management)
주기억장치는 메인 메모리의 또 다른 이름이며, 프로그램이 실행되기 위한 공간이다. CPU는 오직 메인 메모리에 적재되어있는 프로세스와만 소통할 수 있다.
주요 기능
- 프로세스에게 메모리 공간 할당 (Allocation)
- 메모리의 어느 부분이 어느 프로세스에게 할당되었는지 추적 및 감시
- 프로세스 종료 시 메모리 회수 (Deallocation)
- 메모리의 효과적인 사용
- 가상메모리 관리
- 가상메모리 : 물리적인 실제 메모리보다 더 큰 용량을 갖는 가상의 메모리
파일 관리 (File Management)
디스크는 물리적으로 Track과 Sector로 구성되어있는데 이를 파일이라는 논리적인 관점으로 보면서 관리한다.
즉, 하드 디스크에 저장되어있는 여러 데이터를 각각 파일이라는 관점으로 바라보고 운영체제가 관리한다.
주요 기능
- 파일의 생성과 삭제 (File Creation & Deletion)
- 디렉토리의 생성과 삭제
- Open, Close, Read, Write, Create, Delete 등의 파일 기본 동작 지원
- Track/Sector에서 각 File 간의 매핑 (Mapping)
- 백업 (Backup)
보조기억장치 관리 (Secondary Storage Management)
보조기억장치는 하드디스크, 플래시 메모리 등이 있으며, 운영체제는 이러한 보조기억장치를 관리하는 기능을 제공한다.
주요 기능
- 빈 공간 관리 (Free Space Management)
- 저장공간 할당 (Storage Allocation)
- 디스크 스케쥴링 (Disk Scheduling)
입출력 장치 관리 (I/O Device Management)
입출력장치는 흔히 키보드, 마우스, 프린터, 스피커, 마우스 등 컴퓨터와 사용자가 상호작용 할 수 있는 장치들을 의미한다.
- 장치 드라이버 관리 (Device Drivers)
- Buffering, Caching, Spooling 등을 통한 입출력 장치의 성능 향상
시스템 콜 (System Call)
시스템 콜 : 운영체제 서비스를 받기 위한 호출
사용자가 운영체제가 제공하는 서비스 중 어떤 서비스가 필요한지를 요청하는 Call이다.

주요 시스템 콜
- Process
- end, abort, load, execute, create, terminate, get/set attributes, wait event, signal event
- Memory
- 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