[운영체제] 운영체제 - 시스템콜

Yeongsan Son·2021년 6월 23일
0

운영체제를 도서관에 비유한다면 다음과 같이 설명할 수 있을 것이다.

운영체제를 도서관, 응용 프로그램을 도서관 회원에 컴퓨터 하드웨어를 도서관에 비치된 책으로 비유한다면

  • 운영체제(도서관)의 역할
    • 회원(응용프로그램)은 도서관에 책(하드웨어)을 요청함
    • 도서관은 책을 찾아서 회원에게 대출
    • 회원이 대출 기한이 만료되면 대출 도서를 반납하고 도서관은 이를 회수

위의 비유에서처럼 운영체제는 응용프로그램을 제어한다.

  • 응용프로그램이 요청하는 메모리를 허가하고 분배
  • 응용프로그램이 요청하는 CPU 시간 제공
  • 응용프로그램이 요청하는 IO Devices 사용을 허가/제어

사용자 - 응용프로그램 - 운영체제 - 하드웨어

운영체제의 사용자 인터페이스

  • 쉘(Shell)
    • 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램
    • 쉘은 터미널 환경(CLI)과 GUI 환경 두 종류로 분류

응용프로그램을 위한 인터페이스

  • API(Application Programming Interface)
    • 함수로 제공
    • C에서의 파일 열기 :open()
    • 요청서의 집합
  • 보통은 라이브러리(library) 형태로 제공
    • C library
    • Python library
    • Javascript library 등

시스템 콜

  • 시스템 콜 또는 시스템 호출 인터페이스
  • 운영체제가 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공
  • API 내부에는 시스템 콜을 호출하는 형태로 만들어지는 경우가 대부분이다.
  • 운영체제 입장에서 기능을 정의한 것이라 프로그래밍에서 사용하기는 복잡하다. 그렇기 때문에 응용프로그램은 API를 제공한다.

운영체제를 만드는 과정

  1. 운영체제(kernel)
  2. 시스템 콜
  3. 운영체제를 작성한 언어의 API(library)
  4. Shell 프로그램
  5. 응용프로그램

운영체제와 시스템콜

표준 시스템콜

API: 각 언어별 운영체제 기능 호출 인터페이스 함수
시스템콜: 운영체제 기능을 호출하는 함수

정리

  • 운영체제는 컴퓨터 하드웨어와 응용프로그램을 관리한다.
  • 사용자 인터페이스를 제공하기 위해 쉘 프로그램을 제공한다.
  • 응용프로그램이 운영체제 기능을 요청하기 위해서, 운영체제는 시스템 콜을 제공한다.
    • 보통 시스템 콜을 사용하기 보다는, 해당 시스템 콜을 사용해서 만든 각 언어별 라이브러리(API)를 사용한다.
profile
매몰되지 않는 개발자가 되자

0개의 댓글