출처 쉬운코드 : https://www.youtube.com/watch?v=Xh9Nt7y07FE
CPU/코어에서 실행중이던 프로세스나 스레드가 다른 프로세스나 스레드로 교체되는 것
컨텍스트 스위칭은 OS커널이 실행한다.
컨텍스트란 프로세스/스레드의 상태를 말함
컨텍스트 스위칭이 필요한이유 : 여러 프로세스와 스레드를 동시에 실행시키기 위해
컨텍스트 스위칭이 발생하는 시점 :
주어진 타임 슬라이스를 다 사용했거나
IO작업을 해야하거나
다른 리소스를 기다려야하거나 등등의 이유
컨텍스트 스위칭의 과정
커널모드로 통제권이 넘어감
CPU의 레지스트 상태를 교체 프로세스끼리의 교체시 다시 원래 하던 프로세스를 실행하기위해 레지스터의 상태를 PCB에 저장
스레드끼리의 컨텍스트 스위칭은 메모리를 공유하기 때문에 메모리처리가 필요없지만 프로세스간 컨텍스트스위칭은 가상메모리 관련 처리를 추가로 해야함 MMU를 교체해야하고 TLB도 비워줘야 함
스레드간의 컨텍스트스위칭 그림

프로세스 간의 컨텍스트 스위칭 그림

스레드 컨텍스트스위칭이 더 빠르면 메모리 주소 관련 처리를 하지 않아도 되는 이유
컨텍스트 스위칭이 미치는 간접적인 영향
캐시메모리 오염 캐시 미스가 일어나 메모리까지가야하고 성능의 저하가 일어남
스레드의 컨텍스트스위칭도 일어나지만 프로세스간 컨텍스트 스위칭이 훨씬 큼
스레드간의 교체는 같은 프로세스를 써서 다음 스레드에서도 재 사용될 가능성이 존재하지만
프로세스간 교체는 전혀 다른 주소 공간임
'운영체제 > 동시성' 카테고리의 다른 글
| 블로킹, 논블로킹, 동기, 비동기 (0) | 2026.03.06 |
|---|---|
| 데드락 (0) | 2025.12.15 |