본문 바로가기
CS 지식/운영체제

[운영체제] PCB(Process Control Block)란?

by ghan2 2024. 5. 17.

PCB(Process Control Block, 프로세스 제어 블록)는 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳으로, 운영체제 커널의 자료구조이다. 작업 제어 블록(Task Control Block, TCB)또는 작업 구조라고도 한다. 

- 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거된다. 

- 운영체제 입장에서 프로세스 상태 관리와 문맥교환(Context Switch)에 필요하며 프로세스 생성시 만들어지고 주기억장치에 유지된다. 

PCB에 저장되는 내용

- 프로세스의 현재 상태

- 포인터

- 프로세스 고유 식별자

- 스케줄링 및 프로세스의 우선순위

- CPU 레지스터 정보

- 주기억장치 관리 정보

- 입출력 상태 정보

- 계정 정보

프로세스는 실행 중인 프로그램이 되고, 이 프로그램들을 CPU가 처리한다. (메신저, 노래, 한글 프로그램들.. 이 있다고 하면 각각의 현재 상태, 포인터, 식별자를 가지고 있다.)

CPU 레지스터 정보는 각각의 프로그램이 CPU를 사용할 때 달라지는 레지스터의 정보들을 가지고 있다. 

 

Context Switching에서의 PCB

 

이 그림을 보면 문맥 교환시에 PCB의 사용을 볼 수 있는데, 프로세스 P1이 실행되다가 프로세스 P2로 문맥 교환을 하기 위해 PCB1에 정보를 저장하고 있다. 그리고 PCB2에서 정보를 읽어와서 P2를 실행한다. 

 

즉, Context Switching 문맥교환 이란 CPU가 이전의 프로세스 상태를 PCB에 보관하고, 또 다른 프로세스의 정보를 PCB에서 읽어 레지스터에 적재하는 과정을 말한다. 프로세스가 준비 -> 실행, 실행 -> 준비, 실행 -> 대기 등으로 상태 변경될 때 발생한다.