--- id: process-control-block title: "Process Control Block" category: "Operating System" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["PCB", "Task Control Block", "TCB", "프로세스 제어 블록"] duplicate_of: "" source_trust_level: "A" confidence_score: 0.95 created_at: 2026-07-11 updated_at: 2026-07-11 review_reason: "" merge_history: [] tags: ["research", "context 이해 규칙"] raw_sources: ["[S1] Process Control Block (PCB) Explained: What It Stores - Unwired Learning", "[S2] What Is Context Switching in Operating System | TestMu AI (Formerly LambdaTest)", "[S3] Difference between Swapping and Context Switching - TutorialsPoint"] applied_in: [] github_commit: "" --- # [[Process Control Block]] ## 🎯 한 줄 통찰 (One-line insight) 운영체제가 다중 프로세스를 관리하고 [[Context Switching]]을 수행하기 위해 개별 프로세스의 고유한 식별 정보와 실행 문맥(Context)을 스냅샷처럼 저장하는 핵심 커널 데이터 구조체이다. ## 🧠 핵심 개념 (Core concepts) - **실행 문맥 보존 (Context Preservation):** 프로세스가 중단된 지점부터 다시 실행될 수 있도록 CPU 레지스터, 프로그램 카운터 등의 상태를 저장하고 복원하는 메커니즘 제공. - **커널 메모리 저장 (Kernel Memory Storage):** 사용자 프로세스가 직접 접근할 수 없는 보호된 커널 메모리 영역에 저장되며, 운영체제가 프로세스 테이블(Process Table)을 통해 중앙에서 관리. - **수명 주기 동기화 (Lifecycle Synchronization):** 새로운 프로세스가 생성될 때 운영체제에 의해 만들어지며, 프로세스가 종료되면 해당 자원과 함께 메모리에서 해제됨. ## 🧩 추출된 패턴 (Extracted patterns) - **상태 갱신 및 복원 패턴 (State Save and Restore):** 컨텍스트 스위칭 시 운영체제는 현재 실행 중인 프로세스의 상태를 PCB에 기록(Save)하고, 다음 실행될 프로세스의 상태를 해당 프로세스의 PCB에서 읽어와 CPU에 로드(Load)하는 방식으로 작동한다. ## 📖 세부 내용 (Details) - **정의 및 역할:** 프로세스 제어 블록(PCB)은 운영체제가 개별 프로세스에 대한 모든 정보를 저장하는 데이터 구조체로, 작업 제어 블록(Task Control Block, TCB)이라고도 불린다 [S1], [S2]. 다수의 프로세스가 CPU를 공유하는 멀티태스킹 환경에서, 컨텍스트 스위칭 시 이전 작업의 진행 상황을 잃지 않고 보존하며 다음 작업의 상태를 완벽히 로드하기 위한 스냅샷 역할을 수행한다 [S1], [S2], [S3]. - **주요 구성 요소:** PCB 내부에는 다음과 같은 중요 메타데이터가 포함된다. - **프로세스 식별 정보:** 시스템 내에서 프로세스를 고유하게 식별하는 프로세스 ID(PID) 및 이를 생성한 부모 프로세스 ID(PPID) [S1], [S2]. - **프로세스 상태 정보:** New, Ready, Running, Waiting, Terminated 등 프로세스의 현재 생애 주기 상태 [S1], [S3]. - **프로그램 카운터 (Program Counter):** 중단된 시점 이후에 CPU가 실행해야 할 다음 명령어의 메모리 주소 [S1], [S2], [S3]. - **CPU 레지스터:** 누산기(Accumulators), 인덱스 레지스터, 스택 포인터, 범용 레지스터 등 CPU가 연산 중 사용하던 임시 데이터 레지스터 값 [S1], [S2], [S3]. - **CPU 스케줄링 정보:** 프로세스의 실행 우선순위 및 스케줄링 큐 포인터 등 스케줄러가 다음 프로세스를 결정하는 데 사용하는 데이터 [S1], [S2]. - **메모리 관리 정보:** 프로세스가 다른 프로세스의 메모리 영역을 침범하지 않도록 제어하는 기준(Base) 레지스터, 한계(Limit) 레지스터, 페이지 테이블 또는 세그먼트 테이블 [S1], [S2]. - **어카운팅 정보 (Accounting Information):** 소비된 CPU 시간, 시간 제한, 계정 번호 등 리소스 사용 통계 정보 [S1]. - **I/O 상태 정보:** 프로세스에 할당된 입출력 장치 목록 및 열린 파일 정보 [S1]. - **저장 위치 및 특징:** - 사용자가 접근할 수 없는 운영체제의 커널 메모리(Kernel Memory) 내부에 보관되며, 프로세스 테이블(Process Table)을 통해 추적된다 [S1]. - 컨텍스트 스위칭에 소요되는 시간은 시스템 관점에서 순수 오버헤드로 작용하므로, 최소화된 접근 지연 시간을 보장하기 위해 빠른 액세스가 가능한 메모리(fast-access memory)에 초소형, 고효율로 적재된다 [S1]. - 프로세스 자체(실행 중인 능동적 프로그램)와 달리 PCB는 해당 프로세스를 OS가 관리하기 위해 유지하는 수동적(Passive) 데이터 구조체이다 [S1]. ## ⚖️ 모순 및 업데이트 (Contradictions & updates) 소스 데이터 내에서 모순되거나 상충되는 정보는 발견되지 않았습니다. ## 🛠️ 적용 사례 (Applied in summary) 현재 발견된 실제 적용 사례가 없습니다. (소스 내에서 파일 경로, Git 커밋 해시, 의사결정 기록 등의 구체적 구현 사례는 명시되지 않음) ## 💻 코드 패턴 (Code patterns) 소스에 코드 예시 없음 ## ✅ 검증 상태 및 신뢰도 - **상태:** draft - **검증 단계:** conceptual - **출처 신뢰도:** A - **신뢰 점수:** 0.95 - **중복 검사 결과:** 신규 생성 (New discovery) ## 🔗 관련 문서 링크 (Related document links) ### 상위/유사 개념 - [[Context Switching]] — PCB의 데이터를 저장하고 복원하여 단일 CPU가 여러 프로세스를 공유할 수 있도록 하는 핵심 메커니즘 - [[Process]] — PCB에 의해 메타데이터가 기록되고 관리되는 운영체제 내 능동적인 실행 주체 - [[Operating System]] — 프로세스 생성부터 종료까지 PCB의 수명 주기를 제어하고 커널 메모리를 통해 이를 보호·관리하는 주체 ### 심층 후속 질문 (Deeper Research Questions) - 컨텍스트 스위칭 시 PCB를 읽고 쓰는 과정에서 발생하는 시스템 오버헤드(Overhead)를 최소화하기 위한 구체적인 스케줄링 전략이나 하드웨어 레벨의 최적화 방법은 무엇인가? - 운영체제가 Ready 큐나 Waiting 큐를 관리할 때 PCB 내부의 포인터 정보는 어떠한 구조적 방식으로 연결 리스트를 형성하는가? - 멀티스레드 환경에서 단일 프로세스 내 다수 스레드에 대한 컨텍스트 정보는 PCB에서 어떤 식으로 분리 혹은 병합되어 저장되는가? ### 실무 적용 맥락 (Practical Application Contexts) - **Implementation:** 소스에서 확인되지 않음. - **System Design:** 운영체제의 커널 메모리 보호 정책 수립 및 독립적 메모리 관리 설계 시 프로세스 데이터의 격리를 보장하기 위한 기본 구조 참조. - **Operation / Maintenance:** 작업 관리자 등 시스템 리소스 모니터링 도구가 프로세스별 메모리와 CPU 사용량(어카운팅 정보)을 파악하는 기반 데이터로 활용. - **Learning Path:** 운영체제의 프로세스 관리 기법, 상태 전이도(State Diagram), 컨텍스트 스위칭의 작동 원리를 학습하기 위한 필수 기반 지식. ### 인접 주변 주제 (Adjacent Topics) - [[CPU Scheduling]] — 스케줄러가 PCB에 담긴 우선순위 등의 정보를 기반으로 CPU의 다음 할당 프로세스를 정하는 과정 ## 🔗 지식 그래프 (Knowledge Graph) - **상위/루트:** [[context 이해 규칙]] - **관련 개념:** [[Context Switching]], [[Process]] - **참조 맥락:** 다중 프로세스 운영체제 환경에서 컨텍스트 스위칭을 수행할 때, 프로세스 간 맥락(Context)의 단절 없이 실행 상태를 보존하고 복원하기 위한 핵심 데이터 구조체로 참조됨. ## 📚 출처 (Sources) - [S1] Process Control Block (PCB) Explained: What It Stores - Unwired Learning (Source 18) - [S2] What Is Context Switching in Operating System | TestMu AI (Formerly LambdaTest) (Source 36) - [S3] Difference between Swapping and Context Switching - TutorialsPoint (Source 7)