콘텐츠로 이동

실시간 스케줄링 (Real-Time Scheduling)

Jan 27, 2026

실시간 스케줄링은 태스크가 정해진 데드라인 내에 반드시 완료되도록 보장하는 스케줄링입니다. 일반 스케줄링은 평균 성능 최적화에 집중하지만, 자동차 ABS나 항공기 제어에서는 데드라인 미스가 치명적입니다.

유형데드라인 미스 시예시
경성 실시간 (Hard)시스템 실패ABS 브레이크, 항공 제어
연성 실시간 (Soft)품질 저하 (허용)멀티미디어 스트리밍, VoIP
이벤트 ──▶ [인터럽트 지연] ──▶ [디스패치 지연] ──▶ 태스크 실행
  • 인터럽트 지연: 인터럽트 발생 ~ ISR 시작까지 (현재 명령어 완료, 상태 저장)
  • 디스패치 지연: 스케줄러 결정 ~ 프로세스 실행까지 (커널 프로세스 선점, 자원 해제)
  • 주기(p): 태스크가 반복되는 간격
  • 처리 시간(t): CPU 버스트 시간
  • 데드라인(d): 완료 기한
  • 관계: 0 ≤ t ≤ d ≤ p

정적 우선순위: 주기가 짧을수록 높은 우선순위. 정적 우선순위 알고리즘 중 최적입니다.

P1: p=50, t=20 P2: p=100, t=35
CPU 이용률 = 20/50 + 35/100 = 0.75 (75%)
P1 P2 P1 P2 P1 idle
├────────┼────────────┼──────┼────┼────────┼────┤
0 20 50 70 75 100 120

Earliest Deadline First (EDF) 스케줄링

섹션 제목: “Earliest Deadline First (EDF) 스케줄링”

동적 우선순위: 데드라인이 가장 가까운 태스크 우선. 이론적으로 100% CPU 이용률 가능합니다.

Rate-MonotonicEDF
우선순위정적동적
최대 CPU 이용률~69% (N→∞)100% (이론상)
구현 복잡도낮음높음
오버로드 시예측 가능 (낮은 우선순위 미스)예측 불가 (연쇄 미스)

새 태스크 수락 전 스케줄 가능성을 검사하고, 데드라인 보장 불가 시 태스크를 거부합니다.

  • 경성: 심장 박동기 — 정확한 타이밍 필수
  • 연성: 유튜브 영상 — 가끔 버퍼링 허용