context switch

컨텍스트 스위칭 비용 구조

PCB, 레지스터, 스케줄링 정보, 파일 정보, run queue, voluntary와 nonvoluntary 전환을 한 흐름으로 보면 오버헤드가 분명해집니다.

전환 순서
01상태 저장 02PCB 갱신 03큐 이동 04다음 선택 05상태 복원
PCB 내용

PID, 레지스터, 프로그램 카운터, 우선순위, 메모리 정보, 열린 파일 포인터가 실행 재개에 필요합니다.

직접 비용

커널 진입, 레지스터 저장과 복원, 스케줄러 실행 시간이 즉시 측정되는 비용입니다.

간접 비용

캐시와 TLB가 식으면 다음 프로세스가 같은 CPU를 잡아도 메모리 접근 비용이 늘어납니다.

지표 해석

vmstat의 cs, /proc의 voluntary_ctxt_switches 값을 부하와 함께 봐야 과도한 전환을 판단할 수 있습니다.