[운영체제] Kernel mode and User mode(커널 모드와 사용자 모드)

김성록·2023년 3월 6일
0

운영체제

목록 보기
2/14

Kernel mode와 User mode에 대해 설명해보세요.


Kernel(커널)이란?

  • 커널은 운영체제의 핵심 부분으로서, 컴퓨터의 자원을 효율적으로 관리하기 위해 CPU 스케줄링, 메모리 관리, 입출력 관리, 파일 시스템 관리 등의 업무를 수행한다.

커널 모드와 사용자 모드

  • 흔히 사용되는 운영체제는 다중 프로그래밍 환경에서 동작한다. 따라서 프로그램 사이의 충돌 문제를 막기 위해 각종 보안 기법이 필요하다. 운영체제에서 제공하는 두 가지 모드가 커널 모드와 사용자 모드이다. 두 모드는 CPU 내부의 Mode Bit(모드 비트)를 사용하여 구분한다.

커널 모드

  • 모드 비트가 0이면 커널 모드이다.

  • 커널 모드는 운영체제가 CPU의 제어권을 가지고 운영 체제 코드를 실행하는 모드로서, 모든 컴퓨터 자원에 접근, 명령을 할 수 있다.

  • 시스템에 중요한 영향을 미치는 연산은 커널 모드에서만 실행하도록 함으로써 하드웨어의 보안을 유지한다.

사용자 모드

  • 모드 비트가 1이면 사용자 모드이다.

  • 사용자 모드는 일반 사용자 프로그램이 실행되며 제한적인 명령만 수행할 수 있다.

  • 프로그램의 자원에 함부로 접근하지 못하는 모드이다.


커널 모드와 사용자 모드의 전환

  • 프로세스가 실행되는 동안 프로세스에서 수없이 많은 모드의 전환이 실행된다.

사용자 모드 -> 커널 모드

  • 사용자 모드에서 작업을 수행하다 운영체제 기능이 필요할 때, System call(시스템 콜)을 통해 커널에 요청하여 사용자 모드에서 커널 모드로 전환한다.

커널 모드 -> 사용자 모드

  • 시스템 콜의 요청을 받은 커널이 그 요청에 대한 일을 해서 결과값을 system call의 리턴 값으로 전해준 후 사용자 모드로 전환한다.

결론

profile
예비 개발자

0개의 댓글