컴퓨터의 프로세서는, 하드웨어/OS 를 보호하기 위해 Dual mode operation을 사용한다.
Dual mode = User mode, Kernel mode
① User mode - execution by user
② Kernel mode - execution by operating system
User mode / Kernel mode 는 보호된 Process register 에 저장되어있는 Status bit 에 따라 설정된다. User mode 에서 Kernel mode 로 이동하는 데는 크게 세가지 원인이 있다.
≫ Hardware Interrupt, Software Interrupt (exception), System call.
Software interrupt 내에서 System call 과 Exception 으로 나뉜다는 소리도 있다.
두 모드 간에 이동의 예시)
⇒ User mode - system call - system call handler - kernel mode
⇒ User mode - timer interrupt - scheduler - kernel mode
⇒ User mode - Device interrupt - Interrupt handler - kernel mode
예시와 같이, 인터럽트의 종류에 따라서 핸들링을 해주는 애들이 다르다.
* 여기서 Timer interrupt 는 CPU 가 시간을 자동으로 알 수 없기 때문에 일정시간마다 Interrupt 를 주는 PIT 라는 장치로부터 비롯된 것.
굳이 이렇게 두 모드로 나눠둔 것은, ① 하나의 잘못된 프로그램이 다른 프로그램에게 미치는 영향을 최소화하고, ② 여러가지 Application 에러로부터 시스템을 보호하기 위함이다.
+ 웬만한 OS들은 dual mode operation 을 사용하지만 하드웨어적으로 4개 모드까지 사용 가능하다. 중점적으로 공부한 kernel mode 가 level 0 로 가장 privileged level 이고, user mode 는 level3 로 가장 겉에 있는 레벨이다.
추가로 케이스 스터디로 알게된 두가지 모드를 더 정리해두겠다.
① Real mode (16bit Intel CPU 8086, 80286 에서 쓰임)
-
Real mode 에서는 이름처럼(?) 원초적인 기능 정도만 한다. x86 CPU 를 킬 때, starting mode 로서 사용된다. System BIOS, boot code 가 돌아가는 모드이다.
이 모드에서는 segmented memory 가 사용된다. segmented 라는 건, 조각조각 났다는 건데 이 모드에서는 하나의 segment 가 64KB 로 제약된다. (16비트 컴퓨터이고, 2^16=64KB 니까) 그 말인즉슨, 이 모드에서는 무슨 일을 할 때 64KB 앞까지밖에 못 본다는 뜻이다. 여기서 별로 할 수 있는 일이 없다는 것..
② Protected mode (32bit 80386 이상에서 쓰임)
-
반면 Protected mode 는 기능이 여러가지이다.
32bit memory address 를 가지며, memory protection, virtual memory paging, I/O protection, interrupt handling 등이 된다.
CR0 register 에 있는 PE bit 을 1로 set 함으로써 Protected mode 로 진입한다.
개인 공부 정리용으로 작성한 글입니다. 틀린 부분이 있을 수 있으니 참고용으로만 사용해주세요. 틀린 부분은 댓글로 알려주세요.♥
'컴퓨터 COMPUTER > Linux 리눅스' 카테고리의 다른 글
6. [Process State, Scheduling] : 프로세스의 상태와 스케쥴링 (0) | 2019.01.30 |
---|---|
5. [Processes] : 프로세스란 무엇인가 (0) | 2019.01.29 |
4. [Virtual Machine(VM)] : 가상머신이란 무엇인가 (0) | 2019.01.29 |
3. [System Call Handling] : 운영체제는 어떻게 시스템콜을 핸들링하는가. + System call vs. API (0) | 2019.01.29 |
2. [OS service, structure and design] : 운영체제의 역할, 구조, 디자인 (0) | 2019.01.29 |