운영체제의 구조와 시스템 콜

Kwon, Hyojin·2021년 4월 18일
0

OS

목록 보기
6/6

해당 글은 이준희 강사의 컴퓨터 공학 운영체제 강의의 일부를 들은 후 정리한 내용입니다.

저를 포함해 많은 컴퓨터 공학 입문자들께서 운영체제를 도서관에 많이 비유하여 이해하곤 합니다.

운영체제는 도서관, 응용 프로그램은 시민, 컴퓨터 하드웨어 자원들은 책, API는 대출증으로 비유할 수 있습니다.

시민이 도서관에서 원하는 책을 요청하듯이, 운영체제는 응용 프로그램이 요청하는 메모리를 허가하고 분배합니다.

적절한 책을 찾아 시민께 빌려주고 기한이 끝나면 해당 책을 회수하듯이, 운영체제는 응용 프로그램이 요청하는 CPU 시간과, IO 장치들의 사용을 허가하고 제어합니다.

운영체제(OS; Operating System) 구조

(그림 위키백과 참고: https://en.wikipedia.org/wiki/Operating_system)

  1. 사용자
    • API를 기반으로 만들어진 응용 프로그램(application)이나 shell 프로그램을 사용
  2. 응용 프로그램 (shell 이용)
    • shell(쉘)
      • 운영체제가 제공하는 사용자 인터페이스
      • shell을 통해 사용자가 운영체제 기능과 서비스를 조작
  3. API(Application Programming Interface)
    • 운영체제가 응용 프로그램을 위해 인터페이스를 (함수 형태로) 제공
    • 대부분의 shell 프로그램이 C 언어로 만들어졌기 때문에, 보통 C library 형태로 제공
  4. 시스템 콜(System call)
    • 운영체제가 운영체제의 각 기능을 사용할 수 있도록 명령 또는 함수를 제공
    • 응용 프로그램이 운영체제 기능을 요청하기 위해 운영체제가 제공
    • 보통은 직접 사용하지 않고, 해당 시스템 콜을 사용해 만든 각 언어별 라이브러리, 즉 API를 사용
    • 정의 예: POSIX API, 윈도우 API
  5. 운영체제
    • 컴퓨터 하드웨어와 응용 프로그램을 관리
  6. 컴퓨터 하드웨어 자원들 (CPU, Memory, Storage, Network)

시스템 콜과 API의 차이

시스템 콜API
운영체제 기능을 호출하는 함수각 언어별로 운영체제 기능을 요청할 수 있는 인터페이스 함수
기본적으로 운영체제 입장에서의 각 기능을 정의시스템 콜을 호출하는 형태로 만들어지는 경우가 대부분
프로그래밍에서 쓰기에는 복잡도가 높고 사용법이 익숙치 않음각 API는 결국 시스템 콜을 통해 운영체제에 기능을 요청
profile
파이썬 웹 백엔드 개발자

0개의 댓글