[OS] 운영체제 구조 - 시스템 콜

박성재·2021년 2월 20일
1

운영체제

목록 보기
2/10
post-thumbnail

패스트캠퍼스 컴퓨터 공학자 따라잡기 온라인 완주반
운영체제(이준희 님) 파트를 수강하며 공부한 내용을 정리한 자료입니다.

배너: godori님이 만드신 배너 메이커 활용


응용 프프로그램, 운영체제, 컴퓨터 하드웨어(시스템 리소스) 간의 관계

도서관에 비유

  • 운영체제는 도서관
  • 응용 프로그램은 시민
  • 컴퓨터 하드웨어는 책

운영체제의 역할

  • 시민(응용 프로그램)은 도서관에 원하는 책(자원)을 요청한다.
  • 도서관(OS)은 적절한 책(자원)을 찾아서 시민(응용 프로그램)에게 빌려준다.
  • 시민(응용 프로그램)에게 보장된 기한이 다 되면, 도서관(OS)이 해당 책(자원)을 돌려받는다(회수).

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

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

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

운영체제가 제공하는 사용자 인터페이스

운영체제는 (Shell)이라고 하는 사용자 인터페이스를 제공한다.

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

CLI: Command Line Interface
GUI: Graphical User Interface

운영체제가 응용 프로그램을 위해 제공하는 인터페이스

운영체제는 사용자뿐만 아니라, 응용 프로그램을 위해서도 인터페이스를 제공한다.

시스템 콜(System Call):

  • 시스템 콜 또는 시스템 호출 인터페이스 (운영체제 기능을 호출하는 함수)
  • 운영체제는 운영체제의 각 기능을 응용 프로그램들이 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공한다.
  • 각 프로그래밍 언어가 운영체제와 상호작용하기 위한 API 내부에는 시스템 콜을 호출하는 형태로 만들어지는 경우가 대부분이다.

여기서 API(Application Programming Interface)는 응용 프로그램과 운영체제(또 하나의 응용 프로그램)이 상호작용하는 창구라고 이해할 수 있다. API는 open()와 같은 함수들이 모여있는 라이브러리(library) 형태로 제공된다. (C library)

시스템 콜과 상호작용하기 위한 API 규격의 예: POSIX API, 윈도우 API

이처럼 응용 프로그램은 API를 통해 시스템 콜과 상호작용하여 요청을 OS에 전달할 수 있다.

그림1. OS가 제공하는 인터페이스 한 눈에 보기

운영체제가 제공하는 인터페이스

위 그림을 통해 유추할 수 있겠지만, Shell 또한 응용 프로그램의 일종이다.

운영체제를 만든다면?

  1. 운영체제 개발 (kernel)
  2. 시스템 콜 개발
  3. C API (library) 개발
  4. Shell 프로그램 개발
  5. 응용 프로그램 개발

정리

  • 운영체제는 컴퓨터 하드웨어와 응용 프로그램을 관리한다.
  • 운영체제는 사용자 인터페이스를 제공하기 위해 쉘 프로그램을 제공한다.
  • 운영체제는 시스템 콜을 제공해 응용 프로그램이 운영제체 기능을 요청할 수 있게 해준다.
    • 보통 시스템 콜을 직접 사용하기 보다는, 해당 시스템 콜을 사용해서 만든 각 언어별 라이브러리(API)를 사용한다.

0개의 댓글