PCB & Context switch

양성훈·2022년 3월 4일
0

CS 스터디

목록 보기
4/4

PCB

cpu는 프로세스가 여러개 일때 cpu 스케줄링을 통해서 프로세스를 관리하는데 이때 각 프로세스가 어떤 것인지 알아야 관리가 가능하다.

따라서 각 프로세스의 특징을 담은 메타 데이터가 필요하고, 이러한 메타 데이터들을 저장하는 곳을 PCB라고 한다.

PCB가 필요한 이유

cpu에서 프로세스 교체가 이뤄질 때, 앞으로 다시 프로세스를 수행하기 위해서 프로세스에 대한 정보를 PCB에 저장해둔다.

PCB에 저장되는 내용

  1. process id - 프로세스 아이디
  2. process state - 프로세스 상태
  3. process priority
  4. cpu register
  5. owner
  6. cpu usage
  7. memory usage

등등등..

PCB 생성과 관리

프로그램 실행 → 프로세스 생성 → 프로세스 주소 공간에 (데이터, 스택, 코드) 생성 → 이 프로세스의 메타데이터들이 담긴 PCB 생성

생성된 PCB는 linked list로 관리되며 프로세스가 생성되면 해당 프로세스의 pcb가 생성되어 list에 추가되고 삭제하면 역시 사라진다.

Context Switch

수행중인 프로세스를 변경할 때, cpu의 레지스터 정보가 변경되는 것

즉, cpu가 이전 프로세스의 상태를 PCB에 저장(보관)하고, 새로 실행할 프로세스의 상태를 PCB에서 읽어 레지스터에 적재하는 과정

profile
시야를 넓히자

0개의 댓글