View

운영체제 구조-사용자 모드와 커널 모드

이번 장에서는 System Call, OS를 집중적으로 살펴보겠습니다.


CPU Protection Rings

  • CPU는 권한모드라는 것을 가지고 있습니다.
    • 사용자모드(user mode by application) : 일반적인 명령들을 실행하며, 응용프로그램에 의해 사용되어집니다.
    • 커널 모드(kernel mode by OS) : 특권 명령어 실행하며, 운영체제가 원하는 작업 수행을 위해 특정 자원 접근에 가능케 하는 모드로, OS에 의해 사용되어집니다.
  • CPU는 보통 4가지 모드(intel 기준)를 제공합니다.
    • Ring 0~3까지 4가지가 있고, Ring 3과 0이 중요합니다.
    • Ring 3은 사용자 모드로, application이 CPU를 사용할 때 쓰는 모드이고,
    • Ring 0은 커널 모드로, OS가 CPU를 사용할때 쓰는 모드입니다.
      CPU Protection Rings

용어 정리

Kernel이란? - OS Kernel
  1. (견과류, 씨앗의) 알맹이
  2. (사상, 주제의) 핵심
Shell이란?
  1. 껍데기 -> 커널의 껍데기

응용프로그램과 운영체제

  1. 1~1000 더하고 -> 사용자 영역
  2. 파일에서 데이터 가져오기 -> 디스크에서 가져오게 되므로 -> 커널 영역
  3. 해당 데이터와 1~1000 더한 값을 더한다.-> 사용자 영역

=> 시스템 콜을 통과하는 순간부터는 운영체제라는 특권 권한을 가지고 커널 모드에서 실행된다.


시스템 콜은 커널 모드로 실행

  • 커널 모드에서만 실행 가능한 기능들이 있다.
  • 커널 모드로 실행하려면, 반드시 시스템 콜을 사용해야한다.
  • 시스템 콜을 통해서만 운영체제의 기능을 쓸 수 있다.
  • 그렇기 때문에 기능을 사용할 수 있도록 운영체제를 만들때, 시스템 콜을 제공해주어야 한다.

사용자 모드와 커널모드

  • 함부로 응용 프로그램이 전체 컴퓨터 시스템을 해치지 못함.
  • 주민등록등본은 꼭 동사무소 또는 민원 24에서 특별한 신청서를 써야만, 발급 가능한 원리와 동일
    • 동사무소 직원이 특별한 권한을 가지고, 주민등록등본 출력 명령을 실행

운영체제까지 명령이 도달되기 까지의 권한 구분에 따라 프로그램을 만드는 프로그래머도 구분되어있지 않을까!??
다음을 살펴보자.

응용프로그래머와 시스템 프로그래머의 구분

  • 응용 프로그래머 : API를 가지고 응용 프로그램을 만드는 것. 사용자 프로그램
  • 시스템 프로그래머 : 운영체제 및 시스템 프로그래밍(Shell, API, System call), 하드웨어

코드 예제

아래 코드가 실행되는 순서를 살펴보며, 프로그램실행부터 운영체제의 기능 실행까지의 과정을 이해해 보자.

[user 모드]

  • API

👇

-------------- System call 호출-------------

👇

[kernel 모드]

  • System call을 처리하는 운영체제 함수 존재

시스템콜 전후로 모드의 변경이 이루어 진다!
사용자의 프로그램의 프로그래밍 언어에 따른 API 호출(사용자모드) -> | 시스템 콜 | -> (커널모드)운영체제의 함수 호출 및 기능 실행


오늘 배운 내용 정리

  • 운영체제는 시스템 콜을 제공한다.
  • 프로그래밍 언어별로 운영체제 기능을 활용하기 위해, 운영체제는 시스템 콜을 기반으로 API를 제공한다.
  • 응용프로그램은 운영체제 기능 필요시, 해당 API를 사용해서 프로그램을 작성한다.
  • 응용 프로그램이 실행되면서, 운영체제 기능이 필요한 API를 호출하면, 시스템 콜이 호출되서, 커널 모드로 변경되어 OS내부에서 해당 명령이 실행되고, 다시 응용프로그램으로 들어간다.
Share Link
reply
«   2024/10   »
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