이전에 여러 프로세스들을 아주 짧은 시간동안 교체하면서 실행하는 것을 컨텍스트 스위칭이라고 했다. 이제 Program Counter와 Stack Pointer의 동작에 주목하면서 과정을 훑어 본다.
다음과 같이 프로그램이 2개가 존재하고 각각 해당하는 프로세스를 Process A, Process B라고 할 때 CPU Context에는 PC, SP의 정보를 가지고 있다. Process A부터 실행을 진행하며 PC가 각 코드를 가리키면서 지나가고 SP도 알맞게 값이 변경된다.
그러다가 스케쥴러의 요청(명령)에 의해 컨텍스트 스위칭을 실시하게되고 이 때 다음과 같은 순서로 진행이 된다.
위의 순서에 따라서 Process B의 작업도 진행하다가 또 다시 컨텍스트 스위칭이 진행되고 동일한 절차로 실행이 된다.
위에서 언급한 PCB는 Process Control Block을 의미하며 Process Context Block이라고도 한다. 이 PCB에는 다양한 정보가 담겨있는데 주로 다음과 같은 정보들이 담긴다.
PCB의 정보를 저장하는 구조는 다음과 같다.