문맥 교환은 현재 실행 흐름의 상태를 저장하고 다른 흐름의 상태를 복구하여 CPU 실행 대상을 바꾸는 과정이다.
원리
운영체제는 레지스터와 실행 위치 등 재개에 필요한 정보를 관리한다. 타이머나 대기 사건 등의 계기로 실행 제어권을 얻고 스케줄링 정책에 따라 전환할 수 있다.
예시
한 프로세스가 입출력을 기다리면 그 상태를 보관하고 준비된 다른 프로세스를 실행한다. 나중에 원래 프로세스는 중단 지점의 상태로 돌아온다.
Docker 구성 요소 |
|---|
Docker · Docker 이미지 · Docker 컨테이너 · Dockerfile · Docker 볼륨 |
Docker 바인드 마운트 · Docker 네트워크 · Docker Compose · Docker 다단계 빌드 · Docker 빌드 캐시 |
주의할 점
모든 커널 진입이 다른 프로세스로의 전환을 뜻하지는 않는다. 상태 저장 비용 외에도 캐시와 주소 변환에 간접 비용이 생길 수 있어 과도한 전환은 성능을 떨어뜨린다.