--- id: interrupt-handling title: "Interrupt Handling" category: "Operating_System" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["인터럽트 처리", "인터럽트 핸들링", "Interrupt", "인터럽트", "Interrupt Handler"] duplicate_of: "" source_trust_level: "B" confidence_score: 0.85 created_at: 2026-07-11 updated_at: 2026-07-11 review_reason: "" merge_history: [] tags: ["research", "context 이해 규칙"] raw_sources: ["[S1] Difference between Swapping and Context Switching - TutorialsPoint", "[S2] What Is Context Switching in Operating System | TestMu AI", "[S3] Process Control Block (PCB) Explained: What It Stores - Unwired Learning"] applied_in: [] github_commit: "" --- # [[Interrupt Handling]] ## 🎯 한 줄 통찰 (One-line insight) 운영체제에서 인터럽트 처리는 프로세스 실행 중 발생하는 외부 요청을 해결하기 위해 현재 상태를 저장(Context Switching)하고 핸들러로 제어권을 넘겼다가, 처리가 완료되면 중단된 지점부터 정확히 실행을 재개하는 핵심 메커니즘이다. ## 🧠 핵심 개념 (Core concepts) - **컨텍스트 스위칭 트리거(Context Switching Trigger):** 인터럽트는 스케줄러나 자발적 양보(yielding)와 더불어 운영체제가 컨텍스트 스위칭을 수행하도록 촉발하는 주요 원인 중 하나이다 [S1, S2]. - **프로세스 상태 저장(State Saving):** 실행 중인 프로세스에서 인터럽트가 발생하면, 시스템은 프로그램 카운터(PC)와 레지스터 값 등 현재의 실행 컨텍스트를 프로세스 제어 블록(PCB)에 안전하게 저장한다 [S2, S3]. - **핸들러로의 제어권 전환(Transfer of Control):** 디스크로부터의 데이터 요청과 같이 인터럽트가 발생하면, 컨텍스트 스위칭을 통해 해당 인터럽트를 효율적으로 처리할 수 있는 하드웨어 컴포넌트나 핸들러(Handler)로 시스템의 제어권이 넘어간다 [S2]. - **실행 복구(Resume Execution):** 인터럽트 문제가 성공적으로 해결된 후, 시스템은 레지스터에 저장해두었던 상태를 다시 불러와 중단되었던 정확한 지점부터 프로세스의 실행을 재개한다 [S2]. ## 🧩 추출된 패턴 (Extracted patterns) - **Interrupt ➔ Save State ➔ Handle ➔ Restore State 루프:** 실행 중인 프로세스 일시 중지 및 상태(Context) 저장 ➔ 인터럽트 핸들러를 통한 문제 해결 ➔ 이전 상태 로드 및 프로세스 재개의 일관된 라이프사이클을 따른다 [S2]. ## 📖 세부 내용 (Details) 운영체제 환경에서 다중 작업(Multitasking)과 자원 배분을 최적화하기 위해 인터럽트 핸들링(Interrupt Handling)은 필수적으로 컨텍스트 스위칭(Context Switching)을 수반한다 [S1, S2]. - 프로세스가 중앙처리장치(CPU)를 점유하여 작업을 수행하고 있을 때 디스크 데이터 요청과 같은 이벤트로 인해 인터럽트가 발생하면, 시스템은 즉시 동작에 개입한다 [S2]. - 이때 운영체제는 현재 실행 중인 프로세스의 상태를 소실하지 않기 위해, 프로그램 카운터와 CPU 레지스터 값 등을 해당 프로세스의 '프로세스 제어 블록(PCB)'에 기록하여 저장한다 [S2, S3]. - 상태 저장이 완료되면 제어권은 인터럽트를 직접적으로 해결할 수 있는 특정 하드웨어 요소나 인터럽트 핸들러(Handler)로 넘어가게 된다 [S2]. - 핸들러에 의해 인터럽트 상황이 조치 완료된 후, 운영체제는 PCB에 저장되어 있던 기존 프로세스의 컨텍스트를 다시 CPU 레지스터에 로드(Load)하며, 프로세스는 멈추었던 바로 그 지점부터 아무런 데이터 손실 없이 다시 작업을 재개(Resume)하게 된다 [S2]. 이를 통해 단일 CPU는 여러 프로세스의 요청, 입출력(I/O) 대기, 그리고 각종 인터럽트를 유기적이고 안정적으로 처리할 수 있다 [S2]. ## ⚖️ 모순 및 업데이트 (Contradictions & updates) 소스에서 확인되지 않음. (제공된 소스 내에서 인터럽트 처리에 관해 상충하거나 기존 상식을 엎는 모순된 정보는 존재하지 않는다.) ## 🛠️ 적용 사례 (Applied in summary) 현재 발견된 실제 적용 사례가 없습니다. (소스 내에서 인터럽트 핸들링이 적용된 구체적인 파일 경로, Git 커밋 해시, 또는 의사결정 기록 등은 확인되지 않음.) ## 💻 코드 패턴 (Code patterns) 소스에 코드 예시 없음. ## ✅ 검증 상태 및 신뢰도 - **상태:** draft - **검증 단계:** conceptual - **출처 신뢰도:** B - **신뢰 점수:** 0.85 - **중복 검사 결과:** 신규 생성 (New discovery) ## 🔗 관련 문서 링크 (Related document links) ### 상위/유사 개념 - [[Context Switching]] — 인터럽트를 처리하기 위해 운영체제가 프로세스 상태를 저장하고 복구하는 핵심 기반 메커니즘. - [[Process Control Block (PCB)]] — 인터럽트 발생 시 중단된 프로세스의 실행 컨텍스트(레지스터, PC 등)가 임시로 보관되는 데이터 구조. ### 심층 후속 질문 (Deeper Research Questions) - 하드웨어 인터럽트와 소프트웨어 인터럽트는 구체적으로 시스템에서 어떻게 다르게 취급되는가? (소스에 관련 정보가 부족합니다.) - 인터럽트 핸들러가 CPU의 제어권을 획득하는 세부적인 커널 레벨의 과정은 무엇인가? (소스에 관련 정보가 부족합니다.) - 잦은 인터럽트 처리로 인해 발생하는 컨텍스트 스위칭 오버헤드를 최소화하기 위한 구체적인 스케줄링 전략은 무엇인가? - 동시에 여러 개의 인터럽트가 발생했을 때 운영체제는 어떠한 기준으로 우선순위를 결정하는가? (소스에 관련 정보가 부족합니다.) ### 실무 적용 맥락 (Practical Application Contexts) - **Implementation:** 소스에서 확인되지 않음 - **System Design:** 다중 프로세스 및 스레드 환경에서 CPU 자원을 블로킹 없이 할당하기 위한 운영체제 스케줄러 설계의 기초 원리로 작용. - **Operation / Maintenance:** 소스에서 확인되지 않음 - **Learning Path:** 운영체제(OS)의 컨텍스트 스위칭 메커니즘과 프로세스 상태 관리(PCB)를 이해하는 기초 학습 과정. ### 인접 주변 주제 (Adjacent Topics) - [[CPU Scheduling]] — 인터럽트 처리 후 Ready 큐에 있는 프로세스 중 어떤 프로세스를 다음으로 실행할지 결정하는 과정으로 확장. ## 🔗 지식 그래프 (Knowledge Graph) - **상위/루트:** [[context 이해 규칙]] - **관련 개념:** [[Context Switching]], [[Process Control Block]] - **참조 맥락:** 운영체제가 중단 없는 다중 작업을 지원하고, 하드웨어 이벤트(I/O, 인터럽트)를 효율적으로 해결하는 메커니즘을 설계할 때 참조됨. ## 📚 출처 (Sources) - [S1] Difference between Swapping and Context Switching - TutorialsPoint (URL: https://www.tutorialspoint.com/article/difference-between-swapping-and-context-switching) - [S2] What Is Context Switching in Operating System | TestMu AI (Formerly LambdaTest) (URL: https://www.testmuai.com/blog/context-switching/) - [S3] Process Control Block (PCB) Explained: What It Stores - Unwired Learning (URL: https://unwiredlearning.com/blog/process-control-block) ## 📝 변경 이력 (Change history) - 2026-07-11: Initial draft generated via Datacollector_MAC P-Reinforce engine.