컴퓨터과학/운영체제

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

PureStack 2021. 10. 29. 22:50

PCB는 무엇인가?

PCB는 프로세스 제어 블록(Process Control Block)의 줄임말로, 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓을 수 있는 일종의 자료 구조이다. 어떤 작업을 처리하는 와중에 갑자기 급한 이벤트가 발생했을 때, 기존에 작업하던 프로세스를 어딘가에 저장을 해놓아야 하는데, 그러한 기능을 하는 곳이 PCB이다. Context Switching이 발생할 때 기존에 실행하던 프로세스를 PCB에 저장 후 중단시키고 새로 실행하는 프로세스의 PCB를 불러온다.

PCB 저장내용

 

  1. Process State: 프로세스의 각 상태를 저장한다. 생성, 준비, 실행, 대기, 종료 중 해당 상태 정보를 저장한다.
  2. Process Number: 프로세스의 아이디 정보이다.
  3. Process counter: 이 프로세스에서 다음에 실행할 명령어의 주소를 가리키는 카운터를 저장한다.
  4. CPU Register: 누산기, 인덱스 레지스터, 스택 포인터 등을 포함하며, 이 상태 정보는 인터럽트 발생시, 해당 프로세스가 다시 작업을 재개할 때 중단된 위치에서부터 시작할 수 있도록 하기 위해 PCB에 저장되어야 한다.
  5. CPU-scheduling  information: 이 정보는 프로세스 우선순위, 스케줄링 큐 포인터, 그리고 다른 스케줄링 파라미터 등을 포함한다.
  6. Memory-management  information: 프로세스의 메모리 관리 시스템에 대한 정보가 포함된다. 페이지 테이블, 세그먼트 테이블 등이 있다.
  7. Accounting  information: CPU 사용시간, 실제 사용시간 등의 정보가 포함되어 있다.
  8. I/O status  information: 프로세스에 할당된 입출력 장치들 목록, 열려 있는 파일 목록 등등이 포함되어 있다.