cpuscheduler

context switching을 설명해 주세요

예상 시간
6
30초 답변

꼬리질문

조금 더 깊게 물어본다면

답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.

Context switch 시 실제로 무엇이 저장되고 복원되나요?

부가 설명

음악을 재생하면서 브라우저를 쓰고, 동시에 editor가 동작하는 상황을 생각할 수 있습니다. CPU는 여러 작업을 아주 빠르게 번갈아 실행하고, 운영체제 scheduler가 어떤 작업을 얼마나 실행할지 결정합니다.

전환이 너무 잦으면 실제 작업보다 전환 비용이 커질 수 있습니다.

context switching은 concurrency를 가능하게 하지만 공짜가 아닙니다. 그래서 thread를 많이 만들면 항상 빨라지는 것이 아닙니다. CPU-bound 작업에서는 core 수보다 훨씬 많은 thread가 오히려 scheduling overhead를 만들 수 있습니다.

한 줄 정리

context switching은 CPU가 실행 대상을 바꾸기 위해 현재 상태를 저장하고 다음 상태를 복원하는 과정입니다.