운영체제 구조

Nam Eun-Ji·2020년 11월 19일
0

운영체제

목록 보기
3/3

운영체제 역할

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

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


운영체제 구조

  • 운영체제는 사용자 인터페이스 제공하기 위해 쉘 프로그램을 제공

    • 쉘(Shell) : 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램
    • 쉘은 CLI(터미널 환경), GUI환경 두 종류로 분류
  • 운영체제는 응용프로그램을 위해서도 인터페이스를 제공
    - API
    - 각 언어별 운영체제 기능 호출 인터페이스 함수(각 언어별 인터페이스)
    - 함수로 제공, ex) open()
    - 보통은 라이브러리 형태로 제공

    • 시스템 콜
      • 운영체제 기능을 호출하는 함수
      • 시스템 콜 또는 시스템 호출 인터페이스
      • 운영체제가 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공
      • API 내부에는 시스템콜을 호출하는 형태로 만들어지는 경우가 대부분
    • 응용프로그램이 운영체제 기능을 요청하기 위해서 운영체제는 시스템콜을 제공하나 보통 시스템 콜을 직접 사용하기 보다는 해당 시스템콜을 사용해서 만든 각 언어별 라이브러리(API)를 사용한다.
  • 운영체제를 만든다면?

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


CPU Protection Rings

  • CPU도 권한모드라는 것을 가지고 있다.
    • 사용자 모드(user mode by application)
    • 커널 모드(kernel mode by OS) : 특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근을 가능케 하는 모드
    • 시스템 콜은 커널 모드로 실행
      • 커널모드에서만 실행가능한 기능들이 있음
      • 커널 모드로 실행하려면 반드시 시스템콜을 거쳐야함
      • 시스템 콜은 운영체제 제공
    • 함부로 응용프로그램이 전체 컴퓨터 시스템을 해치지 못함


정리

  • 운영체제는 시스템 콜 제공
  • 프로그래밍 언어별로 운영체제 기능을 활용하기 위해 시스템 콜을 기반으로 API 제공
  • 응용프로그램은 운영체제 기능 필요 시, 해당 API를 사용해서 프로그램을 작성
  • 응용프로그램이 실행되서, 운영체제 기능이 필요한 API를 호출하면, 시스템 콜이 호출되고, 커널모드로 변경되어 OS내부에서 해당 명령이 실행되고, 다시 응용프로그램으로 돌아간다.
profile
한 줄 소개가 자연스러워지는 그날까지

0개의 댓글