Learning
토픽 18 / 85·CPU 스케줄링

컨텍스트 스위칭 (Context Switching)

컨텍스트 스위칭 (Context Switching)

CPU가 현재 실행 중인 프로세스/스레드를 중단하고 다른 프로세스/스레드로 전환하는 과정으로, PCB/TCB에 상태를 저장하고 새 프로세스의 상태를 복원

목적: 멀티태스킹, CPU 공유, 시분할, 응답성

특징: 오버헤드, 상태 저장·복원, 커널 개입, 자주 발생

과정

발생 시점: 시간 할당량 만료(타이머 인터럽트), I/O 요청, 우선순위 높은 프로세스 도착, fork/exit

오버헤드: 수 마이크로초(μs), 레지스터 저장·복원, 메모리 매핑 변경, TLB 플러시, 캐시 미스

최적화: 스레드 사용(공유 메모리), 시간 할당량 조정, 코어별 스케줄링(SMP)

시간 구성: 직접 비용(저장·복원) + 간접 비용(캐시/TLB 미스)

장점: 멀티태스킹, CPU 공유, 응답성

단점: 성능 오버헤드, 캐시/TLB 미스, 빈번하면 Thrashing

적용사례: 모든 멀티태스킹 OS, 시분할 시스템, 선점형 스케줄링

비교: 프로세스 컨텍스트 스위칭(무거움/메모리 맵 변경) vs 스레드(가벼움/공유 메모리)

연관: 스케줄링, PCB, TCB, 인터럽트, TLB