운영체제_4
운영체제의 서비스
1. 프로세스 관리
2. 주기억 장치 관리
3. 파일 관리
4. 보조기억장치 관리
5. 입출력 장치 관리
6. 네트워킹
7. 보호
...
강의에서는 주로 프로세스 관리, 주기억 장치 관리를 다룬다.
1. 프로세스 관리 (Process management)
프로세스란?
메모리에서 실행 중인 프로그램(program in execution)
프로그램은 하드디스크와 같은 보조기억장치에서 아무런 동작을 하지 않는 상태이다. 이를 어떠한 요청에 의해 메인 메모리에 할당하여 CPU를 사용하면서 실행하게 되는데 이를 프로세스라고 부른다.
- 프로세스의 생성, 소멸 (creation, deletion)
- 프로세스 활동 일시 중지, 활동 재개 (suspend, resume)
- 프로세스간 통신 (interprocess communication: IPC)
- 프로세스간 동기화 (synchronization)
- 교착상태 처리 (deadlock handling)
2. 주기억장치 관리(Main memory management)
메인 메모리는 프로그램이 실행되기 위한 공간이다. CPU는 오직 메인 메모리에 있는 프로그램(프로세스)하고만 소통할 수 있다. 주기억장치 관리에서는 메인 메모리를 효율적으로 사용하도록 관리한다.
- 프로세스에게 메모리 공간 할당 (allocation)
- 메모리의 어느 부분이 어느 프로세스에게 할당되었는가 추적 및 감시
- 프로세스 종료 시 메모리 회수 (deallocation)
- 메모리의 효과적 사용
- 가상 메모리: 물리적 실제 메모리보다 큰 용량을 사용할 수 있다.
3. 파일관리(File management)
디스크는 물리적으로 Track과 sector로 구성되어 있으며, 여기서 파일이라는 논리적 관점으로 데이터를 바라보고 관리하는 것이다.
파일은 OS가 실행되는 컴퓨터에서 자주 볼 수 있는데, 이는 복잡한 과정으로 하드디스크에 저장되어 있는 것을 사용자가 편리하게 볼 수 있도록 파일이라는 논리적 형태로 운영체제에서 관리하여 보여준다.(우리 눈에 보이는 파일도 운영체제가 볼 수 있게 해주는구나...)
- 파일의 생성과 삭제(file creation, deletion)
- 디렉토리(Directory)의 생성과 삭제
- 기본 동작 지원: open, close, read, write, create, delete
- Track/sector - file 간의 매핑(mapping)
- 백업(Backup)
4. 보조기억장치 관리(Secondary storage management)
보조기억장치는 대표적으로 하드 디스크, 플래시 메모리(주로 스마트폰에 사용)가 있다. 하드 디스크를 예로 들면, 하드 디스크에서 아무 것도 저장되어 있지 않는 공간을 block이라 하는데, 보조기억장치 관리는 이를 관리하는 것이다.
- 빈 공간 관리(Free space management)
- 저장공간 할당(Storage allocation)
- 디스크 스케줄링(Disk scheduling)
5. 입출력장치 관리(I/O device management)
입출력 장치에는 키보드, 마우스, 프린터, 스피커, 마이크 등이 있다. 입출력 장치 관리는 이와 같은 여러 입출력 장치를 사용하기 위해 존재한다.
- 장치 드라이브(Device drivers)
- 입출력 장치의 성능향상: buffering, caching, spooling
6. 시스템 콜(System call)
시스템 콜은 유저 프로세스에서 운영체제 서비스를 필요로 할 때 이를 받기 위해 사용하는 호출이다.
운영체제의 서비스를 받기 위한 호출

위는 process 1에서 프로세스 관리에 시스템 콜을 요청한 모습이다. 프로세스가 실행하는 중간에 운영체제 서비스가 필요하면 시스템 콜을 통해 운영체제 안의 해당 코드로 점프할 수 있다.
6.1 주요 시스템 콜
- 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