PCB

OS가 각 프로세스를 관리하기 위해 프로세스마다 유지하는 데이터 구조입니다.

저장 정보

┌─────────────────────────┐
│ 프로세스 ID (PID)        │
│ 프로세스 상태            │
│ Program Counter (PC)    │
│ 레지스터 값              │
│ 메모리 정보              │
│ CPU 스케줄링 정보        │
│ I/O 상태 정보           │
│ 열린 파일 목록           │
└─────────────────────────┘
항목설명
PID프로세스 고유 식별자
프로세스 상태실행, 준비, 대기 등
PC다음 실행할 명령어 주소
레지스터CPU 레지스터 값 (Context Switch 시 저장/복원)
메모리 정보페이지 테이블, 세그먼트 정보
스케줄링 정보우선순위, Time Quantum 등

프로세스 상태 전이

생성(New)
   ↓
준비(Ready) ←────────────────┐
   ↓                         │
실행(Running) → 대기(Waiting)─┘
   ↓
종료(Terminated)

Context Switch에서의 역할

P1 실행 중 → 스케줄러 개입
→ P1의 PC, 레지스터 등 → P1의 PCB에 저장
→ P2의 PCB에서 상태 복원
→ P2 실행 재개

PCB 저장 위치

커널 메모리 영역에 저장
→ 사용자 프로세스가 직접 접근 불가
→ OS만 접근 가능

PCB는 프로세스의 "신분증" 같은 역할로, Context Switch 시 현재 상태를 저장하고 복원하는 데 핵심적으로 사용됩니다.

CSLOG에서 보기