PCB
- PCB(Process Controll Block)란, 프로세스에 대한 메타데이터를 저장한 데이터를 뜻한다. 프로세스가 생성되면 운영체제는 해당 PCB 를 생성한다.
- PCB에는 프로세스의 중요한 정보를 포함하고 있기 때문에 일반 사용자가 접근하지 못하도록 커널 스택의 가장 앞부분에서 관리된다.
PCB 구조
- 프로세스 스케쥴링 상태
- 프로세스 ID
- 프로세스 권한
- 프로그램 카운터
- CPU 레지스터
- CPU 스케쥴링 정보
- 계정정보
컨텍스트 스위칭
- 컨텍스트 스위칭은 PCB를 교환하는 과정을 말한다.
- CPU는 한번에 하나의 작업만 할 수 있기 때문에 여러 프로세스를 처리해야 하는 상황에서 현재 진행중인 프로세스의 상태를 PCB에 저장하고 다른 프로세스에게 CPU를 할당해 작업을 수행하는 과정이다.

컨텍스트 스위칭 비용
- 실행중인 프로세스를 종료, PCB에 저장하고, 다음 작업할 프로세스의 PCB를 로드하고 실행하는 과정에서 유휴시간(idle time)이 발생한다.
- 캐시미스: 컨텍스트 스위칭 시 프로세스가 가지고 있는 메모리 주소가 그대로 있으면 잘못된 주소 변환이 생기기 때문에 캐시클리어 과정을 겪게되고, 이때문에 캐시미스가 발생한다.
스레드에서의 컨텍스트 스위칭
컨텍스트 스위칭은 스레드에서도 일어난다. 스레드는 스택 영역을 제외한 모든 메모리 공유하기 때문에 상대적으로 비용이 적고 시간도 적다.