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
가 발생해요.문맥 교환에 대한 정리는 여기까지에요.