Study/운영체제

유저 모드와 커널 모드

voider 2021. 2. 8. 22:42

운영체제 구조

사용자 모드와 커널 모드


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