운영체제 서비스

2 minute read

Summary

운영체제는 사용자와 컴퓨터 하드웨어 사이에 통신 인터페이스(communication interface)로 일한다.1 운영체제는 CPU, 메인 메모리, 하드디스크, 키보드, 마우스, 프린터 등 하드웨어 자원을 사용자 애플리케이션에 적절히 분배해주어 컴퓨터의 성능을 효율적으로 사용한다.

운영체제의 하드웨어 자원을 관리하는 기능은 다음과 같이 나눌 수 있다.

  • 프로세스 관리
  • 주기억장치 관리
  • 파일 관리
  • 보조기억장치 관리
  • 입출력 장치 관리
  • 네트워킹
  • 보호
  • 기타

몇몇 기능을 이 포스트에서 알아본다.

프로세스 관리(Process management)

프로세스 관리는 운영체제 기능 중 가장 중요한 기능 중 하나다. 프로세스는 실제 메인 메모리에 할당되어 CPU를 사용하며 실행 중인 프로그램(program in execution)을 뜻한다.2

운영체제는 프로세스 관리를 위해 다음과 같은 일을 한다.

  • 프로세스의 생성과 소멸(creation, deletion)
  • 프로세스 활동 일시 중지, 활동 재개(suspend, resume)
  • 프로세스 스케줄링 (process scheduling)
  • 프로세스 간 통신(interprocess communication: IPC)
  • 프로세스 간 동기화(synchronization)
  • 교착상태 처리(deadlock handling)

프로세스 스케줄링에 관해서는 이 포스트를 참고하면 된다

주기억장치 관리(Main memory management)

주기억장치(메인 메모리)는 프로그램이 실행되기 위한 공간이다. CPU는 오직 메인 메모리에 있는 프로그램(실행되고 있을 때는 프로세스라 부른다)하고 소통할 수 있다.

운영체제는 실행되는 프로세스를 메인 메모리와 디스크 사이로 왔다 갔다 옮기면서3, 메인 메모리를 효율적으로 사용하도록 관리한다.

  • 프로세스에 메모리 공간 할당(allocation)
  • 메모리의 어느 부분이 어느 프로세스에 할당되었는지 추적 및 감시
  • 프로세스 종료 시 메모리 회수(deallocation)
  • 메모리의 효과적 사용
  • 가상 메모리(virtual memory)를 사용해 실제 물리적 메모리보다 큰 용량을 사용

파일 관리(File management)

hard disk sector 위 그림처럼 디스크는 물리적으로 track과 sector로 구성되어 있다4. 반면에 파일은 논리적 데이터를 관리하는 것이다. 운영체제는 복잡한 과정으로 하드디스크에 저장된 것을 파일이라는 논리적 형태로 관리하여 사용자가 편리하게 사용할 수 있도록 보여준다.

  • 파일 생성과 삭제(file creation, deletion)
  • 디렉토리 생성과 삭제(directory creation, deletion)
  • 기본 동작(open, close, read, write, create, delete) 지원
  • Track/sector - file 간의 매핑
  • 백업

보조기억장치 관리 (Secondary storage management)

보조기억장치는 하드 디스크, 플래시 메모리 등이 있다.

  • 빈 공간 관리(Free space management)
  • 저장공간 할당(Storage allocation)
  • 디스크 스케줄링(Disk scheduling)

입출력 장치 관리(I/O device management)

입출력 장치는 키보드, 마우스, 프린터, 스피커, 마이크 등이 있다.

  • 장치 드라이브(Device drivers)
  • 입출력 장치의 성능향상(buffering, caching, spooling)

시스템 콜(System call)

시스템 콜은 유저 프로세스에서 운영체제 서비스가 필요할 때 사용하는 프로그램 호출을 뜻한다. 시스템 콜은 프로세스와 운영체제 사이 인터페이스를 제공한다.5 System Call 위 그림에서 Process1는 프로세스 관리에 시스템 콜을 요청한다. 프로세스가 실행되는 중간에 시스템 콜을 통해 필요한 운영체제 서비스의 코드로 점프할 수 있다.

주요 시스템 콜

  • 프로세스 제어: end(정상 종료), abort(강제 종료), create, terminate, allocate and free memory 6
  • 파일 관리: create, delete, open, close, read file
  • 장치 관리: request, release, read, write, get/set attributes, attach/detach devices
  • Information: get/set time, get/set system data
  • Communication: socket, send, receive

References

Categories:

Updated:

Leave a comment