운영체제
PCB(Process Control Block)
웜블
2022. 1. 28. 22:47
Process MetaData
프로세스가 여러 개 일 때, CPU 스케줄링을 통해 관리를 한다.
이때, 프로세스에 대한 특징과 정보가 있어야 각 프로세스들을 특정하고 관리할 수 있다.
이 '프로세스에 대한 특징'을 가지고 있는 정보가 Process MetaData 다.
종류
- OS 관리 정보
- 프로세스 상태
- 프로세스 ID
- 스케줄링 정보, 우선순위
- CPU 수행 관련 하드웨어 값
- 프로그램 카운터(PC) : 다음에 수행할 명령어 위치
- CPU 레지스터 : 연산을 위해 현 시점에 가진 정보
- 메모리 관련
- code, data, stack 의 메모리 상 위치
PCB(Process Control Block)
- 프로세스 메타데이터를 저장하는 곳.
- 하나의 PCB에는 한 프로세스의 메타데이터만을 저장
- 운영체제 커널 데이터 영역에 보관
PCB 구조
PCB를 왜 사용할까?
프로세스가 여러 개 일 때, 프로세스의 상태에 따라 CPU를 넘겨주고 받는다.
이러한 교체 작업은 문맥 교환(context switch)이라고 한다.
문맥 교환이 일어날 때, 인터럽트로 인해 CPU를 내어주는 프로세스가 나중에 다시 작업을 재개하기 위해 실행한 위치와 상태를 기록해야 한다. 이를 위해 프로세스 상태를 저장하는 곳이 PCB이다.
따라서 PCB는 문맥 교환시 대기 상태로 접어든 프로세스의 작업을 이어서 하기위해 필요한 저장소이다.
PCB의 사용 방식
문맥 교환 시
- CPU를 내어주는 프로세스의 상태를 그 프로세스의 PCB에 저장
- CPU를 얻는 프로세스의 상태를 PCB에서 읽어옴