[운영체제] PCB

Narcoker·2023년 6월 13일
0

운영체제

목록 보기
4/13

Process Mangement

CPU가 실행해야할 프로세스가 여러 개일때 CPU 스케줄링을 통해 관리하는 것을 말한다.

이때 CPU 는 각 프로세스의 정보와 상태(Process Metadata)를 알아야 관리가 가능하다.

PCB

프로세스의 정보와 상태(Process Metadata)를 저장하는 공간을 말한다.

PCB 는 한 프로세스 당 1개 씩 보유하고 있다.

PCB에 저장되는 정보

  • 프로세스 식별자(ID) : 프로세스의 고유 식별자
  • 프로세스 상태 : New | Ready | Running | Waiting | Terminated
  • 프로그램 카운터(PC) : 다음에 실행할 명령어의 주소를 가키리는 레지스터
  • 레지스터 상태 : 프로세스가 현재 가지고 있는 레지스터의 값, (범용 레지스터, 스택 포인터 등)
  • 스케줄링 정보 : 로세스의 우선순위, 스케줄링 알고리즘에 사용되는 정보 등
  • 메모리 관리 정보 : 프로세스의 주소 공간 할당 정보, 페이지 테이블 정보 등
  • 입출력 상태 : 현재 프로세스가 사용 중인 입출력 장치의 상태 정보
  • 자원 할당 정보 : 할당된 파일 디스크립터, 메모리 할당 정보 등

PCB가 필요한 이유

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

ex) interrupt가 발생해서 할당되어있는 프로세스가 waiting 상태가 되고
다른 프로세스가 running으로 바꿔 올릴때

이 때 할당되어있는 프로세스를 나중에 이어 실행하기 위헤서
Process Metadata를 저장해야한다.
이를 위한 공간으로 PCB가 필요하다.

PCB를 관리하는 법

Linked List 방식으로 관리된다.
이유는 주소 값으로 연결이 되어있기 때문에 삽입과 삭제가 용이하기 때문이다.

PCB List HeadPCB 들이 생성될때 마다 붙게된다.
프로세스가 생성되면 그 프로세스에 대한 PCB가 생성되고 완료 시 제거한다.

profile
열정, 끈기, 집념의 Frontend Developer

0개의 댓글