
CPU에서 작업 중인 프로세스를 Waiting 상태로 돌려 멈추게 하고 다른 프로세스를 Running 상태로 만들어 수행시키는 작업이에요. 즉, CPU에 실행할 프로세스 정보를 교체하는 기술이에요. 이 작업은 캐시 초기화 등 큰 작업이 있어서 자주 발생하면 오버헤드Overhead가 발생해요.

실행 중인 프로세스가 여럿있다고 가정하면 실행할 프로세스의 PCB에서 프로그램 계수기PC와 스택 포인터SP를 CPU 레지스터에 등록해서 프로세스를 실행해요. 그리고 인터럽트로 인해 문맥 교환이 발생하면 해당 프로세스의 PC와 SP를 PCB에 저장하고 Waiting 상태로 들어가죠. 그 다음에 수행할 프로세스의 PC와 SP를 CPU 레지스터에 적재시켜서 다음 프로세스를 수행해요.
PC와 SP에 대한 개념은 프로세스 구조에 설명되고 있으니 참고해주세요.
무튼, 이를 정리하면 아래와 같아요.

PCB에 업데이트 PCB 정보를 CPU 레지스터에 넣고 실행 Dispatch : Ready 상태를 Running 상태로 바꾸는 것Context Switching도 일종의 코드에요.10 ms의 수행 시간을 가져요. 그만큼 작업이 많을 수록 오버헤드Overhead가 잦아져요.Trade-off가 발생해요.문맥 교환에 대한 정리는 여기까지에요.