PCB


PCB(Process Control Block)는 운영체제에서 프로세스에 대한 메타데이터를 저장한 ‘데이터’ 를 말합니다. 프로세스 제어 블록이라고도 합니다. 프로세스가 생성되면 운영체제는 해당 PCB를 생성합니다.

프로그램이 실행되면 프로세스가 생성되고 프로세스 주소 값들에 앞서 설명한 스택, 힙 등의 구조를 기반으로 메모리가 할당됩니다.

그리고 이 프로세스의 메타데이터들이 PCB에 저장되어 관리됩니다. 이는 프로세스의 중요한 정보를 포함하고 있기 때문에 일반 사용자가 접근하지 못하도록 커널 스택의 가장 앞부분에서 관리합니다.

메타데이터

데이터에 관한 구조화된 데이터이자 데이터를 설명하는 작은 데이터. 대량의 정보 가운데에서 찾고 있는 정보를 효율적으로 찾아내서 이용하기 위해 일정한 규칙에 따라 콘텐츠에 대해 부여되는 데이터이다.

PCB의 구조


프로세스 스케줄링 상태 : ‘준비’, ‘일시중단’ 등 프로세스가 CPU에 대한 소유권을 얻은 이후의 상태

프로세스 ID : 프로세스 ID, 해당 프로세스의 자식 프로세스 ID

프로세스 권한 : 컴퓨터 자원 또는 I/O 디바이스에 대한 권한 정보

프로그램 카운터 : 프로세스에서 실행해야 할 다음 명령어의 주소에 대한 포인터

CPU 레지스터 : 프로세스를 실행하기 위해 저장해야 할 레지스터에 대한 정보

CPU 스케줄링 정보 : CPU 스케줄러에 의해 중단된 시간 등에 대한 정보

계정 정보 : 프로세스 실행에 사용된 CPU 사용량, 실행한 유저의 정보