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,95 @@
|
||||
---
|
||||
id: operating-system
|
||||
title: "Operating System"
|
||||
category: "Architecture"
|
||||
status: "draft"
|
||||
verification_status: "conceptual"
|
||||
canonical_id: ""
|
||||
aliases: ["OS", "운영체제", "시스템 소프트웨어", "Operating System"]
|
||||
duplicate_of: ""
|
||||
source_trust_level: "A"
|
||||
confidence_score: 0.90
|
||||
created_at: 2026-07-11
|
||||
updated_at: 2026-07-11
|
||||
review_reason: ""
|
||||
merge_history: []
|
||||
tags: ["research", "context 이해 규칙", "Operating System", "Context Switching", "PCB"]
|
||||
raw_sources: ["What Is Context Switching in Operating System | TestMu AI (Formerly LambdaTest)", "Difference between Swapping and Context Switching - TutorialsPoint", "Process Control Block (PCB) Explained: What It Stores - Unwired Learning"]
|
||||
applied_in: []
|
||||
github_commit: ""
|
||||
---
|
||||
|
||||
# [[Operating System]]
|
||||
|
||||
## 🎯 한 줄 통찰 (One-line insight)
|
||||
운영체제에서 맥락(Context)이란 멀티태스킹 환경에서 프로세스나 스레드의 실행 상태를 저장하고 복원하여 단일 CPU 자원을 효율적으로 공유하게 해주는 핵심 데이터 구조 및 메커니즘이다.
|
||||
|
||||
## 🧠 핵심 개념 (Core concepts)
|
||||
* **[[Context Switching]]**: 운영체제가 여러 프로세스나 스레드를 관리하기 위해 현재 실행 중인 프로세스의 상태를 저장하고, 다음으로 실행할 프로세스의 저장된 상태를 복원하여 CPU 제어권을 넘기는 기술.
|
||||
* **[[PCB (Process Control Block)]]**: 운영체제가 특정 프로세스에 대한 모든 정보(프로세스 상태, 프로그램 카운터, CPU 레지스터 등)를 추적하고 저장하는 커널 메모리 영역의 핵심 데이터 구조(TCB라고도 불림).
|
||||
* **[[Swapping]]**: 물리적 메모리(RAM) 공간을 확보하기 위해 메모리와 보조 저장장치(디스크) 사이에서 프로세스 전체 또는 세그먼트를 이동시키는 메모리 관리 기법.
|
||||
|
||||
## 🧩 추출된 패턴 (Extracted patterns)
|
||||
* **상태 보존 및 복원 패턴 (State Save/Restore)**: 프로세스 스위칭 시 운영체제는 현재 프로세스의 실행 위치(Program Counter)와 CPU 레지스터 값을 [[PCB]]에 스냅샷처럼 저장하고, 새로운 프로세스가 이전의 정확한 지점부터 재개될 수 있도록 데이터를 다시 로드한다.
|
||||
* **오버헤드 발생 (Overhead Generation)**: [[Context Switching]] 중에는 CPU가 실제 유용한 작업을 수행하지 않고 프로세스 상태를 저장하고 로드하는 데만 시간을 소비하므로 순수한 오버헤드가 발생하며, 스위칭 빈도가 잦아질수록 시스템 성능이 저하된다.
|
||||
|
||||
## ⚖️ 비교 및 선택 기준 (Comparison & decision criteria)
|
||||
| 항목 (Option) | 장점 | 단점 | 언제 선택 |
|
||||
|---|---|---|---|
|
||||
| Context Switching | 빠른 속도(주로 CPU 레지스터 내에서 동작), 프로세스가 메모리에 유지되므로 멀티태스킹 구현에 필수적임 | 잦은 전환 시 시스템 성능 저하(오버헤드) 발생 | 멀티태스킹, CPU 스케줄링, 우선순위 인터럽트 처리 시 |
|
||||
| Swapping | RAM 공간이 부족할 때 유휴 프로세스를 디스크로 옮겨 가용 메모리 공간 확보 가능 | 디스크 I/O 작업이 수반되어 속도가 상대적으로 매우 느림 | 가용 메모리가 심각하게 부족하여 활성 프로세스를 처리할 여력이 없을 때 |
|
||||
|
||||
## 📖 세부 내용 (Details)
|
||||
* **Context Switching의 정의와 필요성**: 운영체제에서 컨텍스트 스위칭(Context Switching)은 단일 CPU 환경에서 여러 프로세스나 스레드가 시스템 자원을 공유하고 멀티태스킹을 수행하기 위해 필수적인 기술이다 [S1]. 이를 통해 현재 실행 중인 프로세스의 상태를 저장하고 나중에 정확히 동일한 지점부터 다시 시작할 수 있도록 한다 [S1]. 만약 이 상태를 저장하지 않으면 스위칭 시 일시 중지된 프로세스는 자신의 진행 상황을 영영 잃어버리게 된다 [S1].
|
||||
* **PCB(Process Control Block)의 역할**: 프로세스 식별자(PID), 프로세스 상태(Ready, Running 등), 다음 실행할 명령어 주소를 가리키는 프로그램 카운터(Program Counter), 계산 및 임시 데이터를 저장하는 CPU 레지스터, CPU 스케줄링 정보, 메모리 한계 레지스터 정보를 포함하는 메모리 관리 정보, 리소스 사용 통계를 담은 회계 정보(Accounting Information), 그리고 열린 파일이나 할당된 I/O 기기 목록을 담은 I/O 상태 정보 등은 모두 PCB라는 데이터 구조에 저장된다 [S1, S3]. 이 PCB는 사용자가 직접 접근할 수 없는 운영체제의 보호된 커널 메모리 영역에 저장된다 [S3].
|
||||
* **Context Switching의 트리거**: 컨텍스트 스위칭은 주로 데이터 디스크 요청 등 하드웨어 문제를 처리하기 위한 **인터럽트(Interrupts)**, 프로세스 간 CPU 사용을 교대해야 하는 **멀티태스킹(Multitasking)**, 그리고 제한된 자원에 접근하기 위해 모드를 변경하는 **커널/사용자 스위치(Kernel/User Switch)** 상황에서 발생한다 [S1].
|
||||
* **Swapping과의 명확한 차이**: Swapping은 주 메모리(RAM)와 보조 저장장치(디스크) 간에 프로세스의 코드, 데이터, 스택을 통째로 이동시키는 것으로 디스크 I/O에 의존해 속도가 매우 느리며 메모리 부족(Memory pressure) 시에만 제한적으로 발생한다 [S2]. 반면 Context Switching은 CPU 레지스터와 프로그램 카운터 등의 '실행 문맥'만을 저장 및 복원하므로 빠르며, 스케줄링에 의해 매우 빈번하게 일어난다 [S2].
|
||||
* **시스템 성능에 미치는 영향(Overhead)**: 컨텍스트 스위칭 중에는 CPU가 실제 태스크를 실행하지 않고 상태를 저장/로드하는 일에만 시간을 소비하게 되므로 시스템 성능에 오버헤드로 작용한다 [S1, S3]. 실행 중인 프로세스 숫자가 많아져 스위칭이 너무 자주 발생하면 시스템의 전반적인 효율성이 감소할 수 있다 [S1]. 이를 최소화하기 위해서는 효율적인 메모리와 더 빠른 CPU 레지스터를 도입하거나 불필요한 전환을 막는 최적화된 스케줄링 알고리즘을 구현해야 한다 [S1].
|
||||
|
||||
## ⚖️ 모순 및 업데이트 (Contradictions & updates)
|
||||
소스에서 확인되지 않음.
|
||||
|
||||
## 🛠️ 적용 사례 (Applied in summary)
|
||||
현재 발견된 실제 적용 사례가 없습니다.
|
||||
|
||||
## 💻 코드 패턴 (Code patterns)
|
||||
소스에 코드 예시 없음.
|
||||
|
||||
## ✅ 검증 상태 및 신뢰도
|
||||
- **상태:** draft
|
||||
- **검증 단계:** conceptual
|
||||
- **출처 신뢰도:** A
|
||||
- **신뢰 점수:** 0.90
|
||||
- **중복 검사 결과:** 신규 생성 (New discovery)
|
||||
|
||||
## 🔗 관련 문서 링크 (Related document links)
|
||||
|
||||
### 상위/유사 개념
|
||||
- [[Context Switching]] — CPU 제어권을 전환하기 위해 문맥을 저장하고 복원하는 메커니즘
|
||||
- [[Process Control Block]] — 운영체제가 프로세스의 문맥 정보를 관리하는 핵심 자료 구조
|
||||
- [[Swapping]] — 프로세스의 물리적 위치를 메모리와 디스크 간 이동시키는 기법
|
||||
|
||||
### 심층 후속 질문 (Deeper Research Questions)
|
||||
- CPU 스케줄러는 PCB에 저장된 어떤 특정 우선순위 파라미터를 기반으로 다음 프로세스를 선택하는가?
|
||||
- 스레드 간 컨텍스트 스위칭은 프로세스 간 스위칭에 비해 구체적으로 어떤 부분의 처리가 생략되어 더 빠른가?
|
||||
- 오버헤드를 줄이기 위한 현대 운영체제의 구체적인 CPU 스케줄링 알고리즘 모델에는 무엇이 있는가?
|
||||
|
||||
### 실무 적용 맥락 (Practical Application Contexts)
|
||||
- **Implementation:** 소스에서 확인되지 않음.
|
||||
- **System Design:** 단일 CPU 기반 멀티태스킹 아키텍처 설계 시, 프로세스 개수와 스레드 규모 증가에 따른 스위칭 오버헤드를 구조적으로 고려하여 설계
|
||||
- **Operation / Maintenance:** 서버 성능 저하 및 응답 지연 발생 시, 운영체제 레벨의 컨텍스트 스위칭 발생 빈도를 모니터링하여 병목 지점 확인
|
||||
- **Learning Path:** 운영체제 기초 -> 프로세스 및 스레드 관리 -> 컨텍스트 스위칭 원리 -> 메모리 관리 및 스와핑
|
||||
|
||||
### 인접 주변 주제 (Adjacent Topics)
|
||||
- [[CPU Scheduling]] — 다음 실행 프로세스를 큐에서 선택하여 컨텍스트 스위칭을 유발하는 시스템 의사결정 방식
|
||||
- [[Memory Management]] — PCB의 메모리 제한 정보 및 가상 메모리 스와핑을 포괄하는 운영체제의 주요 기능
|
||||
|
||||
## 🔗 지식 그래프 (Knowledge Graph)
|
||||
- **상위/루트:** [[context 이해 규칙]]
|
||||
- **관련 개념:** [[Context Switching]], [[Process Control Block]]
|
||||
- **참조 맥락:** 운영체제의 멀티태스킹 구현 방식과 CPU/메모리 오버헤드 최적화 개념을 이해할 때 참조됨.
|
||||
|
||||
## 📚 출처 (Sources)
|
||||
- [S1] What Is Context Switching in Operating System | TestMu AI (Formerly LambdaTest)
|
||||
- [S2] Difference between Swapping and Context Switching - TutorialsPoint
|
||||
- [S3] Process Control Block (PCB) Explained: What It Stores - Unwired Learning
|
||||
Reference in New Issue
Block a user