All ContentsCategoryAbout

OS Study 02

03 November, 2020 - Computer Science - 2 min read

운영체제의 구조

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

    • 운영체제가 도서관이라면
    • 응용 프로그램은 시민
    • 하드웨어는 책
    • 운영체제의 역할
    • 시민이 도서관에 책을 요청
    • 도서관은 요청받은 책을 빌려줌(응답)
    • 시민이 빌린 책의 기한이 다 되면 도서관이 회수

운영체제의 역할

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

사용자 인터페이스 제공

쉘(shell)

  • 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램
  • 쉘은 터미널 환경(CLI: Command Line Interface)과, GUI(Graphical User Interface) 환경으로 구분

API(Application Programming Interface)

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

    • 함수의 형태
    • ex) open() -> 파일을 오픈할 때 쓰는 함수
  • 종류가 많기 때문에 보통 라이브러리(Library)로 제공

시스템 콜

  • 시스템 콜 또는 시스템 호출 인터페이스
  • 운영체제가 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공
  • API 내부에는 시스템 콜을 호출하는 형태로 만들어지는 경우가 대부분
  • 시스템 콜을 바로 사용하기에는 번거롭기 때문에 API를 통해 접근하게 됨
  • UNIX 계열 운영체제의 시스템 콜은 POSIX API를 주로 사용함(리눅스, 맥)
  • 시스템 콜 역시 API로 볼 수 있으며, 운영체제의 기능을 호출하는 함수를 제공한다. 그리고, API는 시스템 콜을 랩핑(wrapping)하여 각 언어별로 운영체제의 기능을 호출할 수 있도록 함수를 제공한다.

참고:

사용자 모드와 커널 모드

CPU Protection Rings

  • CPU는 권한 모드를 갖고 있음

    1. 사용자 모드(user mode): 응용 프로그램이 사용
    2. 커널 모드(kernel mode):
    3. 특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근을 가능하게 하는 모드
    4. OS가 사용
  • 우리가 만드는 프로그램은 사용자 영역에서 존재함
  • 시스템콜은 커널모드로 실행

    • 커널 모드에서만 실행 가능한 기능들이 있음
    • 커널 모드로 실행하려면 반드시 시스템 콜을 사용해야 함
    • 시스템 콜은 운영체제에서 제공
  • 권한에 따라 영역을 나눔으로써 응용 프로그램이 전체 컴퓨터 시스템에 악영향을 끼칠 가능성을 사전에 예방

code example

사용자 영역 -> 커널 영역 실행 도식도

참고:

© 2023 intzzzero, Built with

Gatsby