2cc6eff2dd
- Raw_Data 자동 정리 산출물이 각 도메인 From_RawData/ 로 편입, 00_INDEX 연결 갱신 - 컴퓨터_이사_체크리스트.md 추가 (두뇌-상대 경로 규약 v2.2.304 — 새 컴퓨터에서 바꿀 절대 경로는 localBrainPath 1개) - Astra 세션 산출물(에피소드 기억·기능 인벤토리) 갱신 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
8.1 KiB
8.1 KiB
---
id: multitasking
title: "Multitasking"
category: "Operating_System"
status: "draft"
verification_status: "conceptual"
canonical_id: ""
aliases: ["멀티태스킹", "다중 작업", "다중 처리", "Multiprogramming"]
duplicate_of: ""
source_trust_level: "B"
confidence_score: 0.90
created_at: 2026-07-11
updated_at: 2026-07-11
review_reason: ""
merge_history: []
tags: ["research", "context 이해 규칙"]
raw_sources: ["Difference between Swapping and Context Switching - TutorialsPoint", "What Is Context Switching in Operating System | TestMu AI (Formerly LambdaTest)", "Process Control Block (PCB) Explained: What It Stores - Unwired Learning"]
applied_in: []
github_commit: ""
---
# [[Multitasking]]
## 🎯 한 줄 통찰 (One-line insight)
멀티태스킹은 단일 CPU 환경에서 다수의 프로세스가 실행 상태를 저장하고 복원하는 맥락 전환(Context Switching)을 통해 여러 작업이 동시에 실행되는 것과 같은 환상(Illusion)을 제공하는 운영체제의 핵심 메커니즘이다.
## 🧠 핵심 개념 (Core concepts)
* **[[Context Switching]] (맥락 전환):** 멀티태스킹을 가능하게 하는 메커니즘으로, CPU가 다른 프로세스나 스레드로 전환할 때 현재 실행 상태를 저장하고 다음 프로세스의 상태를 불러오는 과정이다.
* **[[Process Control Block]] (PCB):** 각 프로세스의 실행 맥락(프로그램 카운터, CPU 레지스터 등)을 저장하고 추적하기 위해 운영체제가 사용하는 데이터 구조체로, 멀티태스킹 중 프로세스 전환에 필수적이다.
* **[[CPU Scheduling]] (CPU 스케줄링):** 단일 CPU 자원을 여러 프로세스가 효율적이고 공정하게 공유할 수 있도록 실행 순서와 시간을 분배하는 기법이다.
## 🧩 추출된 패턴 (Extracted patterns)
* **상태 저장 및 복원 패턴:** CPU 리소스를 공유하기 위해 기존 프로세스의 문맥을 PCB에 저장하고 대기 중인 다음 프로세스의 문맥을 적재하는 순환적 교대 실행 구조.
* **병렬 실행의 착각(Illusion of parallel execution):** 프로세스 간의 전환 과정이 밀리초(ms) 단위로 매우 신속하게 이루어짐으로써, 물리적으론 단일 CPU임에도 불구하고 사용자는 여러 프로그램이 동시에 가동되는 것으로 인지함.
## ⚖️ 비교 및 선택 기준 (Comparison & decision criteria)
| 항목 (Option) | 장점 | 단점 | 언제 선택 |
|---|---|---|---|
| **Multitasking (맥락 전환 기반)** | CPU 레지스터 내에서 빠르게 작동하며 다중 작업과 CPU 자원 공유를 가능하게 함 [S1], [S2] | 상태를 저장하고 불러오는 시간이 CPU의 유용한 작업을 방해하는 순수 오버헤드로 작용함 [S1], [S3] | 여러 프로세스가 동시에 실행되어야 하고 빠른 시스템 응답성이 요구될 때 [S2] |
| **Swapping (스와핑)** | 물리적 메모리가 감당할 수 없는 프로세스들을 디스크로 옮겨 유휴 메모리 공간을 확보할 수 있음 [S1] | 디스크 I/O 연산이 수반되어 처리 속도가 매우 느림 [S1] | 현재 실행 중인 활성 프로세스 대비 가용 메인 메모리(RAM)가 부족할 때 [S1] |
## 📖 세부 내용 (Details)
* **멀티태스킹의 정의와 필요성:** 멀티태스킹은 단일 프로세서(CPU) 환경에서 다수의 프로세스 혹은 스레드가 실행될 수 있도록 자원을 분배하는 기능이다 [S1], [S2]. 시스템 내 여러 소프트웨어 애플리케이션이 서로를 차단하지 않고 원활하게 작동하기 위해서는 운영체제가 각 프로세스에 CPU 시간을 적절히 할당해야만 한다 [S2].
* **맥락 전환(Context Switching)의 역할:** 멀티태스킹 환경이 기능하기 위해 운영체제는 맥락 전환이라는 기법을 사용한다 [S1], [S2]. 이는 우선순위가 높은 작업이 도착하거나 입출력(I/O) 대기 시간이 필요할 때, 현재 프로세스의 문맥(프로그램 카운터 및 레지스터 값 등)을 **PCB(Process Control Block)**에 저장하고 대기 중인 다른 프로세스의 문맥을 CPU에 로드하는 과정이다 [S2], [S3].
* **동시성의 환상 구현:** 두 개 이상의 프로그램(예: 텍스트 편집기와 음악 플레이어)이 구동될 때, 운영체제는 맥락 전환을 밀리초(milliseconds) 단위의 찰나의 순간에 수행한다 [S3]. 이로 인해 사용자 입장에서는 마치 두 프로그램이 병렬적으로 동시 실행(parallel execution)되는 것과 같은 착각을 경험하게 된다 [S3].
* **멀티태스킹의 성능적 영향 (오버헤드):** 멀티태스킹은 시스템 반응성을 유지하고 다중 프로세스를 원활하게 수행한다는 긍정적 측면이 있으나, 맥락 전환 과정에서 실제 연산 작업을 하지 않고 상태를 저장/적재하는 데 소비되는 시간은 순수한 오버헤드(Overhead)로 작용한다 [S2], [S3]. 따라서 활성화된 프로세스의 수가 너무 많으면 맥락 전환이 빈번히 발생해 시스템 전반의 효율성이 저하될 수 있다 [S2].
## ⚖️ 모순 및 업데이트 (Contradictions & updates)
소스 내에서 상충되는 정보나 모순은 확인되지 않음.
## 🛠️ 적용 사례 (Applied in summary)
현재 발견된 실제 적용 사례가 없습니다.
## 💻 코드 패턴 (Code patterns)
소스에 코드 예시 없음.
## ✅ 검증 상태 및 신뢰도
- **상태:** draft
- **검증 단계:** conceptual
- **출처 신뢰도:** B
- **신뢰 점수:** 0.90
- **중복 검사 결과:** 신규 생성 (New discovery)
## 🔗 관련 문서 링크 (Related document links)
### 상위/유사 개념
- [[Context Switching]] — 멀티태스킹이 작동하기 위해 프로세스 상태를 교체하는 필수 핵심 기술.
- [[Process Control Block]] — 멀티태스킹 시 프로세스의 맥락 정보를 물리적으로 보관하는 필수 데이터 구조.
- [[CPU Scheduling]] — 멀티태스킹 환경에서 어떤 프로세스에게 CPU를 배분할지 결정하는 정책.
### 심층 후속 질문 (Deeper Research Questions)
- 멀티태스킹 환경에서 맥락 전환 오버헤드를 최소화하기 위한 구체적인 스케줄링 알고리즘의 동작 방식은 무엇인가?
- 스레드(Thread) 간 맥락 전환은 프로세스(Process) 간 맥락 전환에 비해 왜 더 빠른가?
- 멀티태스킹 중 인터럽트(Interrupt)가 발생했을 때 커널 모드 전환과 맥락 전환은 어떠한 연관성을 가지는가?
### 실무 적용 맥락 (Practical Application Contexts)
- **Implementation:** 소스에서 확인되지 않음.
- **System Design:** 다중 작업 처리를 위한 CPU 자원 분배 및 상태 저장 데이터 구조(PCB) 아키텍처 설계.
- **Operation / Maintenance:** 과도한 프로세스 동시 실행으로 야기되는 잦은 맥락 전환 오버헤드 진단 및 성능 튜닝.
- **Learning Path:** 운영체제 기본 구조 이해 -> 프로세스 및 메모리 관리 -> 맥락 전환 메커니즘 -> 멀티태스킹 구현.
### 인접 주변 주제 (Adjacent Topics)
- [[Swapping]] — 한정된 메모리 자원 상황에서 보조 기억 장치를 활용해 멀티태스킹을 지원하는 보완적 메모리 기법.
- [[Multithreading]] — 프로세스 내부의 실행 단위를 쪼개어 멀티태스킹의 범위를 코드 흐름 수준으로 확대한 개념.
## 🔗 지식 그래프 (Knowledge Graph)
- **상위/루트:** [[context 이해 규칙]]
- **관련 개념:** [[Context Switching]], [[Process Control Block]]
- **참조 맥락:** 다중 프로세스 환경에서 운영체제가 어떻게 한정된 CPU 자원 아래 실행 맥락을 제어하고 전환하는지 기초 원리를 파악할 때 참조.
## 📚 출처 (Sources)
- [S1] Difference between Swapping and Context Switching - TutorialsPoint
- [S2] What Is Context Switching in Operating System | TestMu AI (Formerly LambdaTest)
- [S3] Process Control Block (PCB) Explained: What It Stores - Unwired Learning
## 📝 변경 이력 (Change history)
- 2026-07-11: Initial draft generated via Datacollector_MAC P-Reinforce engine.