스케줄러가 실행 중인 프로세스에서 CPU를 해제하고 실행 가능 상태의 프로세스에 CPU를 할당할 때, 실행 중인 프로세스의 CPU 상태 정보를 그 프로세스의 PCB에 저장하고 곧 실행될 프로세스의 PCB에서 이전 CPU 상태 정보를 CPU로 가져오는 것을 컨텍스트 스위칭(context switching)이라고 합니다. CPU 상태를 컨텍스트라고 부르는데 말 그대로 현재 CPU의 레지스터 값들을 ‘전환(switching)’하는 것입니다.
그림 10-5 컨텍스트 스위칭
그림 10-5의 오른쪽 부분을 보면 컨텍스트 스위칭이 일어나면서 실행 중이던(CPU를 점유하던) 프로세스 A의 CPU 상태 정보를 프로세스 A의 PCB에 저장합니다. 여기서 CPU의 상태 정보란 다음에 CPU를 점유하면 실행할 다음 인스트럭션의 위치(프로그램 카운터 정보), 현재 쌓인 스택 프레임의 정보(스택 포인터와 프레임 포인터의 정보), 현재 연산 중인 데이터가 저장된 레지스터 값(범용 레지스터 정보) 등을 말합니다.