취업 준비/운영체제

운영체제의 구조

openingsound 2020. 12. 23. 23:09

컴퓨터 구조

  • 컴퓨터를 키면? → 운영체제는 Memory에 올라간다.

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

도서관으로 비유

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

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

  • 쉘(Shell) : 이거도 응용 프로그램

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

     

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

  • API (Application Programming Interface)

    • 요청서
    • 함수로 제공
    • 각 언어별 운영체제 기능 호출 인터페이스 함수
  • 보통은 라이브러리(library)형태로 제공

    • C library
    시스템 콜
    • 시스템 콜 or 시스템 호출 인터페이스
    • 운영체제가 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공
    • API 내부에는 시스템콜을 호출 하는 형태로 만들어지는 경우가 대부분
    • ex)
      • open() 파일을 읽어 냄
      • POSIX API, 윈도우 API

운영체제를 만든다면?

  1. 운영체제를 개발한다. (kernel)
  2. 시스템 콜을 개발
  3. C API(library) or JAVA API
  4. Shell 프로그램

CPU Protection Rings

  • CPU도 권한 모드라는 것을 가지고 있다.

    • 사용자 모드(user mode)
      • Application이 사용
    • 커널 모드(kernel mode )
      • 특권 명령어 실행과 원하는 작업 수행을 위한 작업 접근을 가능케하는 모드
      • OS가 사용
      • 커널: 알맹이, 핵심
      • 커널 모드에서만 실행 가능한 기능들이 있고(응용 프로그램이) 커널 모드로 실행 하려면 반드시 시스템 콜을 거쳐야 함
        • 시스템콜은 OS가 제공
        • 응용프로그램이 CPU를 사용하고 싶으면 무조건 시스템콜을 사용해서 커널모드로 CPU를 실행해야 한다.
  • 함부로 응용프로그램이 전체 컴퓨터 system을 헤치지 못한다.

    • 주민등록본은 꼭 동사무소 or 정부사이트에서 특별한 신청서를 써야만 , 발급해주는 것과 같다.
      • 동사무소 직원들은 특별한 권한을 가지고 주민등록본 출력 명령을 실행 한다.

쉬어가기

  • 응용프로그래머
    • API를 가지고 응용프로그램을 만든다
  • 시스템 프로그래머
    • 운영 체제 + shell + API + system call + 하드웨어 를 다룬다.

 

정리

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

'취업 준비 > 운영체제' 카테고리의 다른 글

인터럽트  (0) 2020.12.30
프로세스 상태와 스케쥴링  (0) 2020.12.30
스케쥴링 알고리즘  (2) 2020.12.30
프로세스 스케쥴링 기초  (0) 2020.12.24
운영체제와 응용 프로그램  (1) 2020.12.23