Context Switching은 CPU가 현재 작업의 실행 상태를 저장하고 다른 작업의 상태를 복원해 실행 대상을 바꾸는 과정입니다. 프로세스 사이뿐 아니라 같은 프로세스의 스레드 사이에서도 발생합니다.

비용은 크게 두 가지입니다.

  • 직접 비용: 레지스터·프로그램 카운터·스택 포인터 저장과 복원, 스케줄러 실행 등의 작업이 필요합니다.
  • 간접 비용: 실행 대상이 바뀌면서 CPU 캐시 적중률이 떨어질 수 있고, 주소 공간이 달라지면 주소 변환 캐시인 TLB의 재활용에도 영향을 줍니다.

같은 프로세스의 스레드끼리는 주소 공간을 바꾸지 않아 대체로 비용이 작습니다. 다만 컨텍스트 스위칭이 잦으면 실제 작업에 쓸 CPU 시간이 줄어듭니다.

출처 및 참고자료