PCB는
- 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 곳으로, 프로세스의 상태 정보를 저장하는 자료구조다.
- 운영체제에서 프로세스는 PCB로 표현된다.
- 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 주기억장치에 유지되며, 프로세스가 완료되면 PCB도 함께 제거된다.
- 프로세스 상태 관리와 문맥 교환(Context switch)을 위해서 필요하다.
운영체제에 따라 PCB에 포함되는 항목이 다를 수 있지만, 일반적으로 다음과 같은 정보가 포함되어 있다.
PCB에 포함되는 정보
- 포인터 : 부모프로세스에 대한 포인터, 자식 프로세스에 대한 포인터, 프로세스가 위치한 메모리 주소에 대한 포인터, 할당된 자원에 대한 포인터 정보 등.
- 프로세스 상태(Process State) : 생성(create), 준비(ready), 실행 (running), 대기(waiting), 완료(terminated) 상태가 있다.
- 프로세스 식별자(Process ID)
- 프로그램 계수기(Program Counter) : 프로그램 계수기는 이 프로세스가 다음에 실행할 명령어의 주소를 가리킨다.
- CPU 레지스터 및 일반 레지스터
- CPU 스케줄링 정보 : 우선 순위, 최종 실행시각, CPU 점유시간 등
- 메모리 관리 정보 : 해당 프로세스의 주소 공간 등
- 프로세스 계정 정보 : 페이지 테이블, 스케줄링 큐 포인터, 소유자, 부모 등
- 입출력 상태 정보 : 프로세스에 할당된 입출력장치 목록, 열린 파일 목록 등
운영체제는 빠르게 PCB에 접근하기 위해 프로세스 테이블을 사용하여 각 프로세스의 PCB를 관리한다.
출처 : [운영체제]PCB (Process Control Block)란? PCB 정보 & Context Switching 문맥교환 & Overhead 오버헤드 (tistory.com)
'CS > OS & 하드웨어' 카테고리의 다른 글
시스템 구조와 프로그램 실행 2 (0) | 2023.03.24 |
---|---|
시스템 구조와 프로그램 실행 1 (0) | 2023.03.19 |
문맥 교환 Context Switching (0) | 2022.12.27 |
캐시가 동작하는 아주 구체적인 원리 (0) | 2022.12.26 |
캐시 히트율/메모리 적중률 (Hit Rate) (0) | 2022.12.26 |