-
어떤 작업의 실행 컨텍스트에는 현재 실행 중인 코드(인터럭션 가리키는 포인트)와 CPU 코어에서 이를 실행하기 위한 모든 것(CPU Flag value, Key Register, variable, 열린파일, 연결 등)이 포함
-
컨텍스트 스위칭
- 작업을 재실행시 위 정보로인한 문제 없도록 데이터 챙져 저장하고 교체하는 물리적 행위
-
멀티 태스킹 할 수 있게하는 핵심 매커니즘
-
context switching
-
PCB를 교환하는 과정
-
PCB 기반으로 프로세스 상태를 저장하고 다시 복원하는 기능
- 스레드 또한 이대로 설명이 가능함
-
프로세스 종료 or 인터럽트 의해 발생
-
프로세스 컨텍스트 스위칭의 경우는
- 가상 메모리 주소 관련 처리 추가로 수행
비용
- 유후시간 발생
- 컨텍스트 스위칭 마다 유후 시간 생겨 CPU 가용성이 떨어짐
- 캐시 미스
- 프로세스가 가지고 있는 메모리 주소가 그대로 있으면 잘못된 주소 변환이 생기니 캐시 클리어 과정이 무조건 일어나고 이 때문에 캐시 미스 발생
- 오버헤드
- CPU는 중단된 작업 상태(레지스터, PC, 메모리매핑 등) 저장하고, 새 작업 상태 로드.
스레드의 경우 스택 영역 제외한 모든 메모리 공유하기에 비용이 더 적고 시간이 적게 걸림