커널 모드 / 사용자 모드

0andme·2021년 7월 29일
0

운영체제

목록 보기
4/6

◼ 사용자 영역과 커널 영역

  • 커널 영역
    커널이 작업하는 영역으로 CPU 작업 스케줄이나 하드웨어를 제어하는 디바이스 드라이버와 메모리를 관리하는 기능 등을 수행한다.
  • 사용자 영역
    사용자 영역은 일반 프로그램이 실행되는 영역이다. 커널이 작업해야하는 일을 요청하기 위해서는 시스템콜을 사용해야한다.

◼ 사용자 모드와 커널 모드

각각의 영역에서의 모드가 존재하며 커널모드사용자모드가 존재한다. 각각의 영역, 모드를 둔 이유는 운영체제의 핵심기능이 전부 들어있는 커널을 보호하기 위해서이다.

◻ 커널 모드 kernel mode

특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근을 가능케 하는 모드

  • 커널 영역의 운영체제 os가 사용하는 모드
  • 커널 모드에서만 실행 가능한 기능들이 있다.
  • 시스템 콜은 커널 모드로 실행한다.

◻ 사용자 모드 user mode

사용자 영역의 응용프로그램이 사용하는 모드

  • 사용자 영역의 응용프로그램이 커널 영역의 기능을 사용하려면 시스템 콜을 사용해야한다.

◼ 예제

파일을 열기도 하고 연산을 수행하기도 하는 응용프로그램을 실행한다고 가정해보자.

  1. 파일을 여는 함수 open()함수를 실행하게 되면 이는 메모리에 접근하는 일이므로 시스템 콜을 실행하게 되고 현재 모드를 커널모드로 전환하게 된다.
  2. 운영체제는 파일에 접근하기 위해 본인의 함수인 sys_open()함수를 실행하고 실행 결과를 응용프로그램에 반환해주고 사용자모드로 다시 전환한다.
  3. 응용프로그램은 해당 함수 이후의 코드를 계속해서 실행한다.

◼ 요약

  • 커널모드와 사용자 모드로 구분하는 이유는 커널영역을 보호하기 위해서이다.
  • CPU는 커널 모드와 사용자 모드를 왔다갔다하며 작업을 수행하게 해준다.
  • 커널 영역의 기능을 사용하기 위해서는 시스템 콜을 이용해야한다.
  • 시스템 콜은 커널 모드에서 진행된다.

profile
개발이 하고 싶어? 정말 하고 싶긴 한거야?

0개의 댓글