Context Switch

CPU가 현재 실행 중인 프로세스(또는 스레드)를 중단하고 다른 프로세스로 전환할 때, 현재 상태를 저장하고 새 프로세스의 상태를 복원하는 과정입니다.

동작 과정

1. 현재 프로세스(P1) 실행 중
2. 인터럽트 or 스케줄러 개입
3. P1의 상태를 PCB에 저장
4. P2의 상태를 PCB에서 복원
5. P2 실행 시작

PCB (Process Control Block)

저장되는 정보:
- PC (Program Counter): 다음 실행할 명령어 주소
- 레지스터 값
- 프로세스 상태
- 메모리 정보
- 열린 파일 목록

발생 시점

시점설명
Time Quantum 만료Round Robin에서 시간 초과
I/O 요청프로세스가 I/O 대기 상태로 전환
인터럽트 발생하드웨어 인터럽트 처리
우선순위 선점더 높은 우선순위 프로세스 도착

비용 (오버헤드)

Context Switch 자체는 유용한 작업을 하지 않음
→ 순수한 오버헤드

비용 요소:
- PCB 저장/복원 시간
- 캐시 무효화 (새 프로세스의 데이터로 교체 필요)
- TLB 플러시 (메모리 주소 변환 캐시 초기화)

프로세스 vs 스레드 Context Switch

프로세스스레드
메모리 공간전환 필요 (독립적)공유 (전환 불필요)
비용높음낮음
캐시 초기화필요불필요

최소화 방법

- Time Quantum을 너무 작게 설정하지 않기
- 스레드 활용 (프로세스보다 비용 낮음)
- 코어 수 늘리기 (전환 빈도 감소)

Context Switch는 멀티태스킹의 핵심 메커니즘이지만 순수한 오버헤드이므로, 스케줄링 설계 시 전환 빈도와 응답성 사이의 트레이드오프를 고려해야 합니다.

CSLOG에서 보기