View

운영체제 구조-시스템콜

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

도서관으로 비유해보자면

  • 운영체제는 도서관
  • 응용프로그램은 시민
  • 컴퓨터 하드웨어는 책이 된다.  
    • 시민은 도서관에 원하는 책(자원)을 요청하고,
    • 도서관은 적절한 책(자원)을 찾아서, 시민에게 빌려줍니다.
    • 시민이 기한이 다 되면, 도서관이 해당 책(자원)을 회수합니다.
  • 운영체제는 응용프로그램이 요청하는 메모리를 허가하고, 분배한다.
  • 운영체제는 응용프로그램이 요청하는 CPU 시간을 제공한다.
  • 운영체제는 응용 프로그래밍이 요청하는 I/O Devices 사용을 허가/제어한다.

 


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

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

운영체제의 역할 중 하나로 운영체제는 사용자 인터페이스를 제공

  • 쉘(Shell)
    1. 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램.
    2. 쉘은 터미널 환경(CLI)과 GUI환경 두 종류로 분류된다.
    3. 쉘 또한 하나의 응용프로그램이라 볼수있다.

 


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

  • 응용프로그램을 만들어 운영체제의 기능을 사용하고싶을 때, 특정 언어로 된 코드를 통해 기능을 요청하게 된다.
  • 이를 API(Application Programming Interface)라고 부르며,
    • 요청을 함수형태로 제공한다.
    • ex) open()

  • 그 함수들을 묶은 것을 라이브러리(library)라고 한다.
    • ex) C library : C언어로 함수들의 집합
  • 시스템 콜
    • 시스템 콜 또는 시스템 호출 인터페이스라 부르며,
    • 운영체제가 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공
    • API 내부에는 시스템 콜을 호출하는 형태로 만들어지는 경우가 대부분
      ex) 운영체제는 파일을 읽고 쓸 수 있는 open()이라는 시스템 콜을 제공하고 있음.
  • 시스템 콜은 기본적으로 운영체제입장에서의 기능을 정의해 놓은 것으로 프로그램에서 쓰기에는 복잡도가 높아, API형태로 각 언어별로 운영체제 기능을 요청할 수 있는 API를 제공하고 있으며, 결국에는 API-> 시스템콜->운영체제의 순으로 요청을 보내어 하드웨어를 사용할수있게 된다.


운영체제를 만든다면!?

  1. 운영체제를 개발한다.(Kernel : 핵심기능을 가진 운영체제)
  2. 시스템 콜을 개발
  3. C API(library) -> shell 프로그램을 만들기 위한 API(기본 C언어)
  4. Shell 개발
  5. 응용 프로그램 개발

 

운영체제와 시스템 콜

  1. 시스템콜 표준 정의 예
    POSIX API(Linux, UNIX, MacOS), 윈도우 API

 

용어 정리

  • API : 각 언어별 운영체제 기능 호출 인터페이스 함수(각 언어별 인터페이스)
  • 시스템콜 : 운영체제 기능을 호출하는 함수
  • 인터페이스(interface)는 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호 를 주고 받는 경우의 접점이나 경계면이다.

오늘 배운 내용 정리

  • 운영체제는 컴퓨터 하드웨어와 응용프로그램을 관리한다.
  • 사용자 인터파에스를 제공하기 위해 쉘 프로그램을 제공한다.
  • 응용 프로그램이 운영체제 기능을 요청하기 위해서, 운영체제는 시스템 콜을 제공한다.
    • 보통 시스템 콜을 직접 사용하기 보다는, 해당 시스템 콜을 사용하기위해 만든 각 언어별 라이브러리(API)를 사용한다.
Share Link
reply
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31