스물두줄

컴퓨터시스템응용기술사 · 개념서 · 컴퓨터 구조 및 운영체제

프로세스 제어 블록

설명 영상 프로세스 제어 블록(PCB) · 2:20

왜 배우는가: 프로세스 제어 블록(PCB)은 운영체제가 프로세스를 관리하는 기본 자료구조로, 문맥 교환과 스케줄링이 모두 이 블록을 기준으로 동작한다. 시험에서는 1교시 용어 문제와 2~4교시 논술 문제에 반복해서 나오므로 정의, 구성 정보, 문맥 교환과의 관계를 함께 정리해 두어야 한다.

출제 이력: 제116회 1교시 2번, 제99회 1교시 6번

1. 한 줄 정의와 핵심 키워드

프로세스 제어 블록(PCB)은 운영체제가 프로세스마다 유지하는 정보를 담은 커널 내 자료구조이다.

핵심 키워드

  • 프로세스 제어 블록(PCB)
  • 프로세스 식별자(PID)
  • 프로세스 상태
  • 프로그램 카운터(PC)
  • 문맥 교환(Context Switching)
  • 프로세스 테이블
  • 스케줄링 정보
  • 메모리 관리 정보

2. 개념 풀이

쉽게 말하면 PCB는 운영체제가 프로세스 한 개마다 작성해 두는 신상 카드다. 누가 실행 중인지, 어디까지 실행했는지, 얼마나 기다렸는지를 적어 둔다. 프로세스마다 내용이 다르므로 프로세스가 달라지는 정보를 모두 여기 모은다고 볼 수 있다.

정식 정의는 다음과 같다. PCB는 특정 프로세스를 관리하는 데 필요한 정보를 담는 운영체제 커널의 자료구조이며, 작업 제어 블록(TCB) 또는 작업 구조라고도 부른다. 프로세스가 생성될 때 만들어지고 종료될 때 소멸한다.

핵심 용어를 풀이하면 다음과 같다.

  • 프로세스 식별자(PID): 운영체제 안에서 프로세스를 구별하는 번호다. 같은 번호의 프로세스는 동시에 존재하지 않는다.
  • 프로세스 상태: 생성(New), 준비(Ready), 실행(Running), 대기(Waiting), 종료(Terminated) 등 모델에 따라 정의된 상태 중 현재 상태를 기록한다.
  • 프로세스 테이블: 모든 PCB를 모아 둔 커널의 표다. 운영체제는 이 표를 순회하며 프로세스를 관리한다.

PCB는 프로세스를 표현하는 자료구조일 뿐 프로세스 그 자체는 아니다. 프로그램은 디스크에 있는 정적인 파일이고, 프로세스는 메모리에 올라와 실행되는 동적인 상태다. 따라서 프로세스는 프로그램에 PCB가 결합된 것으로 이해하면 편하다.

3. 등장 배경과 필요성

다중 프로그래밍 환경에서는 CPU 한 개를 여러 프로세스가 번갈아 쓴다. 운영체제가 프로세스를 중단하고 다시 실행하려면 각 프로세스가 어디까지 실행했는지 기록해 두어야 한다. 이 기록을 한 곳에 모아 관리하는 구조가 PCB다.

PCB가 없다면 CPU가 프로세스를 바꿀 때 실행 위치와 레지스터 값을 잃어버린다. 그러면 중단된 프로세스를 이어서 실행할 수 없다. 따라서 PCB는 시분할 시스템과 다중 프로그래밍의 기본 전제가 된다.

PCB에는 스케줄러가 CPU를 배분하는 데 필요한 우선순위와 상태 정보도 들어 있다. 스케줄러는 PCB의 상태를 보고 준비 큐에서 다음 프로세스를 고른다. 그러므로 PCB는 자원 관리와 스케줄링을 연결하는 자료구조로서 필요하다.

4. 구성요소·원리·절차

PCB의 구성요소는 프로세스 식별, 상태, 실행 문맥, 스케줄링, 메모리, 자원 정보로 나뉜다. 운영체제는 이 블록을 프로세스 테이블에 모아 관리하고, 문맥교환 때 CPU 상태를 저장·복원하는 기준점으로 사용한다.

이어지는 내용

로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.

앱에서 이 단원 읽기