#7 PCB(Process Control Block) - 프로세스 제어 블록
● PCB
- 프로그램이 메모리에 올라가서 실행중인 상태를 프로세스라고 하며 OS는 여러개의 프로세스를 전부 다 관리 & 공평하게 실행시켜야한다.
- 프로세스가 만들어지면 OS는 해당 프로세스의 정보를 가지고 있는 PCB(Process Control Block)를 만들고 저장한다.
- PCB들은 연결리스트 형태로 저장된다. cf) 연결리스트 - 각각의 데이터(노드)가 다음 데이터를 연결하는 자료구조
- OS는 프로세스가 종료되면 연결리스트에서 해당 프로세스의 PCB를 제거한다.
● PCB 구조
1. 포인터
- 부모와 자식 프로세스에 대한 포인터와 할당된 자원에 대한 포인터 등이 있고 프로세스의 한 상태에서 다른 상태로 전환될 때 저장하는 포인터를 가지고 있다.
2. 프로세스 상태
- 현재 프로세스의 5가지 상태(생성, 준비, 실행, 대기, 완료)를 의미
3. 프로세스 ID(PID)
- 프로세스를 식별하기 위한 숫자가 저장된다.(고유한 ID 값이라고 생각)
4. 프로그램 카운터
- 다음에 실행될 명령어의 주소를 포함하는 프로그램 카운터를 저장
- 오늘날 OS는 시분할처리로 여러개의 프로세스를 짧은 시간동안 번갈아가며 실행한다.
- 어떠한 프로세스가 실행되다가 다른 프로세스에게 CPU를 뺏긴 후 다시 실행될 때 원래 실행하던 명령어가 그대로 실행되어야 하기 때문에 프로그램 카운터는 반드시 있어야한다.
5. 레지스터 정보
- 프로세스가 실행될 때 사용했던 레지스터 값들이 저장된다.
- 프로그램 카운터와 마찬가지로 CPU를 뺏긴 후 다시 시작할 때 이전에 사용했던 값들을 복구하기 위한 용도이다.
6. 메모리 관련 정보
- 프로세스가 메모리 어디에 있는지에 대한 위치 정보, 메모리 침범을 막기 위한 경계 레지스터 값 등이 저장된다.
7. CPU 스케줄링 정보
- CPU 스케줄링에 필요한 우선순위, 최종 실행시간, CPU 점유시간 등이 저장된다.
● PCB를 조금 더 자세히 알아보자
- PCB(Process Control Bolock)는 OS가 프로세스를 제어하기 위한 프로세스 상태 정보를 저장한 곳이다.
- PCB는 프로세스의 중요 정보를 가지고 있기 때문에 일반 사용자가 접근하지 못하도록 보호된 메모리 영역에 위치한다.
- 프로세스가 생성될 때마다 고유의 PCB가 생성되고 프로세스가 완료되면 PCB도 제거된다.
- OS는 빠른 PCB 접근을 위해 프로세스 테이블을 사용하여 각 프로세스의 PCB를 관리한다.
cf) 아래 글을 참고했다.
https://yoongrammer.tistory.com/52
프로세스 제어 블록 (PCB: Process Control Block) 알아보기
프로세스 제어 블록 (PCB: Process Control Block) 알아보기 PCB(Process Control Bolock)는 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 곳으로, 프로세스의 상태 정보를 저장하는 자료구조입니
yoongrammer.tistory.com
https://stackoverflow.com/questions/4880555/what-is-the-linux-process-table-what-does-it-consist-of
What is the linux process table ? What does it consist of?
This term keeps appearing in my Operating System notes, and I'm not entirely sure what it is/where it's stored and how or why.
stackoverflow.com
프로세스 제어 블록 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 프로세스 제어 블록(Process Control Block, 줄여서 PCB)은 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영 체제 커널의 자료 구조이다. 작업 제어 블록(T
ko.wikipedia.org
https://jhnyang.tistory.com/33
[운영체제]PCB (Process Control Block)란? PCB 정보 & Context Switching 문맥교환 & Overhead 오버헤드
운영체제 목차 프로세스의 정의와 프로세스 상태에 대한 이해를 기반으로 하고 있습니다. 헷갈리시는 분은 이전 포스팅 보고 오기 프로세스를 조금 어렵게(?) 이렇게 표현하기도 해요 프로세스
jhnyang.tistory.com