CS 기초 · 중급
컨텍스트 스위칭(Context Switching)이란 무엇이며, 어떤 비용이 발생하나요?
힌트 · 레지스터, 캐시, TLB 등의 상태 저장/복원을 생각해보세요.
CPU 레지스터PCB (Process Control Block)캐시 미스오버헤드상태 저장
모범답안
컨텍스트 스위칭은 CPU가 현재 실행 중인 프로세스(또는 스레드)의 상태를 저장하고, 다른 프로세스의 상태를 복원하여 CPU를 그 프로세스에게 넘겨주는 과정을 말합니다. 쉽게 말해, CPU가 하던 일을 잠시 멈추고 다른 일을 시작하기 위해 준비하는 과정이죠.
이 과정에서 발생하는 비용은 크게 두 가지입니다. 첫째, 현재 프로세스의 CPU 레지스터 값, 프로그램 카운터, 스택 포인터 등의 정보를 PCB(Process Control Block)라는 곳에 저장하고, 다음 프로세스의 PCB로부터 이 정보들을 다시 읽어오는 오버헤드가 발생합니다. 둘째, 컨텍스트 스위칭 이후에는 캐시 메모리나 TLB(Translation Lookaside Buffer)에 저장된 정보가 유효하지 않게 되어 캐시 미스율이 증가하고, 이는 성능 저하로 이어질 수 있습니다. 따라서 컨텍스트 스위칭은 빈번하게 발생할 경우 시스템 성능에 부담을 줄 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.