운영체제 구조
사용자 모드와 커널 모드
CPU Protection Rings
CPU도 권한 모드를 가지고 있다.
-
사용자 모드 (User mode)
응용 프로그램이 사용하는 모드.
-
커널 모드(kernel mode)
특권 명령어 실행과 원하는 작업을 수행하기 위한 자원에 접근 즉, OS가 제공하는 기능을 사용할 수 있게 해주는 권한 모드
커널(kernel)이란?
OS 본연의 기능. 운영체제의 핵심 소프트웨어를 커널이라고 한다.
시스템 콜은 커널 모드로 실행
- 커널 모드에서만 실행 가능한 기능이 있음
- 커널 모드로 실행하려면 반드시 시스템콜을 거쳐야 한다.
- 시스템콜은 운영체제가 제공한다.
응용 프로그램이 운영체제의 기능을 사용하려면, 반드시 시스템 콜을 거쳐 커널 모드로 접근해야 한다. 응용 프로그램은 사용자 모드를 사용하는데, 사용자 모드로는 운영체제에 접근할 수 없다.
이렇게 설계되어 있기 때문에 응용 프로그램은 함부로 시스템에 접근하여 시스템을 헤칠 수 없다.
이것을 동사무소에 비유해서 이해할 수 있다. 우리는 직접 주민등록증을 발급할 수 없다. 특별한 신청서를 써서 주민등록증을 발급해달라고 요청해야 한다. 동사무소는 특별한 권한을 가지고 주민등록증을 발급해서 우리에게 돌려준다.
컴퓨터도 마찬가지다. 응용 프로그램이 운영체제에 직접 접근할 수 없다. 시스템콜에게 운영체제의 기능을 사용하고 싶다고 요청하면 시스템콜은 커널 모드로 운영체제에 접근하여 요청 받은 작업을 처리하고 결과를 응용 프로그램에게 돌려준다.
코드 레벨로 보면 좀 더 이해하기 쉬울 것 같다.
정리
- 운영체제는 시스템콜을 제공한다.
- 프로그래밍 언어별 운영체제 기능을 활용하기 위해, 시스템콜을 기반으로 API를 제공한다.
- 이 API를 사용해서 응용프로그램은 OS가 제공하는 기능을 사용할 수 있다..
- 응용 프로그램이 유저 모드로 API를 호출하면 시스템콜이 커널 모드로 운영체제 내부에서 응용 프로그램이 요청한 작업이 실행되고, 결과를 응용 프로그램에게 반환한다.
'Study > 운영체제' 카테고리의 다른 글
프로세스와 스레드 (0) | 2022.03.18 |
---|---|
프로세스 스케쥴링 #2 멀티 프로그래밍 (0) | 2021.03.10 |
프로세스 스케쥴링 (0) | 2021.02.09 |
운영체제2 - 시스템 콜 (0) | 2021.02.07 |
운영체제1 (0) | 2020.10.18 |