CPU가 실행해야할 프로세스가 여러 개일때 CPU 스케줄링을 통해 관리하는 것을 말한다.
이때 CPU 는
각 프로세스의 정보와 상태(Process Metadata)
를 알아야 관리가 가능하다.
프로세스의 정보와 상태(Process Metadata)를 저장하는 공간
을 말한다.PCB 는
한 프로세스 당 1개 씩 보유
하고 있다.
프로세스 식별자(ID)
: 프로세스의 고유 식별자프로세스 상태
:New
|Ready
|Running
|Waiting
|Terminated
프로그램 카운터(PC)
: 다음에 실행할 명령어의 주소를 가키리는 레지스터레지스터 상태
: 프로세스가 현재 가지고 있는 레지스터의 값, (범용 레지스터, 스택 포인터 등)스케줄링 정보
: 로세스의 우선순위, 스케줄링 알고리즘에 사용되는 정보 등메모리 관리 정보
: 프로세스의 주소 공간 할당 정보, 페이지 테이블 정보 등입출력 상태
: 현재 프로세스가 사용 중인 입출력 장치의 상태 정보자원 할당 정보
: 할당된 파일 디스크립터, 메모리 할당 정보 등
CPU에서 프로세스의 상태에 따라 교체 작업이 이뤄진다.
ex) interrupt가 발생해서 할당되어있는 프로세스가 waiting 상태가 되고
다른 프로세스가 running으로 바꿔 올릴때
이 때 할당되어있는 프로세스를 나중에 이어 실행하기 위헤서
Process Metadata를 저장
해야한다.
이를 위한 공간으로PCB
가 필요하다.
Linked List
방식으로 관리된다.
이유는 주소 값으로 연결이 되어있기 때문에삽입과 삭제가 용이
하기 때문이다.
PCB List Head
에PCB
들이 생성될때 마다 붙게된다.
즉프로세스가 생성되면 그 프로세스에 대한 PCB가 생성
되고완료 시 제거
한다.