PCB(Process Control Block, 프로세스 제어 블록)는 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳으로, 운영체제 커널의 자료구조이다. 작업 제어 블록(Task Control Block, TCB)또는 작업 구조라고도 한다.
- 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거된다.
- 운영체제 입장에서 프로세스 상태 관리와 문맥교환(Context Switch)에 필요하며 프로세스 생성시 만들어지고 주기억장치에 유지된다.
PCB에 저장되는 내용
- 프로세스의 현재 상태
- 포인터
- 프로세스 고유 식별자
- 스케줄링 및 프로세스의 우선순위
- CPU 레지스터 정보
- 주기억장치 관리 정보
- 입출력 상태 정보
- 계정 정보
프로세스는 실행 중인 프로그램이 되고, 이 프로그램들을 CPU가 처리한다. (메신저, 노래, 한글 프로그램들.. 이 있다고 하면 각각의 현재 상태, 포인터, 식별자를 가지고 있다.)
CPU 레지스터 정보는 각각의 프로그램이 CPU를 사용할 때 달라지는 레지스터의 정보들을 가지고 있다.
Context Switching에서의 PCB
이 그림을 보면 문맥 교환시에 PCB의 사용을 볼 수 있는데, 프로세스 P1이 실행되다가 프로세스 P2로 문맥 교환을 하기 위해 PCB1에 정보를 저장하고 있다. 그리고 PCB2에서 정보를 읽어와서 P2를 실행한다.
즉, Context Switching 문맥교환 이란 CPU가 이전의 프로세스 상태를 PCB에 보관하고, 또 다른 프로세스의 정보를 PCB에서 읽어 레지스터에 적재하는 과정을 말한다. 프로세스가 준비 -> 실행, 실행 -> 준비, 실행 -> 대기 등으로 상태 변경될 때 발생한다.
'CS 지식 > 운영체제' 카테고리의 다른 글
[운영체제] 캐시 (0) | 2024.11.10 |
---|---|
[운영체제] 운영체제 동기화 방법: 세마포어와 뮤텍스 (0) | 2024.09.21 |
[운영체제] 프로세스와 스레드 (0) | 2024.08.02 |
[운영체제] 메모리 계층 구조 (0) | 2024.06.21 |