[운영체제] PCB가 무엇인가?

728x90

PCB는 Process Control Block의 약자로 운영체제의 커널 스택에 위치한다.

운영체제가 프로세스에 관련한 정보를 운영체제의 커널에 저장해 놓은 영역을 의미하는 것이다.

각 프로세스마다 고유한 PCB를 가지고 프로세스가 종료되면 같이 제거된다.

일반적으로 PCB는 다음과 같은 구성으로 이루어져 있다. (위키백과)

  • 프로세스 식별자(Process ID)
  • 프로세스 상태(Process State): 생성(create), 준비(ready), 실행(running), 대기(waiting), 완료(terminated) 상태가 있다. - 유예준비상태suspended ready, 유예대기상태suspended wait 는 스택이 아닌 disk에 저장된다.
  • 프로그램 계수기(Program Counter): 프로그램 계수기는 이 프로세스가 다음에 실행할 명령어의 주소를 가리킨다.
  • CPU 레지스터 및 일반 레지스터
  • CPU 스케줄링 정보: 우선 순위, 최종 실행시각, CPU 점유시간 등
  • 메모리 관리 정보: 해당 프로세스의 주소 공간 
  • 프로세스 계정 정보: 페이지 테이블, 스케줄링 큐 포인터, 소유자, 부모 등
  • 입출력 상태 정보: 프로세스에 할당된 입출력장치 목록, 열린 파일 목록 등