운영체제의 기능
프로세스 관리 (Process Management)
가장 중요한 기능 중 하나입니다. 프로세스란 실제 메인 메모리에서 실행 중인 프로그램(Program In Execution)을 의미합니다. 프로그램을 어떠한 요청에 의해 메인 메모리에 할당하여 CPU를 사용하면서 실행하게 되면 이를 프로세스로 부릅니다.
운영체제는 다음과 같이 프로세스를 관리합니다.
- 프로세스의 생성과 소멸 (creation, deletion)
- 프로세스 활동 일시 중지, 활동 재개 (suspend, resume)
- 프로세스 간 통신 (interprocess communication: IPC)
- 프로세스 간 동기화 (synchronization)
- 교착상태 처리 (deadlock handling)
주기억장치 관리 (Main Memory Management)
메인 메모리는 프로그램이 실행되기 위한 메모리 공간입니다. CPU는 오직 메인 메모리에 있는 프로세스하고만 소통할 수 있습니다.
운영체제는 메인 메모리를 효율적으로 사용하도록 관리합니다.
- 프로세스에게 메모리 공간을 할당 (allocation)
- 메모리의 어느 부분이 어느 프로세스에게 할당되었는가 추적 및 감시
- 프로세스 종료 시 메모리 회수 (deallocation)
- 메모리의 효과적 사용
- 가상 메모리
파일 관리 (File Management)
디스크의 트랙(Track)과 섹터(Sector)라는 물리적인 영역을 파일(File)이라는 논리적인 개념으로 관리합니다.
- 파일의 생성과 삭제 (file creation & deletion)
- 디렉토리의 생성과 삭제
- 기본 동작 지원 : open, close, read, write, create, delete
- 트랙/섹터와 파일간의 매핑 (mapping)
- 백업 (backup)
보조기억장치 관리 (Secondary Storage Management)
보조기억장치(하드 디스크, 플래시 메모리 등)을 효율적으로 사용할 수 있도록 관리합니다.
- 빈 공간 관리 (free space management)
- 저장공간 할당 (storage allocation)
- 디스크 스케줄링 (disk scheduling)
입출력장치 관리 (I/O Device Management)
입출력장치(키보드, 마우스, 웹캠, 사운드 카드 등)의 사용을 돕습니다.
- 장치 드라이브 (device drivers)
- 입출력 장치의 성능 향상 : buffering, caching, spooling
시스템 콜 (System Call)
유저 프로세스에서 운영체제 서비스를 필요로 할 때 받기 위해 사용하는 호출입니다.
앞선 포스팅에서 설명드렸듯이 운영체제는 이중 모드로 구동됩니다. 시스템 콜은 커널 영역의 기능을 사용자 모드가 사용 가능하게 해주는 기능입니다.