interrupt
, context
, PCB
, multi processing
, overhead
Context Switching은 CPU가 interrupt 요청에 의해 다음 우선 순위의 process가 실행되어야 할 때, 기존의 process 상태인 context를 해당 process의 PCB에 저장하고, 새로운 process의 context로 교체하는 작업을 말합니다.
multi processing을 위해 context switching은 필수적이고, 이를 통해 2개 이상의 process를 동시에 실행할 수 있게 됩니다. PCB에 저장된 context를 통해, CPU가 추후 해당 process가 하던 일을 이어서 할 수 있게 됩니다.
추가로, context switching 동안에는 CPU가 작업을 할 수 없고, 이는 overhead로 작용하기 때문에, 잦은 context switching은 성능에 좋지 않습니다. 이 overhead는 process의 레지스터 수, 데이터의 종류 등에 영향을 받기 때문에, 성능 개선이 필요하다면 context의 data 양을 줄여야 합니다.
Context Switching은 interrupt에 의해 발생한다.
thread는 process와 다르게 thread 간에 공유하는 영역이 많기 때문에, thread의 context switching이 process의 context switching보다 빠르다.
thread는 각 thread간에 공유하는 데이터가 있기 때문에, cache 데이터가 유효하다. 그래서 cache 적중을 통해 더 빠른 context switching이 가능하다.
멀티 프로세스(Multi process), Context 와 Context Switching
'시분할 시스템에서 짧은 간격으로 여러 프로세스를 전환'과 context switching은 같은 의미일까요?