Study/운영체제

운영체제2 - 시스템 콜

voider 2021. 2. 7. 19:32

응용 프로그램을 도서관에 비유

운영체제를 도서관에 빗대어 볼 수 있다.

운영체제 == 도서관

응용 프로그램 == 시민

하드웨어 == 책

시민은 도서관에 책을 요청하고, 도서관은 요청 받은 책을 대여한다. 시민은 책을 다 읽고 나면 도서관에 책을 반납한다. 이것을 운영체제로 치환하면 이렇다.

응용 프로그램은 운영체제에 필요한 하드웨어 자원을 요청한다. 운영체제는 요청 받은 하드웨어 자원을 응용프로그램에게 할당한다. 응용 프로그램은 할당 받은 자원으로 작업하고, 작업을 종료하면 다시 운영체제에게 하드웨어 자원을 반납한다.

응용 프로그램, 운영체제, 하드웨어의 관계

  • 운영체제는 응용 프로그램이 요청하는 메모리를 허가/분배한다.
  • 운영체제는 응용 프로그램이 요청하는 CPU시간을 제공한다.
  • 운영체제는 응용 프로그래밍을 요청하는 IO Devices 사용을 허가/제어한다.

운영체제는 사용자 인터페이스 제공(Shell)

  • 운영체제는 사용자가 자신이 제공하는 기능을 사용할 수 있도록 하는 쉘(Shell)이라는 인터페이스를 제공한다.
  • 쉘은 CLI(Command Line Interface)와 GUI(Graphical User Interface)로 분류한다.

프로그램을 위한 API를 제공한다

  • 응용 프로그램은 응용 프로그램 내부의 프로그래밍 언어를 통해서 운영체제에 요청할 수 있다. 따라서 운영체제는 응용 프로그램을 위한 API(Application Programming Interface)를 제공한다.

    API는 일종의 '요청서'라고 볼 수 있다. 운영체제는 내가 제공하는 API를 통해서만 나에게 접근할 수 있다고 말하고 있는 것이다.

  • API의 종류가 많기 때문에 비슷한 API들끼리 묶어서 라이브러리 형태로 제공한다.

시스템 콜

  • 시스템콜 또는 시스템 호출 인터페이스
  • 운영체제가 자신의 기능을 사용할 수 있도록 '시스템 콜'이라는 명령 또는 함수를 제공한다.
  • 운영체제가 제공하는 각 언어별 API내부에는 운영체제의 시스템콜을 호출하는 방식으로 구현되어 있다.

패스트캠퍼스 제공

운영체제를 만드는 순서

  1. 운영체제 개발(kernel)
  2. 시스템콜 개발
  3. 각 프로그래밍 언어별 API 개발
  4. Shell 개발
  5. 응용 프로그램

운영체제와 시스템 콜

운영체제는 어떤 시스템 콜을 제공해야 할까? 이 표준을 정의해놓은 것이 POSIX API다. POSIX API는 UNIX계열 운영체제가 제공해야 하는 표준 시스템 콜을 정의해둔 문서다.

API와 시스템콜 쉽게 이해하기

API : 각 언어 별 운영체제 기능을 호출하는 함수

시스템 콜:운영체제 기능을 호출하는 함수

정리

  • 운영체제는 하드웨어와 응용 프로그램을 관리한다.
  • 사용자 인터페이스를 제공하기 위해 쉘 프로그램을 제공한다.
  • 응용 프로그램이 운영체제에게 요청하기 위해서 운영체제는 시스템 콜을 제공한다.
    • 보통 시스템 콜을 직접 사용하기보다는, 시스템 콜을 사용해서 만든 프로그래밍 언어 별 라이브러리를 이용한다.

패스트 캠퍼스 컴퓨터 공학 강의 듣고 정리한 글입니다.

'Study > 운영체제' 카테고리의 다른 글

프로세스와 스레드  (0) 2022.03.18
프로세스 스케쥴링 #2 멀티 프로그래밍  (0) 2021.03.10
프로세스 스케쥴링  (0) 2021.02.09
유저 모드와 커널 모드  (0) 2021.02.08
운영체제1  (0) 2020.10.18