PCB가 담고 있는 내용
- 프로세스 식별자
- 프로세스 제어 정보
- 프로세서 상태 정보
프로세스 식별자: 프로세스를 유일하게 식별할 수 있게 함. pid, uid, ...
프로세서 상태 정보: 프로세스가 context switch 되기 직전, 레지스터와 같은 하드웨어 정보
프로세스 제어 정보: 프로세스를 제어하기 위한 메타데이터
스케줄링에 의해 처리 중인 task가 바뀌는 것
Mode Switch
- 현재 작업중인 유저 프로세스를 중지하고 커널모드에 진입
- 작업 중이던 프로세스의 상태를 변경하지 않으므로 오버헤드가 적다
Context Switch
- 작업 중이던 프로세스의 상태를 저장하고 다른 프로세스를 처리 (오버헤드)
- 작업 중이던 프로세스의 PCB를 업데이트 하게 된다.
- PCB를 적절한 큐(레디큐, 대기큐, ...)로 옮긴다.
- 스케줄러를 호출하여 다음에 실행할 프로세스를 선택 (오버헤드)
- 실행할 프로세스의 PCB를 업데이트한다.
- 오염된 캐시 때문에 TLB를 업데이트
- 실행할 프로세스의 context를 프로세서에 복구한다. (오버헤드)
Context switch도 스케줄러를 호출하기 때문에 mode switch가 일어나게 된다.
PCB에 대한 중요 개념들을 알 수 있었습니다!!