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를 사용할때 쓰는 모드입니다.
용어 정리
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