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 시 현재 상태를 저장하고 복원하는 데 핵심적으로 사용됩니다.