Java

Context Switching이란?

Wanderer Kim 2025. 5. 16. 19:33
반응형

Context Switchig의 의미

context switching이란 CPU가 현재 실행 중인 process또는 thread읭 상태를 저장하고, 다음에 실행할 프로세스의 상태를 복원하는 작업을 의미한다.

 

Context란?

context switching에서 context가 의미하는 것은 CPU가 어떤 작업을 수행 중인지 나타내는 정보 집합으로 다음을 포함한다.

  • 레지스터 값들
  • program counter
  • stack pointer
  • CPU 상태
  • 메모리 맵 정보

Context switching 과정(process 기준)

  1. 현재 실행 중인 프로세스의 상태 저장
  2. 다음에 실행할 프로세스 선택: 스케줄러가 CPU 할당 대상 프로세스를 선택
  3. 선택된 process의 상태 복원
  4. CPU 제어권을 넘김

thread간 context switching은 같은 프로세스 내의 스택과 레지스터만 바꾸면 되므로 process간 context switching에 드는 비용보다 적다. 하지만 thread간 context switching 과정에는 약간이지만 비용이 발생하게 되고 매우 많은 thread를 사용한다면 이 비용은 매우 커질 것이다. 그래서 부하 테스트를 통해 최적의 thread 갯수를 찾아서 사용해야 한다.

728x90