CS/운영체제

운영체제 구조 - 시스템 콜

:_: 2022. 2. 22. 14:21

 

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

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

 

운영체제 역할

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

 

→ OS는 응용프로그램이 요청하면 적절한 자원을 찾아서 빌려줬다가 회수 

운영체제 없이 자원을 요청할 방법이 없음.

 

운영체제는 응용프로그램이 요청하는 메모리를 허가, 분배

운영체제는 응용프로그램이 요청하는 CPU 시간을 제공

운영체제는 응용프로그램이 요청하는 IO Device 사용을 허가/제어

 

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

→ 사용자가 응용프로그램 실행

응용 프로그램이 운영체제에 시스템 자원을 실행하기 위해 요청

운영체제가 하드웨어 자원을 응용 프로그램에게 제공

 

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

쉘(shell)

 쉘이라는 프로그램이 사용자의 요청을 받아 운영체제에 넘겨준다.

 하나의 응용 프로그램이다. 

 ( 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스(사용법) 제공하는 프로그램  )

 

 쉘은 터미널 환경(CLI)과 GUI 환경 두 종류로 분류

 

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

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

 

응용프로그램은 응용프로그램 안에 프로그래밍 언어를 통해서 운영체제에 요청

API 형태로 응용프로그램을 위한 인터페이스 제공

 

1. API

 

- 함수로 제공 ( ex. open() : C 언어에서의 파일 open )

- 보통은 라이브러리(library) 형태로 제공

   

API 종류별로 묶어서 라이브러리 형태로 제공

  1. 운영체제는 사용자 뿐만 아니라 응용프로그램을 위해서도 인터페이스 제공
  2. API는 함수의 집합, 요청서의 집합. 요청서에 없는 내용이면 운영체제에 요청을 해줄 수 있는 방법은 없다.
  3. 사용자 인터페이스를 제공해주기 위해 shell 제공. 
  4. 응용프로그램도 운영체제에 특별한 기능을 쓰고 싶을 때 API 사용해야 한다.

∴ 운영체제는 운영체제 기능을 응용프로그램이나 사용자가 쓸 수 있도록 API 형태로 제공해준다.

 

2. 시스템 콜

 

- 응용프로그램이 운영체제 기능을 호출하는 함수 

- 시스템 콜 또는 시스템 호출 인터페이스라고 한다.

- 운영체제가 각 기능을 응용프로그램에서 사용할 수 있도록 시스템 콜이라는 명령 또는 함수 제공

- 

API 내부에는 시스템 콜을 호출하는 형태로 만들어지는 경우가 대부분

 

→ OS 는 외부에서 요청하면 시스템 콜 제공 시스템 콜은 프로그래밍에서 쓰기 복잡해 API 형태로 각 언어에 맞춰서 제공하는 경우가 많다.API 안에는 시스템 콜을 통해서 운영체제 기능을 요청한다.API를 종류별로 묶어 놓은 라이브러리를 기반으로 해서 응용프로그램이나 shell 을 만드는 것이고 응용프로그램이나 shell을 통해 사용자가 컴퓨터를 사용하는 것이다.

 

∴ 사용자가 사용하려면 쉘 필요 쉘을 만드려면 API 필요 → API 만드려면 시스템 콜 필요

 

운영체제를 만든다면..

  1. 운영체제 개발 (kernel)
  2. 시스템 콜을 개발
  3. library 개발 (ex. C API - shell C언로로 만드려면)
  4. shell 프로그램 개발
  5. 응용프로그램 개발

 

시스템 콜 정의 예

윈도우 API , POSIX API

 

 

API : 언어별 운영체제 기능 호출 인터페이스 함수 ( 언어별 인터페이스 )

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

 

 


 

정리 

 

1. 운영체제는 컴퓨터 하드웨어와 응용 프로그램을 관리

2. 사용자 인터페이스를 제공하기 위해 쉘 프로그램 제공

3. 응용 프로그램이 운영체제 기능을 요청하기 위해서, 운영체제는 시스템 콜을 제공

  (보통 시스템 콜을 직접 사용하기보다 해당 시스템 콜을 사용해서 만든 각 언어별 라이브러리(API) 사용)  

 

 

 

 

제로베이스 컴퓨터 공학 전공자 따라잡기 강의 시청 후 정리한 내용입니다.
728x90