문맥 교환이란?
<aside> 💡 문맥 교환이란? →
프로세스의 상태 정보를 교환하는 작업
</aside>
하나의 프로세스가 CPU를 사용 중인 상태에서, 다른 프로세스가 CPU를 사용하도록 하기 위해서이다.
이전의 프로세스의 상태를 PCB(프로세스 제어 블록)에 보관하고, 또 다른 프로세스의 정보를 PCB에서 읽어 레지스터에 적재한다.
문맥 교환은 멀티태스킹이 가능하도록 해준다.
하나의 CPU에서 여러 개의 프로세스가 동시에 수행되는 것처럼 보이는 이유 → 문맥 교환이 빠르게 일어나고 있기 때문!
문맥 교환 중에는 다른 작업을 할 수 없기 때문에 이 시간을 오버헤드라고 할 수 있다!
해결방안
문맥 교환이 자주 발생하지 않도록 다중 프로그래밍의 정도를 낮춘다.
스택 중심의 장비에서는 Stack 포인터 레지스터를 변경하여 프로세스 간 문맥 교환을 수행한다.
스레드를 이용하여 문맥 교환 부하를 최소화한다.
문맥 교환이 일어나는 시점
멀티 태스킹
인터럽트 처리
사용자 및 커널 모드 전환