• 어떤 작업의 실행 컨텍스트에는 현재 실행 중인 코드(인터럭션 가리키는 포인트)와 CPU 코어에서 이를 실행하기 위한 모든 것(CPU Flag value, Key Register, variable, 열린파일, 연결 등)이 포함

  • 컨텍스트 스위칭

    • 작업을 재실행시 위 정보로인한 문제 없도록 데이터 챙져 저장하고 교체하는 물리적 행위
  • 멀티 태스킹 할 수 있게하는 핵심 매커니즘

  • context switching

  • PCB를 교환하는 과정

  • PCB 기반으로 프로세스 상태를 저장하고 다시 복원하는 기능

    • 스레드 또한 이대로 설명이 가능함
  • 프로세스 종료 or 인터럽트 의해 발생

  • 프로세스 컨텍스트 스위칭의 경우는

    • 가상 메모리 주소 관련 처리 추가로 수행

비용

  • 유후시간 발생
    • 컨텍스트 스위칭 마다 유후 시간 생겨 CPU 가용성이 떨어짐
  • 캐시 미스
    • 프로세스가 가지고 있는 메모리 주소가 그대로 있으면 잘못된 주소 변환이 생기니 캐시 클리어 과정이 무조건 일어나고 이 때문에 캐시 미스 발생
  • 오버헤드
    • CPU는 중단된 작업 상태(레지스터, PC, 메모리매핑 등) 저장하고, 새 작업 상태 로드.

스레드의 경우 스택 영역 제외한 모든 메모리 공유하기에 비용이 더 적고 시간이 적게 걸림