※ 이 글을 작성하기 전에 본인은 이 분야의 전문성을 가진 전문가가 아님을 미리 밝힙니다. ※
#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명령에 대한 실행 가능
# 보안 / 자원관리 / 추상화 같은 역할.
'[ Operating System ] > # OS : 운영체제' 카테고리의 다른 글
#5 - 1) 교착상태 (Deadlock) (1) | 2021.05.11 |
---|---|
#4 - 2) 프로세스 동기화 (0) | 2021.05.10 |
#3 - 2) 스케줄링 기법 및 종류와 Aging(에이징) 기법 (0) | 2021.04.26 |
#3 - 1) 스케줄링(Scheduling)과 문맥교환(Context-Switching) (0) | 2021.04.26 |
#2 - 3) 멀티 프로세스와 멀티 쓰레드 (0) | 2020.12.10 |