Organizer 정리 산출물(From_RawData) + 이사 체크리스트 + 인덱스 갱신
- Raw_Data 자동 정리 산출물이 각 도메인 From_RawData/ 로 편입, 00_INDEX 연결 갱신 - 컴퓨터_이사_체크리스트.md 추가 (두뇌-상대 경로 규약 v2.2.304 — 새 컴퓨터에서 바꿀 절대 경로는 localBrainPath 1개) - Astra 세션 산출물(에피소드 기억·기능 인벤토리) 갱신 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
---
|
||||
id: process-control-block-(pcb)
|
||||
title: "Process Control Block (PCB)"
|
||||
category: "Operating System"
|
||||
status: "draft"
|
||||
verification_status: "conceptual"
|
||||
canonical_id: ""
|
||||
aliases: ["PCB", "Process Control Block", "프로세스 제어 블록", "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 이해 규칙", "OS", "Process Management"]
|
||||
raw_sources: ["Process Control Block (PCB) Explained: What It Stores - Unwired Learning", "What Is Context Switching in Operating System | TestMu AI (Formerly LambdaTest)", "Difference between Swapping and Context Switching - TutorialsPoint"]
|
||||
applied_in: []
|
||||
github_commit: ""
|
||||
---
|
||||
|
||||
# [[Process Control Block (PCB)]]
|
||||
|
||||
## 🎯 한 줄 통찰 (One-line insight)
|
||||
운영체제가 다중 프로세스 환경에서 각각의 프로세스를 관리하고 문맥 교환(Context Switching)을 수행하기 위해, 프로세스의 실행 상태와 메타데이터를 저장해 두는 보호된 커널 영역의 핵심 데이터 구조이다.
|
||||
|
||||
## 🧠 핵심 개념 (Core concepts)
|
||||
- **프로세스의 신분증(Identity Card):** 운영체제가 프로세스에 대한 모든 정보(PID, 현재 상태, 할당된 리소스 등)를 관리하기 위한 완전한 정보 저장소이다.
|
||||
- **문맥 교환(Context Switching)의 핵심 기반:** CPU가 한 프로세스에서 다른 프로세스로 전환될 때, 현재 실행 상태를 저장하고 다음 상태를 복원하는 작업의 기준점이 된다.
|
||||
- **커널 메모리 보호 영역:** 보안 및 시스템 안정성을 위해 사용자 프로세스는 직접 접근할 수 없으며 운영체제의 커널 메모리 영역에만 저장 및 관리된다.
|
||||
|
||||
## 🧩 추출된 패턴 (Extracted patterns)
|
||||
- **생명주기 동기화 패턴:** PCB는 프로세스가 생성될 때 운영체제에 의해 만들어지며, 프로세스가 종료되면 리소스 할당 해제와 함께 프로세스 테이블(Process Table)에서 삭제된다.
|
||||
- **테이블/리스트 관리 패턴:** 운영체제는 수많은 프로세스를 효율적으로 추적하기 위해 모든 PCB를 테이블이나 연결 리스트(Linked List) 형태로 연결해 관리한다.
|
||||
|
||||
## ⚖️ 비교 및 선택 기준 (Comparison & decision criteria)
|
||||
|
||||
| 항목 (Option) | 장점 | 단점 | 언제 선택 |
|
||||
|---|---|---|---|
|
||||
| **Process (프로세스)** | 코드를 실행하고 작업을 수행하는 능동적인(Active) 개체 | 코드, 데이터, 리소스를 포함하여 크기가 큼 | 실제 명령어를 실행하고 연산을 수행해야 할 때 참조 |
|
||||
| **PCB (프로세스 제어 블록)** | 프로세스의 상태와 메타데이터를 담은 수동적인(Passive) 데이터 구조 | 실제 명령어를 실행하는 개체는 아님 | 운영체제가 프로세스를 스케줄링하고 관리해야 할 때 참조 |
|
||||
|
||||
## 📖 세부 내용 (Details)
|
||||
운영체제에서 프로세스 제어 블록(PCB)은 때때로 Task Control Block (TCB)라고도 불리며, 프로세스의 생성부터 종료까지 시스템이 해당 프로세스를 관리하는 데 필요한 모든 데이터를 유지한다 [S1], [S2]. 멀티태스킹 환경에서 CPU가 여러 프로세스를 전환해가며 실행할 때, PCB는 이전 프로세스의 진행 상황을 기록해 두는 일종의 '스냅샷'이나 '책갈피' 역할을 하여 중단된 지점부터 완벽하게 재개할 수 있도록 한다 [S1].
|
||||
|
||||
PCB는 운영체제의 커널 메모리 내부에 저장되며, 빠른 문맥 교환(Context Switch)을 위해 고속 접근이 가능한 메모리에 위치한다 [S1], [S3]. 사용자는 이 영역에 직접 접근할 수 없다 [S1].
|
||||
|
||||
PCB는 다음과 같은 핵심 구성 요소를 포함한다 [S1], [S2], [S3]:
|
||||
* **프로세스 식별 정보 (Process Identification Information):** 프로세스의 고유 번호인 PID(Process ID)와 해당 프로세스를 생성한 부모 프로세스의 ID(PPID)를 저장한다.
|
||||
* **프로세스 상태 (Process State Information):** New, Ready, Running, Waiting, Terminated 등의 현재 프로세스 상태를 기록하며, 이는 스케줄러가 다음 동작을 결정하는 기준이 된다.
|
||||
* **프로그램 카운터 (Program Counter):** 해당 프로세스가 다음에 실행해야 할 명령어의 메모리 주소를 저장한다.
|
||||
* **CPU 레지스터 (CPU Registers):** 문맥 교환 시 CPU 내의 누산기, 인덱스 레지스터, 스택 포인터, 범용 레지스터 등의 현재 값을 임시 보존한다.
|
||||
* **CPU 스케줄링 정보 (CPU Scheduling Information):** 프로세스 우선순위 및 스케줄링 큐 포인터 정보를 포함한다.
|
||||
* **메모리 관리 정보 (Memory Management Information):** 프로세스의 메모리 베이스(Base) 및 리미트(Limit) 주소, 페이지 테이블, 세그먼트 테이블 등 프로세스 간 메모리 침범을 방지하는 정보를 저장한다.
|
||||
* **계정 및 I/O 상태 정보 (Accounting & I/O Status Information):** 소비된 CPU 시간, 계정 번호, 할당된 I/O 디바이스 목록 및 열려있는 파일의 식별자 정보를 저장한다.
|
||||
|
||||
## ⚖️ 모순 및 업데이트 (Contradictions & updates)
|
||||
소스에서 확인되지 않음. (제공된 소스들 간의 모순된 정보는 발견되지 않았으며, 모두 운영체제 표준 개념에 부합하게 설명하고 있음.)
|
||||
|
||||
## 🛠️ 적용 사례 (Applied in summary)
|
||||
현재 발견된 실제 적용 사례가 없습니다. (소스 데이터 내에 특정 파일 경로, Git 커밋 해시, 의사결정 기록 등 실제 코드 기반 적용 사례가 포함되어 있지 않습니다.)
|
||||
|
||||
## 💻 코드 패턴 (Code patterns)
|
||||
소스에 코드 예시 없음.
|
||||
|
||||
## ✅ 검증 상태 및 신뢰도
|
||||
- **상태:** draft
|
||||
- **검증 단계:** conceptual
|
||||
- **출처 신뢰도:** A
|
||||
- **신뢰 점수:** 0.95
|
||||
- **중복 검사 결과:** 신규 생성 (New discovery)
|
||||
|
||||
## 🔗 관련 문서 링크 (Related document links)
|
||||
|
||||
### 상위/유사 개념
|
||||
- [[Context Switching]] — 연결 이유: PCB에 저장된 상태 정보를 저장하고 복원하는 운영체제의 핵심 메커니즘.
|
||||
- [[Process State]] — 연결 이유: PCB 내부의 핵심 필드 중 하나로, 프로세스의 현재 라이프사이클 상태를 나타냄.
|
||||
- [[CPU Scheduling]] — 연결 이유: 스케줄러가 다음 프로세스를 선택하기 위해 PCB의 메타데이터를 참조함.
|
||||
|
||||
### 심층 후속 질문 (Deeper Research Questions)
|
||||
- 운영체제에 따라 PCB의 크기나 구체적인 저장 방식은 어떻게 달라지는가?
|
||||
- 스레드(Thread)가 추가로 도입된 현대 운영체제에서 PCB와 TCB(Thread Control Block)는 어떤 관계로 확장되는가?
|
||||
- 문맥 교환 시 발생하는 오버헤드를 최소화하기 위해 PCB 구조는 하드웨어적으로 어떻게 최적화되어 있는가?
|
||||
|
||||
### 실무 적용 맥락 (Practical Application Contexts)
|
||||
- **Implementation:** 운영체제 커널의 프로세스 테이블 및 스케줄러 알고리즘 구현.
|
||||
- **System Design:** 멀티프로그래밍 시스템 아키텍처 설계 시 메모리 보호 영역 구분.
|
||||
- **Operation / Maintenance:** 작업 관리자(Task Manager) 및 시스템 리소스 모니터링 툴을 통한 프로세스 계정 정보(Accounting Info) 분석.
|
||||
- **Learning Path:** 운영체제 기초 -> 프로세스 및 스레드 -> 프로세스 제어 블록(PCB) -> CPU 스케줄링 및 문맥 교환.
|
||||
|
||||
### 인접 주변 주제 (Adjacent Topics)
|
||||
- [[Memory Management]] — 확장 방향: 프로세스마다 할당되는 가상 메모리 공간과 PCB 내부의 Base/Limit 레지스터 간의 관계성 연구.
|
||||
- [[Process Synchronization]] — 확장 방향: PCB가 대기 상태(Waiting Queue)에 들어갈 때 자원 점유 상태와의 연관성 파악.
|
||||
|
||||
|
||||
## 🔗 지식 그래프 (Knowledge Graph)
|
||||
- **상위/루트:** [[context 이해 규칙]]
|
||||
- **관련 개념:** [[Context Switching]], [[Process State]]
|
||||
- **참조 맥락:** 운영체제가 '맥락(Context)'을 어떻게 수치화하고 저장하여 복원하는지, 즉 하드웨어 제어 관점에서의 맥락 관리 메커니즘을 이해할 때 핵심 참조 데이터가 됨.
|
||||
|
||||
## 📚 출처 (Sources)
|
||||
- [1] Process Control Block (PCB) Explained: What It Stores - Unwired Learning
|
||||
- [2] What Is Context Switching in Operating System | TestMu AI (Formerly LambdaTest)
|
||||
- [3] Difference between Swapping and Context Switching - TutorialsPoint
|
||||
|
||||
## 📝 변경 이력 (Change history)
|
||||
- 2026-07-11: Initial draft generated via Datacollector_MAC P-Reinforce engine.
|
||||
Reference in New Issue
Block a user