Privilege Mode
Processor는 다른 privilege mode를 제공한다.
- Intel architecture : 4개의 privilege mode 제공
- ARM architecture : 8개의 privilege mode 제공
Execution Mode
Privilege mode는 크게 2개로 구분할 수 있다.
- user mode
- 응용프로그램의 code가 동작한다.
- non-privileged instruction이나 register만 사용한다.
- system call이나 interrupt에 의해 kernel mode로 전환된다.
- kernel mode
- kernel code가 동작한다.
- privileged instruction이나 register만 사용한다.
User Mode → Kernel Mode
- system call
- vector table로 jump해서 system call이나 exception을 수행한다.
- handler code는 OS의 일부이다.
- interrupt
- CPU 외부의 I/O device에서 interrupt가 발생한 경우이다.
- exception
- CPU 내부에서 발생한 경우이다.
- synchronous event에 해당한다. (코드를 실행하다가 발생)
- 주소 오류, overflow, instruction exception 등
Context
현재 system이 누구를 위해서 동작하는가를 context라고 한다.
context를 바꾸는 것을 context switching이라고 한다.
- process context : 현재 system이 process를 위해서 동작한다.
- system context : 현재 system이 특정 process를 위해서가 아닌 공동의 목적을 위해서 동작한다.
Execution Mode and Context
Memory Space
메모리 영역은 2가지 공간으로 나뉜다.
각각의 space에는 code(instruction)와 data가 존재한다.
- User space
- 응용프로그램의 code에서 사용하는 영역
- (대부분의 경우) user mode에서 사용하는 영역
- Kernel space
- kernel code에서 사용하는 영역
- kernel mode에서 사용하는 영역
User mode에서 kernel mode로 전환된다는 것은 user space의 code에서 kernel space의 code를 실행시키는 것이다.
Vector table은 kernel space의 code에 저장되어 있다.
System Call을 통한 Mode Switching
SWI instruction을 통해서 user mode → kernel mode, user space → kernel space로 바뀐다.
- SWI가 호출되면 user mode에서 kernel mode로 전환된다.
- vector table 영역으로 jump한다.
System Call vs. Function Call
- system call
- implementation들은 kernel space에 저장되어 있다.
- kernel mode에서 실행된다.
- special exception(SWI 등)를 통해서 kernel mode로 전환한다.
- caller와 callee가 다른 space에 존재한다.
- function call
- caller와 callee가 모두 같은 process, user space 안에 존재한다.
- user mode에서 실행된다.
'Computer Science > Operating System' 카테고리의 다른 글
Process Scheduling (Context Switching) (0) | 2021.06.16 |
---|---|
Process, PCB(Process Control Block) (0) | 2021.06.16 |
Interrupt, I/O Device (0) | 2021.04.05 |
컴퓨터 구조와 프로그램 실행 (0) | 2021.04.03 |
Fundamental Concepts of OS (0) | 2021.03.24 |
댓글