Context Switching이란
- Context Switch란, 프로세서가 한 개의 task(process / thread)를 실행하고 있는 상태에서 interrupt 요청에 의해 다른 task로 실행이 전환되는 과정에서 기존의 task 상태 및 Register 값들에 대한 정보(context)를 저장하고, 새로운 task의 정보(context)로 교체하는 작업을 말함
Context Switching 과정
- Interrupt등에 의해 Context Switching 요구
- CPU 사용 할당 시간을 모두 소모하거나, 입출력을 위해 대기하는 경우 등에 발생
- User Mode에서 Kernel Model로 변경
- 기존 프로세스의 현재 context를 PCB에 저장
- 다음에 실행할 프로세스의 상태를 PCB에서 복구한 후 실행
- Kernel Mode에서 User Mode로 변경
PCB란
- 프로세스를 관리하는데 있어 필요한 정보(메타 데이터)를 담고있는 운영체제 커널의 자료구조.
- 프로세스가 생성될 때마다 고유의 PCB가 생성되며, 프로세스가 완료되면 PCB는 제거됨
- Process ID, Process State(ready, running, ..), Program Counter(다음 instruction), Register 값, Pointer 등의 정보가 포함되어 있음