About me
home
Portfolio
home
⚔️

Context Switching

날짜
2023/07/19
태그
이론
운영체제

컨텍스트 스위칭(Context Switching)

CPU/코어에서 실행 중이던 프로세스/스레드가 다른 프로세스/스레드로 교체되는 것. 주로 운영체제의 스케줄러에 의해 제어된다.
프로세스 컨텍스트 스위칭 (Process Context Switching)
한 프로세스에서 다른 프로세스로 전환할 때 발생한다.
운영체제는 현재 실행 중인 프로세스의 상태를 프로세스의 PCB(Process Control Block)에 저장하고, 새로 실행할 프로세스의 PCB에서 상태를 불러온다.
프로세스 컨텍스트 스위칭은 상대적으로 많은 시간과 자원을 소모(오버헤드 발생)하며, 이는 각 프로세스가 독립적인 메모리 공간을 가지고 있기 때문이다.
스레드 컨텍스트 스위칭 (Thread Context Switching)
같은 프로세스 내의 서로 다른 스레드 사이에서 발생한다.
스레드 컨텍스트 스위칭은 프로세스 컨텍스트 스위칭에 비해 비용이 적게 든다. 스레드들이 프로세스의 메모리 공간을 공유하여, 메모리의 상태를 바꿀 필요가 없기 때문이다. 단지 CPU 레지스터의 값과 스택 포인터 등을 바꾸는 작업이 필요하다. 따라서 상대적으로 프로세스 컨텍스트 스위칭보다 오버헤드가 훨씬 낮다.

Next → CPU bound, I/O bound