※ 이 글을 작성하기 전에 본인은 이 분야의 전문성을 가진 전문가가 아님을 미리 밝힙니다. ※

 

#1) User Mode & Kernel Mode

운영체제에서는 사용자 인터페이스에 대한 편리성과 안정성을 위해서 CPU를 크게 User-Mode와 Kernel-Mode 2가지 모드로 특정 역할들을 수행하게 된다. 지금부터는 User-Mode와 Kernel Mode에 대해서 구체적으로 알아보도록 하자.

 

#1 - 1) User - Mode

UserMode라는 것은 사용자가 응용프로그램들을 사용하기 위해 접근하는 영역이 User Mode이다.

즉 ! 사용자가 프로그램을 사용할 때, 접근할 수 있는 영역에 제한을 두고, 프로그램 내부에 있는 자원들에게는 함부로 접근할 수 없도록 하는 Mode를 의미한다. 보통 우리는 UserMode에서 Process를 실행할 수도 있고, Code를 작성하는 등과 같은 행위를 할 수 있다.

 

#1 - 2) Kernel - Mode

KernelMode라는 것은 모든 System Memory와 모든 명령어들에 접근이 가능한 실행모드를 말한다.

즉, OS(운영체제)의 핵심 부분이라고 말할 수 있다. Kernel에서는 CPU Scheduling(CPU 스케쥴링),

Memory Management(메모리 관리), IO Management(입출력 관리), File System Management(파일 시스템 관리)

등의 일을 한다.

 

#2) User Mode 와 Kernel Mode의 관계

Process는 UserMode에서 실행되다가 Interrupt(장애 및 에러)에 걸리게 되거나, Kernel에게 특별한 요구사항이 필요할 때, System-Call을 이용해서 Kernel Mode를 호출할 수 있다. 호출을 하게 되면, Kernel Mode에서는 사용자의 요구사항 혹은 Interrupt에 대해서 해결해주고 다시 UserMode에게 return 해주는 방식이다.

 

# [ User Mode ]
# User Application이 실행되는 Mode
# System Data 및 Memory에 제한된 접근
# System Call을 통해 Kernel Mode로 전환 가능
# [ Kernel Mode ]
# OS(운영체제)가 실행될 때의 Mode
# 모든 내부 System Data 및 Memory에 접근 가능
# 모든 CPU명령에 대한 실행 가능
# 보안 / 자원관리 / 추상화 같은 역할.

 

 

 

 

+ Recent posts