컨텍스트 스위칭 ( Context Switching ) 이란?

 

  • 컨텍스트 스위칭은 현재 수행중인 쓰레드의 레지지스터 상태를 TCB에 있는 레지스터 데이터 블럭에 백업하고 스케줄러에 의해서 퀀텀 타임을 할당받은 쓰레드의 레지스터 상태 값을 CPU 코어에 업로드하는 일련의 과정을 말합니다.

 

  • 컨텍스트 스위칭은 최대한 적게 발생되는 것이 좋습니다. 유저 모드에서 커널 모드로 전환되고 레지스터 상태 값을 백업하고 다시 업로드 하는 과정으로 인해 오버헤드가 발생되어 성능 하락의 원인이 되기 때문입니다.




컨테스트 스위칭의 종류

  • 컨텍스트 스위칭의 종류로는 쓰레드 컨텍스트 스위칭프로세스 컨텍스트 스위칭이 있습니다.




쓰레드 컨텍스트 스위칭 ( Thread Context Switching ) 이란?

  • 동일한 프로세스 내부에 있는 쓰레드간의 컨텍스트 스위칭 ( Context Switching ) 을 의미합니다.




프로세스 컨텍스트 스위칭 ( Process Context Switching ) 이란?

  • 서로 다른 프로세스 내부에 있는 쓰레드간의 컨텍스트 스위칭 ( Context Switching ) 을 의미합니다.




쓰레드 컨텍스트 스위칭 vs 프로세스 컨텍스트 스위칭 성능 차이

  • 프로세스마다 독립적인 주소 공간을 사용하기 때문에 다른 프로세스에 있는 쓰레드 간의 컨텍스트 스위칭이 발생될 경우 그전에 수행하던 쓰레드가 캐시TLB ( Translation Lookaside Buffer ) 에 적재하였던 데이터는 사용하지 못하기 때문에 캐시 hit율TLB ( Translation Lookaside Buffer ) hit율이 떨어져 프로세스 컨텍스트 스위칭보다는 쓰레드 컨텍스트 스위칭이 오버헤드가 상대적으로 적습니다.

 

 

+ Recent posts