*Process의 Context란 프로그램 카운터(PC), CPU 레지스터들의 값, 메모리 관리 상태 등을 포함한프로세스의 상태를 뜻한다.

*오버헤드: 문맥교환에 필요한 시간, 메모리

Untitled

  1. P0를 실행 중 interrupt가 발생하거나 system call이 발생하면 P0의 상태를 PCB0에 저장한다.
  2. PCB1에 저장된 P1의 상태를 불러와 복구한다.
  3. P1를 실행한다.
  4. 이때 다시 interrupt가 발생하거나 system call이 발생하면 P1의 상태를 PCB1에 저장한다.
  5. PCB0에 저장된 P0의 상태를 불러와 복구한다.
  6. P0를 실행한다.

context switching이 아닌경우 프로세스가 실행 상태일 때 시스템 콜이나 인터럽트가 발생하면 CPU의 제어권이 운영체제에게로 넘어와 원래 실행중이던 프로세스의 업무를 잠시 멈추고 운영 체제 커널의 코드가 실행된다. 이 경우 cpu의 실행 위치 등 프로세스 문맥 중 일부를 PCB에 저장하지만 이런 과정을 context switching이라고 하지 않음

Untitled