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:
Antigravity Agent
2026-07-11 21:03:00 +09:00
parent 468322768c
commit 2cc6eff2dd
162 changed files with 15836 additions and 14 deletions
@@ -0,0 +1,99 @@
---
id: process-swapping
title: "Process Swapping"
category: "Architecture"
status: "draft"
verification_status: "conceptual"
canonical_id: ""
aliases: ["Swapping", "프로세스 스와핑", "스왑", "Process Swap"]
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 이해 규칙", "Operating System", "Memory Management"]
raw_sources: ["[S1] Difference between Swapping and Context Switching - TutorialsPoint", "[S2] why it is called context switch? why not Process Swap or Swapping,cause resources are same - Stack Overflow"]
applied_in: []
github_commit: ""
---
# [[Process Swapping]]
## 🎯 한 줄 통찰 (One-line insight)
물리적 메모리(RAM)의 한계를 극복하기 위해 비활성 프로세스 전체를 메인 메모리와 보조 기억장치(디스크) 간에 이동시켜 가용 공간을 최적화하는 메모리 관리 기법이다.
## 🧠 핵심 개념 (Core concepts)
* **Memory Management (메모리 관리):** 물리적 메모리보다 더 많은 프로세스를 수용할 수 있도록, 유휴 상태의 프로세스를 디스크로 임시 이동시켜 메인 메모리의 공간을 확보하는 최적화 기술.
* **Granularity & Scope (단위 및 범위):** CPU 레지스터와 프로그램 카운터 정보만 이동하는 [[Context Switching]]과 달리, 프로세스를 구성하는 코드, 데이터, 스택 세그먼트 등 프로세스 전체를 이동 단위로 삼음.
* **Disk I/O Overhead (디스크 I/O 오버헤드):** 디스크 스토리지로의 물리적인 데이터 전송이 수반되므로 동작 속도가 상대적으로 매우 느리며, 메모리 부족(Memory pressure) 시에만 트리거되어 덜 빈번하게 발생함.
## 🧩 추출된 패턴 (Extracted patterns)
* **Memory Pressure Trigger:** 메인 메모리의 가용 공간이 활성 프로세스를 모두 수용하기에 부족할 때 발동하여, 당장 실행되지 않는 프로세스를 디스크로 'Swap Out' 시키는 패턴.
* **Legacy of Partition Naming:** 현대의 페이징(Paging) 기법이 등장하기 이전 시대에 전체 프로세스를 디스크로 옮기던(Swapped) 관행에서 기원하였으며, 유닉스(UNIX) 시스템의 '스왑 파티션(Swap partition)'이라는 명칭에 그 역사적 패턴이 남아 있음.
## ⚖️ 비교 및 선택 기준 (Comparison & decision criteria)
| 항목 (Option) | 장점 | 단점 | 언제 선택 |
|---|---|---|---|
| **Process Swapping** | 물리적 메모리의 용량 한계를 초과하여 시스템에 더 많은 프로세스를 유지하고 수용할 수 있음 [S1]. | 디스크 I/O 작업이 수반되어 속도가 매우 느리며, 프로세스가 다시 복귀할 때까지 실행이 멈추는 오버헤드가 높음 [S1]. | 메모리 부족 현상(Memory pressure)이 발생하여, 유휴 프로세스를 디스크로 옮겨 물리적 메모리 공간을 강제로 확보해야 할 때 [S1]. |
| **Context Switching** | 프로세스를 메모리에 그대로 둔 채 CPU 레지스터 정보만 교체하므로 속도가 매우 빠르며, 원활한 멀티태스킹을 가능하게 함 [S1]. | 과도하게 빈번히 발생할 경우, CPU가 실제 연산 대신 상태 저장 및 복원에만 시간을 소모하여 성능 저하 유발 [S1]. | 여러 프로세스가 하나의 CPU를 공유하기 위해 시분할 스케줄링을 하거나, I/O 대기 및 인터럽트 처리가 필요할 때 [S1]. |
## 📖 세부 내용 (Details)
* **Swapping의 정의와 목적:** 스와핑(Swapping)은 프로세스 전체 또는 그 세그먼트를 메인 메모리(RAM)와 보조 기억장치(디스크) 사이에서 이동시키는 메모리 관리 기법이다 [S1]. 이 기법의 주된 목적은 물리적 메모리의 한계를 극복하는 것으로, 비활성 상태의 프로세스를 디스크에 임시로 저장하여 더 많은 프로세스를 시스템이 수용할 수 있도록 돕는다 [S1].
* **동작 원리와 특징:** 스와핑은 주로 시스템의 사용 가능한 메모리가 부족해지는 상황(Memory shortage)에서 트리거된다 [S1]. 특정 프로세스의 코드, 데이터, 스택 세그먼트 전체를 포함하여 이동시키기 때문에(Scope & Granularity), 이 과정에서 발생하는 디스크 I/O 연산으로 인해 처리 속도는 상대적으로 느리고 오버헤드가 높다 [S1]. 디스크로 스왑 아웃(Swap Out)된 프로세스는 다시 메인 메모리로 스왑 인(Swap In)되어 돌아올 때까지 실행이 일시적으로 중단된다 [S1].
* **Context Switching과의 차이점:** 프로세스 스와핑은 실행 흐름을 바꾸는 [[Context Switching]]과 명칭 상 혼동될 수 있으나 완전히 다른 개념이다 [S2]. 스와핑은 메모리 공간 확보를 위해 프로세스를 RAM과 디스크 사이에서 물리적으로 이동시키는 반면, 컨텍스트 스위칭은 CPU 자원 공유와 멀티태스킹을 위해 프로세스를 메모리에 그대로 유지한 채 CPU 레지스터와 프로그램 카운터(PC) 등의 실행 상태(Execution Context)만을 전환한다 [S1, S2]. 따라서 스와핑은 메모리 압박 시에만 간헐적으로 발생하고 디스크 지연으로 인해 느린 반면, 컨텍스트 스위칭은 스케줄링 알고리즘에 따라 매우 빈번하고 빠르게 발생한다 [S1].
* **역사적 배경:** 과거 페이징(Paging) 기술이 존재하지 않던 시절에는 전체 프로세스를 디스크로 통째로 옮기는 스와핑이 주된 메모리 확보 방식이었다 [S2]. 이로 인해 유닉스(Unix)와 같은 운영체제에서는 이를 처리하는 디스크 영역을 '페이지 파티션'으로 명칭을 갱신하지 않고, 여전히 '스왑 파티션(swap partition)'이라는 용어로 부르고 있다 [S2].
## ⚖️ 모순 및 업데이트 (Contradictions & updates)
소스에서 확인되지 않음. (제공된 소스는 Process Swapping과 Context Switching의 차이를 모순 없이 일관되게 정의하고 있음)
## 🛠️ 적용 사례 (Applied in summary)
현재 발견된 실제 적용 사례가 없습니다. (단지 UNIX 운영체제에서 '스왑 파티션'이라는 명칭을 사용한다는 역사적 사실이 언급될 뿐, 특정 소스 코드 파일 경로나 커밋 해시 등은 소스에서 확인되지 않음)
## 💻 코드 패턴 (Code patterns)
소스에 코드 예시 없음.
## ✅ 검증 상태 및 신뢰도
- **상태:** draft
- **검증 단계:** conceptual
- **출처 신뢰도:** A
- **신뢰 점수:** 0.95
- **중복 검사 결과:** 신규 생성 (New discovery)
## 🔗 관련 문서 링크 (Related document links)
### 상위/유사 개념
- [[Context Switching]] — 연결 이유: CPU 레지스터의 실행 문맥만 교체하는 멀티태스킹 기법으로, Swapping과 대비되는 핵심 개념.
- [[Process Control Block]] — 연결 이유: 프로세스의 상태와 메모리 정보를 저장하여 Context Switching 및 프로세스 관리 시 기준이 되는 구조체.
### 심층 후속 질문 (Deeper Research Questions)
- 현대 운영체제에서 Paging 기술과 Swapping 기법은 어떻게 상호보완적으로 사용되는가?
- Swap Out된 프로세스가 다시 Swap In될 때, 이전과 동일한 메모리 주소를 할당받아야만 하는가?
- 잦은 Swapping으로 인해 발생하는 스래싱(Thrashing) 현상은 시스템 전반에 어떤 치명적인 영향을 미치는가?
- 모바일 운영체제(예: Android, iOS)에서도 데스크톱과 같은 전통적인 디스크 Swapping 기법이 사용되는가?
### 실무 적용 맥락 (Practical Application Contexts)
- **Implementation:** 시스템의 Swap 파티션 크기 설정 및 가상 메모리 할당 전략 구성.
- **System Design:** Out Of Memory (OOM) 상황을 대비한 메모리 관리 정책 및 방어적 스케줄러 설계.
- **Operation / Maintenance:** 서버 성능 모니터링 시 디스크 I/O 병목 및 Thrashing 발생 여부를 통한 메모리 증설 지표 확인.
- **Learning Path:** 운영체제 프로세스 관리 체계 파악 -> 가상 메모리 및 디스크 I/O 메커니즘 학습 -> 시스템 성능 최적화 및 튜닝.
### 인접 주변 주제 (Adjacent Topics)
- [[Virtual Memory]] — 확장 방향: Swapping을 포괄하여 물리적 메모리보다 큰 주소 공간을 제공하는 전반적인 메모리 가상화 기술.
- [[Paging]] — 확장 방향: 프로세스 전체가 아닌 일정한 크기의 페이지(블록) 단위로 메모리를 분할하여 관리하는 현대적 기법.
## 🔗 지식 그래프 (Knowledge Graph)
- **상위/루트:** [[context 이해 규칙]]
- **관련 개념:** [[Context Switching]], [[Virtual Memory]]
- **참조 맥락:** 고부하 시스템의 메모리 관리 전략을 설계하거나 멀티태스킹 중 발생하는 디스크 병목(I/O Overhead) 원인을 분석할 때 참조.
## 📚 출처 (Sources)
- [S1] Difference between Swapping and Context Switching - TutorialsPoint
- [S2] why it is called context switch? why not Process Swap or Swapping,cause resources are same - Stack Overflow
## 📝 변경 이력 (Change history)
- 2026-07-11: Initial draft generated via Datacollector_MAC P-Reinforce engine.