Files
2nd/10_Wiki/Topics/Domain_Programming/From_RawData/CPU Scheduling.md
T
Antigravity Agent 2cc6eff2dd 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>
2026-07-11 21:03:00 +09:00

9.7 KiB

id, title, category, status, verification_status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, created_at, updated_at, review_reason, merge_history, tags, raw_sources, applied_in, github_commit
id title category status verification_status canonical_id aliases duplicate_of source_trust_level confidence_score created_at updated_at review_reason merge_history tags raw_sources applied_in github_commit
cpu-scheduling CPU Scheduling Operating_System draft conceptual
CPU 스케줄링
프로세스 스케줄링
Processor Scheduling
OS Scheduling
A 0.95 2026-07-11 2026-07-11
research
context 이해 규칙
OS
Scheduling
Process Control Block (PCB) Explained: What It Stores - Unwired Learning
Difference between Swapping and Context Switching - TutorialsPoint
What Is Context Switching in Operating System | TestMu AI (Formerly LambdaTest)

CPU Scheduling

🎯 한 줄 통찰 (One-line insight)

CPU 스케줄링은 다중 작업 환경(Multitasking)에서 한정된 단일 CPU 자원을 여러 프로세스에 공정하고 효율적으로 배분하기 위해 다음으로 실행할 프로세스를 결정하는 운영체제의 핵심 의사결정 메커니즘이다.

🧠 핵심 개념 (Core concepts)

  • CPU Scheduler: 대기 큐(Ready Queue)에 있는 프로세스 중 다음으로 CPU를 점유할 프로세스를 선택하는 운영체제 구성 요소
  • Process Control Block (PCB): 프로세스 우선순위(Priority) 및 스케줄링 큐 포인터 등 CPU 스케줄러가 판단을 내리는 데 필요한 각종 스케줄링 정보를 저장하는 자료구조
  • Context Switching (문맥 교환): 스케줄러의 결정에 따라 현재 실행 중인 프로세스의 상태를 저장하고, 새롭게 스케줄링된 프로세스의 상태를 CPU에 적재하여 제어권을 넘기는 실제 동작 메커니즘
  • Scheduling Algorithms: 선점형(Preemptive) 및 비선점형(Non-Preemptive) 방식, FCFS, SJF, SRTF, HRRN, MLQ 등 자원 할당의 최적화를 위한 알고리즘 규칙 집합

🧩 추출된 패턴 (Extracted patterns)

  • 우선순위 기반 자원 할당 (Priority-based Allocation): 시스템은 프로세스의 중요도(Priority)에 따라 높은 우선순위의 프로세스를 먼저 스케줄링하여 처리 효율성을 유지한다.
  • 상태 보존과 복원의 반복 (State Save & Restore): 스케줄링을 통해 다중 작업을 수행하기 위해서는 현재 프로세스의 중단 지점(Program Counter 및 레지스터 값)을 PCB에 저장하고 복원하는 일련의 문맥 교환 패턴이 반복된다.
  • 오버헤드 억제 메커니즘: 스케줄링 알고리즘의 효율성이 높아질수록 시스템이 오직 프로세스 교체에만 리소스를 낭비하는 문맥 교환 오버헤드 빈도를 효과적으로 제어할 수 있다.

⚖️ 비교 및 선택 기준 (Comparison & decision criteria)

(소스 데이터에 기반하여 운영체제의 프로세스 실행 및 메모리 관리 측면에서 상호 보완적으로 작동하는 문맥 제어 기술 비교)

항목 (Option) 장점 단점 언제 선택
Context Switching (문맥 교환) CPU 레지스터 내의 실행 컨텍스트만 저장/복원하여 속도가 상대적으로 매우 빠름 처리 시 유용한 작업을 하지 않는 시스템 오버헤드가 발생 다중 프로세스(Multitasking) 간 효율적인 CPU 시간 공유 및 스케줄링이 필요할 때 빈번히 선택 [S2]
Swapping (스와핑) 물리적 메모리(RAM) 용량 한계를 넘어 더 많은 프로세스 수용 가능 디스크 I/O 연산이 수반되므로 처리 속도가 상대적으로 느림 활성 프로세스를 위한 메인 메모리 가용 공간이 부족하여 유휴 프로세스를 일시적으로 치워야 할 때(Memory Pressure) 선택 [S2]

