본문 바로가기
프로그래밍/운영체제

프로세스 제어 블록 (PCB, Process Control Block)란?

by bantomak 2023. 7. 20.

프로세스 제어 블록(PCB)이란?

  • 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓은 곳으로, 프로세스의 상태 정보를 저장하는 구조체이다.
  • 프로세스 상태 관리와 문맥교환(Context Switching)을 위해 필요하다.
  • PCB는 프로세스 생성 시 만들어지며 주기억장치에 유지된다.

 

PCB의 구조

 

프로세스 제어 블록(PCB)에 포함되는 정보들

  • Process ID : 프로세스를 구분하는 ID
  • Process state : 각 State 들의 상태를 저장한다.
  • Program Counter : 다음 Instruction의 주소를 저장한다. CPU는 이 값을 참조해서 Process의 Instruction을 수행한다.
  • Register : Accumulator, CPU Register, General Register 등을 포함한다.
  • CPU Scheduling Information : 우선순위, 최종 실행시간, CPU 점유시간 등이 포함된다.
  • Memory Information : 해당 프로세스 주소공간(lower bound ~ upper bound) 정보를 저장
  • Process Information : 페이지 테이블, 스케줄링 큐 포인터, 소유자, 부모 등
  • Device I/O Status : 프로세스에 할당된 입출력 장치 목록, 열린 목록등
  • Pointer : 부모/자식 프로세스에 대한 포인터, 자원에 대한 포인터
  • Open File List : 프로세스를 위해 열려있는 파일의 리스트

 

Context Switching에서의 프로세스 제어 블록(PCB) 역할

CPU 내의 프로세스가 변경되는 과정을 자세히 살펴보자

 

ContextSwitching from Process to Process

 

이렇게 수행 중인 프로세스를 변경할 때 레지스터에 프로세스의 정보가 바뀌는 것을 Context Switching(문맥 교환)이라고 한다. 즉 문맥교환이란 CPU가 이전의 프로세스 상태를 PCB에 보관하고, 또 다른 프로세스의 정보를 PCB에서 읽어 레지스터에 적재하는 과정을 말한다.

 

출처

 

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

PCB란? 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 곳으로, 프로세스의 상태 정보를 저장하는 구조체이다. 프로세스 상태 관리와 문맥교환(Context Switching)을 위해 필요하다. PCB는

dev-mystory.tistory.com

댓글