프로세스를 생성하는 동안 운영체제는 몇 가지 작업을 수행한다.
프로세스를 식별하기 위해 프로세스 식별 번호(PID)를 각각의 프로세스에게 할당한다.
운영체제가 multi-programming을 지원하면서 모든 프로세스들을 추적할 필요가 있다.
이러한 작업을 위해, PCB는 프로세스의 실행 상태 추적을 위해 사용되어 진다.
각 메모리의 블록은 process state, program counter, stack pointer, status of opened files, scheduling algorithms 등의 정보를 포함한다.
이러한 모든 정보는 피요하고 프로세스가 현 상태에서 다른 상태로 전환될 때 저장되어야 한다.
프로세스가 다른 상태로 변화할 때, 운영체제는 프로세스의 PCB 정보를 수정한다.
PCB는 프로세스에 대한 정보를 포함한다.
프로세스 테이블은 PCB들의 배열이며 즉, 현재 시스템 내 모든 프로세스들에 대한 PCB를 논리적으로 포함하고 있다는 의미이다.
(출처 : https://www.geeksforgeeks.org/process-table-and-process-control-block-pcb/?ref=lbp )
(출처 : https://www.geeksforgeeks.org/process-table-and-process-control-block-pcb/?ref=lbp )
CPU 사용량, 시간 제약, 작업 혹은 프로세스 번호를 포함하고 있다.
PCB는 running상태로부터 blocked가 되었을 때 프로세서의 실행 내용이라고도 하는 레지스터 내용을 저장한다. 이러한 내용들은 운영체제가 프로세스가 running상태로 돌아왔을 때 프로세스 실행 내용들을 복구가 가능하도록 한다.
프로세스가 다른 상태로 전이될 때, 운영체제는 이러한 정보들을 프로세스의 PCB에 수정한다.
운영체제는 프로세스 테이블 안에 있는 각각의 프로세스의 PCB를 가리키면서 PCB 접근이 빨라지도록 하고 있다.