📖 세부 내용 (Details)

  • 정의 및 역할: CPU 스케줄링은 다중 프로세스 또는 스레드가 단일 CPU 위에서 실행되어야 하는 멀티태스킹 환경을 지원하기 위해 설계된 운영체제의 필수 기능이다 [S2, S3]. 운영체제는 현재 대기 중이거나 활성화된 프로세스들의 요구사항을 파악하여 어느 프로세스에 CPU를 할당할지 스케줄러를 통해 결정한다 [S3].
  • PCB와의 연계성: CPU 스케줄러가 적절한 의사결정을 내리기 위해서는 각 프로세스의 식별표 역할을 하는 PCB(Process Control Block)를 참조해야 한다 [S1, S2, S3]. PCB 내의 'CPU 스케줄링 정보(CPU Scheduling Information)' 영역에는 해당 프로세스의 우선순위, 스케줄링 큐를 가리키는 포인터 및 기타 매개변수가 포함되어 있어 시스템이 스케줄링을 공정하게 처리하도록 돕는다 [S1].
  • 스케줄링 알고리즘: 프로세스를 관리하기 위해 선점형(Preemptive) 방식과 비선점형(Non-Preemptive) 방식의 CPU 스케줄링 기법이 존재한다 [S1]. 구체적인 알고리즘 기법으로는 FCFS(First-Come, First-Served), SJF(Shortest Job First), SRTF(Shortest Remaining Time First), HRRN(Highest Response Ratio Next), MLQ(Multilevel Queue) 등이 사용된다 [S1].
  • 문맥 교환(Context Switching)과의 연동: CPU 스케줄링에 의해 실행될 프로세스가 변경되면 운영체제는 반드시 문맥 교환을 수행해야 한다 [S1, S2, S3]. 이 과정에서 현재 프로세스의 프로그램 카운터(Program Counter) 및 CPU 레지스터 값들이 PCB에 저장되고, 대기 큐에서 스케줄링된 다음 프로세스의 상태 정보가 로드되어 실행이 재개된다 [S1, S3].
  • 성능 및 오버헤드 영향: 잦은 프로세스 교체는 CPU가 실제 작업 대신 정보 저장 및 로드에만 시간을 쏟게 만들어 오버헤드를 발생시킨다 [S3]. 더 나은 스케줄링 알고리즘을 구현하면 문맥 교환이 꼭 필요할 때만 일어나도록 조율할 수 있어 이러한 오버헤드를 효과적으로 감소시킬 수 있다 [S3].

⚖️ 모순 및 업데이트 (Contradictions & updates)

소스 내에서 상충되는 정보는 발견되지 않음. 모든 출처가 운영체제의 멀티태스킹을 지원하기 위한 스케줄링과 Context Switching, PCB의 유기적인 결합 관계를 동일하게 서술하고 있다.

🛠️ 적용 사례 (Applied in summary)

현재 발견된 실제 적용 사례가 없습니다. (소스에 구체적인 파일 경로, Git 커밋 해시 또는 결정 기록이 명시되지 않음)

💻 코드 패턴 (Code patterns)

소스에 코드 예시 없음.

검증 상태 및 신뢰도

  • 상태: draft
  • 검증 단계: conceptual
  • 출처 신뢰도: A
  • 신뢰 점수: 0.95
  • 중복 검사 결과: 신규 생성 (New discovery)

상위/유사 개념

  • Context Switching — 스케줄링 결정 이후 CPU 레지스터의 상태를 물리적으로 교체하는 직접적인 메커니즘
  • Process Control Block — CPU 스케줄링에 핵심적인 매개변수와 상태를 보존하는 커널 내 데이터 구조
  • Multitasking — CPU 스케줄링과 문맥 교환이 필수적으로 요구되는 다중 작업 운영체제 환경

심층 후속 질문 (Deeper Research Questions)

  • 선점형(Preemptive)과 비선점형(Non-Preemptive) 스케줄링 알고리즘은 어떤 상황적 맥락(Context)에서 각각 가장 최적의 효율을 내는가?
  • FCFS, SJF, MLQ 등 특정 CPU 스케줄링 알고리즘들이 시스템 오버헤드와 기아 상태(Starvation) 방지에 미치는 구체적 메커니즘은 무엇인가?
  • 프로세스의 우선순위(Priority)는 운영체제의 스케줄러 내에서 어떠한 기준으로 동적 재할당되는가?
  • 현대 멀티 코어 시스템 환경에서 CPU 스케줄링은 기존 단일 코어 기반 알고리즘을 어떻게 확장하여 사용하는가? (소스 외 질문)

실무 적용 맥락 (Practical Application Contexts)

  • Implementation: 운영체제 커널의 스케줄러 모듈 및 대기 큐(Ready Queue) 운영 구조 설계
  • System Design: 멀티태스킹 환경에서 다중 프로세스 처리량 극대화 및 지연 시간 단축을 위한 자원 스케줄링 아키텍처 수립
  • Operation / Maintenance: 과도한 Context Switching으로 인한 시스템 스로틀링(Throttling) 현상 모니터링 및 프로세스 큐 관리
  • Learning Path: 운영체제 기본 구조 이해 -> 프로세스 관리(PCB) -> 멀티태스킹 및 CPU 스케줄링 -> 문맥 교환(Context Switching)

인접 주변 주제 (Adjacent Topics)

  • Memory Management — 스케줄링된 프로세스들이 올바르게 동작하기 위해 연계되어야 하는 메모리 할당 및 스와핑 제어
  • Interrupt Handling — 하드웨어 및 소프트웨어적 인터럽트 발생 시 스케줄러가 개입하여 동작 흐름을 바꾸는 원리

🔗 지식 그래프 (Knowledge Graph)

  • 상위/루트: context 이해 규칙
  • 관련 개념: Context Switching, Process Control Block
  • 참조 맥락: 다중 프로세스 환경에서 한정된 연산 자원을 논리적 규칙과 우선순위에 따라 배분하여 최적의 멀티태스킹을 이끌어내기 위한 아키텍처 설계 시 참조.

📚 출처 (Sources)

📝 변경 이력 (Change history)

  • 2026-07-11: Initial draft generated via Datacollector_MAC P-Reinforce engine.