[운영체제] 유저모드, 커널모드

Chloe Choi·2021년 3월 22일
0

운영체제

목록 보기
9/10

이렇게 접근 가능한 자원에 따라 모드가 나뉘어 있다.

  • 유저모드
  • 커널모드

두 모드로 나뉘어져 있는데, 이는 커널에서 중요한 자원을 관리하기 때문에 사용자가 그 중요한 자원에 접근하지 못하도록 모드를 2가지로 나눈 것이다.
즉, 보안성과 안전성 확보를 위해 나눔

각 모드에 대해 알아보자

커널모드

: 시스템 영역(커널)에 접근할 수 있는 실행모드

  • 시스템의 모든 메모리에 접근할 수 있고 CPU 명령을 실행할 수 있음
  • 운영체제 코드나 디바이스 드라이버와 같은 커널모드 코드를 실행

유저모드

: 유저가 접근할 수 있는 OS 영역 내에서 동작되는 실행모드

  • 사용자 애플리케이션 코드가 실행
  • 하드웨어에 직접 접근할 수 없음
  • 유저모드에서 실행하는 스레드는 자신만의 유저모드 스택을 가짐

따라서, 필요 시 일시적으로 커널모드로 전환해 커널 내 처리 요청을 처리하고 다시 유저모드로 전환되어 실행하는 방식으로 동작한다!

이는 시스템 콜을 통해 이루어진다.

시스템 콜


: 커널과 사용자 사이의 인터페이스 역할을 하는 것으로 쉘에서 명령어나 서브 루틴 형식으로 운영체제의 기능을 호출한다.

최상단 그림의 System library들이 시스템 콜을 이용해 구현되어 있다.

따라서, 응용프로그램 -> 라이브러리 -> 커널모드 접근은 다음과 같이 진행된다.

profile
똑딱똑딱

0개의 댓글