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
- (견과류, 씨앗의) 알맹이
- (사상, 주제의) 핵심
Shell이란?
- 껍데기 -> 커널의 껍데기
응용프로그램과 운영체제

- 1~1000 더하고 -> 사용자 영역
- 파일에서 데이터 가져오기 -> 디스크에서 가져오게 되므로 -> 커널 영역
- 해당 데이터와 1~1000 더한 값을 더한다.-> 사용자 영역
=> 시스템 콜을 통과하는 순간부터는 운영체제라는 특권 권한을 가지고 커널 모드에서 실행된다.
시스템 콜은 커널 모드로 실행
- 커널 모드에서만 실행 가능한 기능들이 있다.
- 커널 모드로 실행하려면, 반드시 시스템 콜을 사용해야한다.
- 시스템 콜을 통해서만 운영체제의 기능을 쓸 수 있다.
- 그렇기 때문에 기능을 사용할 수 있도록 운영체제를 만들때, 시스템 콜을 제공해주어야 한다.
사용자 모드와 커널모드
- 함부로 응용 프로그램이 전체 컴퓨터 시스템을 해치지 못함.
- 주민등록등본은 꼭 동사무소 또는 민원 24에서 특별한 신청서를 써야만, 발급 가능한 원리와 동일
- 동사무소 직원이 특별한 권한을 가지고, 주민등록등본 출력 명령을 실행
운영체제까지 명령이 도달되기 까지의 권한 구분에 따라 프로그램을 만드는 프로그래머도 구분되어있지 않을까!??
다음을 살펴보자.
응용프로그래머와 시스템 프로그래머의 구분
- 응용 프로그래머 : API를 가지고 응용 프로그램을 만드는 것. 사용자 프로그램
- 시스템 프로그래머 : 운영체제 및 시스템 프로그래밍(Shell, API, System call), 하드웨어
코드 예제
아래 코드가 실행되는 순서를 살펴보며, 프로그램실행부터 운영체제의 기능 실행까지의 과정을 이해해 보자.

[user 모드]
- API
👇
-------------- System call 호출-------------
👇
[kernel 모드]
- System call을 처리하는 운영체제 함수 존재
시스템콜 전후로 모드의 변경이 이루어 진다!
사용자의 프로그램의 프로그래밍 언어에 따른 API 호출(사용자모드) -> | 시스템 콜 | -> (커널모드)운영체제의 함수 호출 및 기능 실행

오늘 배운 내용 정리
- 운영체제는
시스템 콜을 제공한다. - 프로그래밍 언어별로 운영체제 기능을 활용하기 위해, 운영체제는
시스템 콜을 기반으로 API를 제공한다. - 응용프로그램은 운영체제 기능 필요시,
해당 API를 사용해서 프로그램을 작성한다. 응용 프로그램이 실행되면서, 운영체제 기능이 필요한API를 호출하면,시스템 콜이 호출되서,커널 모드로 변경되어OS내부에서 해당 명령이 실행되고, 다시응용프로그램으로 들어간다.
'Computer Science > 운영체제(OS)' 카테고리의 다른 글
| 컴공전공자_따라잡기 | CH02. 스케쥴링 - 멀티 프로그래밍 (0) | 2021.11.24 |
|---|---|
| 컴공전공자_따라잡기 | CH02. 스케쥴링 - 배치 처리, 멀티 태스킹, 멀티프로세 (0) | 2021.11.23 |
| 컴공전공자_따라잡기 | CH02. 운영체제 구조-시스템콜 (0) | 2021.11.23 |
| 컴공전공자_따라잡기 | CH01. Intro - 운영체제 큰 그림과 응용 프로그램 (0) | 2021.11.22 |
| 컴공전공자_따라잡기 | CH01. Intro - 운영체제 큰 그림 (0) | 2021.11.22 |
reply