모든 프로세스는 실행을 위해 CPU를 필요로 하지만, CPU 자원은 한정되어 있습니다. 프로세스들은 차례대로 돌아가며 한정된 시간 만큼만 CPU를 이용해야 합니다. 자신의 차례가 되면 정해진 시간만큼 CPU를 이용하고, 시간이 끝났음을 알리는 인터럽트가 발생하면 자신의 차례를 양보하고 다음 차례가 올 때까지 기다려야 합니다.
운영체제는 프로세스 제어 블록(PCB: Process Control Block)을 이용하여, 빠르게 번갈아 수행되는 프로세스의 실행 순서를 관리하고, 프로세스에 CPU를 비롯한 자원을 배분합니다. PCB는 프로세스와 관련된 정보를 저장하는 자료구조입니다. PCB는 해당 프로세스를 식별하기 위해 꼭 필요한 정보들이 저장됩니다.
메모리는 커널 영역과 사용자 영역으로 나누어져 있습니다. PCB는 커널 영역에 생성됩니다. 옷가게 점원이 수많은 옷들 사이에서 태그로 특정 옷을 식별하고 해당 옷과 관련된 정보를 판단하는 것처럼, 운영체제도 수많은 프로세스들 사이에서 PCB로 특정 프로세스를 식별하고 해당 프로세스를 처리하는데 필요한 정보를 판단합니다.

운영체제는 PCB에 저장된 프로세스 메타데이터(Process Metadata)를 보고 프로세스를 관리합니다.
하나의 프로세스에서 다른 프로세스로 실행 순서가 넘어가려면, 중간 정보를 백업해야 합니다. 그래야만 다음 차례가 왔을 때, 이전까지 실행했던 내용에 이어 다시 실행을 재개할 수 있습니다. 하나의 프로세스 수행을 재개하기 위해 기억해야 할 중간 정보를 문맥(Context)이라고 합니다. 하나의 프로세스 문맥은 해당 프로세스의 PCB에 표현되어 있습니다. PCB에 기록하는 정보들을 문맥이라고 봐도 무방합니다.
기존 프로세스의 문맥을 PCB에 백업하고, 새로운 프로세스를 실행하기 위해 문맥을 PCB로부터 복구하여 새로운 프로세스를 실행하는 것을 문맥 교환(Context Switching)이라고 합니다. 문맥 교환이 자주 발생하면 프로세스가 빠르게 번갈아 가며 실행되지만, 너무 자주 발생하면 오버헤드가 발생할 수 있습니다.

[Operating System] PCB(Process Control Block)
Process Management & Process Metadata
문맥 교환 (Context Switching)
혼자 공부하는 컴퓨터구조+운영체제