스물두줄

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

프로세스 제어 블록(PCB)

프로세스 제어 블록은 운영체제가 프로세스마다 유지하는 커널 내 자료구조다. 프로그램은 디스크에 있는 정적인 파일이고, 프로세스는 메모리에서 실행되는 동적인 상태다. 그래서 프로세스는 프로그램에 PCB가 결합된 것으로 보면 된다. PCB의 구성 정보는 여섯 범주로 묶어…

주요 장면

  1. 0:02 PCB의 정의
  2. 0:30 구성 정보
  3. 0:53 문맥교환 절차
  4. 1:31 스레드 제어 블록과 비교
  5. 1:52 계산 예
  6. 2:18 정리

대본

PCB의 정의

프로세스 제어 블록은 운영체제가 프로세스마다 유지하는 커널 내 자료구조다.

프로그램은 디스크에 있는 정적인 파일이고, 프로세스는 메모리에서 실행되는 동적인 상태다.

그래서 프로세스는 프로그램에 PCB가 결합된 것으로 보면 된다.

구성 정보

PCB의 구성 정보는 여섯 범주로 묶어 정리하면 된다.

식별 정보와 상태 정보는 모든 운영체제에 공통으로 있는 기본 항목이다.

메모리 관리 정보는 운영체제가 쓰는 메모리 방식에 따라 내용이 달라진다.

문맥 정보의 PC와 레지스터는 중단 지점을 저장하고 재개하게 한다.

문맥교환 절차

문맥교환은 PCB를 기준으로 현재 문맥을 저장하고 다음 문맥을 복원하는 과정이다.

현재 프로세스 A의 PC와 레지스터 값을 A의 PCB에 저장한다.

A의 상태를 Ready 또는 Waiting으로 바꾸고 해당 큐에 넣는다.

다음 프로세스 B의 PCB를 골라 Running으로 바꾸고 문맥을 복원한다.

B는 저장된 PC 위치부터 실행을 재개한다. 이 과정의 기준점이 PCB이다.

스레드 제어 블록과 비교

스레드 단위의 문맥은 TCB에 따로 두고, 프로세스 정보는 PCB에 둔다.

단일 스레드는 PCB 1개이고, 다중 스레드는 스레드마다 TCB를 둔다.

다중 스레드는 주소 공간을 공유하고, TCB는 같은 프로세스의 PCB를 가리킨다.

계산 예

이번에는 가상의 수치로 PCB 크기와 문맥교환 비용을 계산해 보자.

프로세스가 200개이고 PCB 1개가 1KB라면 전체 PCB는 200KB다.

문맥교환 1회에 저장과 복원이 각각 2μs이면 한 번에 4μs가 든다.

초당 1,000회면 4ms/s, 즉 0.4%의 오버헤드다.

정리

정리하면 PCB는 프로세스마다 유지되는 커널 내 자료구조다.

문맥교환은 현재 문맥을 PCB에 저장하고 다음 PCB에서 복원하는 과정이다.

시험에서는 정의, 구성 정보, 문맥교환과의 관계를 함께 정리해 두자.

같은 장의 영상