TIL/Computer Science

(운영체제) 사용자 모드와 커널 모드

parksisi 2022. 5. 26. 12:26

CPU Protection RingCPU도 권한 모드라는 것을 가지고 있음

  • 사용자 모드 (User mode by application): 응용 프로그램이 사용
  • 커널 모드 (Kernel mode by OS) : 특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근을 가능케하는 모드
  • 보통 Ring3이 사용자 모드, Ring0이 커널모드이며 이 두가지 모드를 주로 사용

응용프로그램과 운영체제

  • 명령어에 따라서 어떤 명령어는 사용자 영역에서 처리가 되기도, 어떤 명령어는 시스템 콜을 통해서 커널 영역에서 실행
  • 예를 들어 더하기 연산을 한 후 파일에서 데이터를 가져와 그 값을 빼는 응용프로그램이 있다고 할 때, 더하기, 빼기 연산은 사용자 영역에서 실행될 것이고, 파일의 데이터를 가져오기 위해선 응용프로그램이 시스템 콜을 통해 커널 모드에서 해당 명령을 실행할 것이다.

출처: https://twinjh.tistory.com/15

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

  • 커널 모드에서만 실행 가능한 기능들이 있음
  • 커널 모드로 실행하려면 반드시 시스템 콜을 사용해야함(거쳐야 함)
  • 시스템 콜은 운영체제에서 제공

사용자 모드와 커널 모드

  • 함부로 응용 프로그램이 전체 컴퓨터 시스템을 해치지 못함
  • 주민등록등본은 반드시 동사무소에서 특별한 신청서(시스템 콜)를 써야만 발급 가능 (사용자 모드)
    • 동사무소 직원은 특별한 권한을 가지고 주민등록등본 출력 명령을 실행 (커널 모드)

정리

  • 운영체제는 시스템 콜 제공
  • 프로그래밍 언어별로 운영체제 기능을 사용하기 위해 시스템 콜 기반으로 API제공
  • 응용 프로그램은 운영체제 기능 필요시 해당 API를 사용해서 프로그램 작성
  • 응용 프로그램이 실행되서 운영체제 기능이 필요한 API를 호출하면 시스템 콜이 호출되서 커널 모드로 변경되어 운영체제 내부에서 해당 명령이 실행되고 다시 응용 프로그램으로 돌아간다.