Context Switching (문맥전환)
메인 메모리에 프로세스가 여러 개 있을 때 CPU가 할당하는 프로세스를 전환 하는 것
- Scheduler : 실행 준비가 되어 있는 메모리 내의 프로세스 중에서 선택하여, 이들 중 하나에게 CPU를 할당한다.
- Dispatcher : CPU 코어의 제어를 CPU 스케줄러가 선택한 프로세스에 주는 모듈이며 다음과 같은 작업을 포함한다.
- 한 프로세스에서 다른 프로세스로 문맥을 교환하는 일
- 사용자 모드로 전환하는 일
- 프로그램을 다시 시작하기 위해 사용자 프로그램의 적절한 위치로 이동(jump)하는 일
Context Switching의 과정
- 실행 중이던 프로세스의 상태(문맥)를 PCB에 보관
- 새로운 프로세스의 PCB에서 문맥(Context)을 복원해 레지스터에 적재
- 새로운 프로세스 실행
PCB에서 정보를 저장하고 가져오는 과정에서 CPU는 아무것도 할 수가 없음 → 따라서 많은 Context Switching이 일어나면 Overhead가 발생함