PCB(Process Control Block)

호돌·2021년 11월 5일
0

CS - Operating System

목록 보기
5/12

Process Management


CPU의 프로세스가 여러개일 때, CPU 스케줄링을 통해 관리하는 것을 말함

이때, CPU는 각 프로세스들이 누군지 알아야 관리가 가능함

프로세스들의 특징을 갖고있는 것이 바로 Process Metadata

Process Metadata의 종류


  • Process ID
  • Process State
  • Process Priority
  • CPU Registers
  • Owner
  • CPU Usage
  • Memeory Usage
    ...

이 메타데이터는 프로세스가 생성되면 PCB(Process Control Block)이라는 곳에 저장됨

PCB(Process Control Block)


PCB는 운영체제 내에서 한 프로세스의 존재를 정의한다. 즉, 여러 개의 프로세스를 수행하는 다중 프로그래밍 환경 하에서 각 프로세스를 구분하기 위한 프로세스 제어 블록이다.

PCB 테이블은 프로세스들의 현재 상태를 기록한 정보 테이블이며 각 프로세스들의 주기억장치에 적재된 기억장치 위치 혹은 포인터(100,200,300,400)와 식별자 (식별자:1, 식별자:2...) emddl PCB 항목으로 기록된다.

프로세스 메타데이터들을 저장해 놓는 곳, 한 PCB 안에는 한 프로세스의 정보가 담김

프로그램 실행 → 프로세스 생성 → 프로세스 주소 공간에 (코드, 데이터, 스택) 생성 → 이 프로세스의 메타데이터들이 PCB에 저장

PCB가 왜 필요한가요?


CPU에서는 프로세스의 상태에 따라 교체작업이 이루어진다.

이때, 앞으로 다시 수행할 대기 중인 프로세스에 관한 저장 값을 PCB에 저장해두는 것이다.

PCB의 관리 방식
Linked List 방식으로 관리된다.
PCB List Head에 PCB들이 생성될 때마다 붙게 된다. 주소값으로 연결이 이루어져 있는 연결리스트이기 때문에 삽입 삭제가 용이하다.

즉, 프로세스가 생성되면 해당 PCB가 생성되고 프로세스 완료시 제거된다.

이렇게 수행 중인 프로세스를 변경할 때, CPU의 레지스터 정보가 변경되는 것을 Context Switching이라고 한다.

프로세스의 생성 과정
1. 새로운 프로세스를 위한 프로세스 식별자를 할당한다.
2. 새로운 프로세스를 한 주소 공간과 프로세스 제어블록(PCB)를 할당한다.
3. 새로운 프로세스의 프로세스 제어 블록을 초기화한다. (상태 정보, 카운터, 우선순위 등을 초기화)
4. 새로운 프로세스를 스케줄링 큐의 준비 또는 준비/보류 리스트에 연결한다.

profile
저도 모르는데요?, 내가 몰라서 적는 글

0개의 댓글