질문 173 · 실전 면접 답변
운영체제의 문맥 전환(Context Switch)은 무엇을 저장하고 왜 비용이 발생하나요?
이렇게 답해 보세요 (핵심 답변)
문맥 전환은 스케줄러가 CPU 실행 대상을 바꿀 때 현재 프로세스나 스레드의 레지스터와 프로그램 카운터(PC) 등 실행 상태를 저장하고 다음 대상의 상태를 복구하는 과정입니다. 특히 다른 프로세스로 전환할 때는 가상 주소 공간(페이지 테이블) 전환도 함께 수반됩니다. 이때 레지스터를 저장·복구하는 직접 비용뿐 아니라 CPU 캐시와 TLB에 올라와 있던 작업 집합이 바뀌어 캐시 미스가 늘어나는 간접 비용이 함께 발생합니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- 같은 프로세스 안의 스레드 전환은 주소 공간을 공유하지만 레지스터 교체와 캐시 영향이 있으므로 비용이 0인 것은 아닙니다.
- 단순히 시스템 호출로 사용자 모드에서 커널 모드로 진입했다가 원래 스레드로 돌아오는 것과, 다른 실행 대상으로 CPU를 넘기는 문맥 전환은 구분해야 합니다.
면접에서 자주 하는 실수
시스템 호출이 발생할 때마다 반드시 다른 프로세스로 문맥 전환이 일어난다고 설명하지 않도록 주의합니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 173번을 바탕으로 질문과 답변을 새로 정리했습니다.