콘텐츠로 바로가기

Real-Time Systems & Deterministic Scheduling

엄격한 시간 제약 조건 아래에서 예측 가능한 동작을 보장하는 RTOS 아키텍처와 결정론적 스케줄링 이론을 다루는 학습 노드입니다.

sys.entry
M

Me

hyunyoun's Blog

posts6 min read

1. Overview

실시간 시스템 및 결정론적 스케줄링(Real-Time Systems & Deterministic Scheduling, RTS)은 시스템의 결과뿐만 아니라 그 결과가 도출되는 시점(Time)의 정확성이 중요한 환경을 다룹니다.

자율 주행, 의료 기기, 공장 자동화 등에서 '너무 늦은 정답'은 오답보다 치명적일 수 있습니다. 학습자는 RTOS(FreeRTOS, Zephyr, QNX)의 커널 구조를 이해하고, RMS(Rate Monotonic) 및 EDF(Earliest Deadline First) 스케줄링 알고리즘을 통해 마감 시간(Deadline)을 수학적으로 보장하는 기법을 익힙니다. 이를 통해 예측 불가능한 지연(Jitter)을 최소화하는 고신뢰 결정론적 시스템을 설계합니다.

2. Scope & Boundaries

In-Scope

  • Timeliness Foundations: Hard vs. Soft 실시간 시스템 분류 및 결정론(Determinism) 기초
  • Scheduling Theory: RMS(Rate Monotonic), EDF(Earliest Deadline First) 및 가망성(Schedulability) 검증
  • Kernel Mechanics: 우선순위 기반 선점형 스케줄링, 우선순위 전도(Priority Inversion) 방어
  • Timing Analysis: WCET(최악 실행 시간) 정적/동적 분석 및 지터(Jitter) 물리 분석

Out-of-Scope

  • General OS Tuning: 범용 OS(Windows/macOS)의 처리량(Throughput) 최적화 일반론
  • Network Latency: 통신 스택의 지연 시간 (08. Network & Communication 영역으로 위임)

Boundaries

  • 본 노드는 '평균 성능'이 아닌 '최악의 경우에도 마감 시간을 보장하는 하위 계층의 결정론적 시퀀싱'에 집중합니다.

3. Counterexample

  • 단순히 빠른 하드웨어를 사용하는 것은 RTS 학습이 아닙니다. 저속 프로세서에서도 특정 작업이 **최악의 시나리오(Worst Case)**에서 지정된 마감 시간 내에 종료됨을 **스케줄링 가망성 테스트(Schedulability Test)**를 통해 증명할 수 있어야 학습이 완료된 것입니다.

4. Prerequisites

  • 운영체제 및 시스템 메카니즘 (Recommended): 프로세스/스레드/동기화의 기본 개념이 선행되어야 합니다. (03. Operating Systems)
  • 하드웨어-소프트웨 인터페이스 (Basic): 타이머 하드웨어와 인터럽트 전파 메커니즘 이해가 필요합니다. (05. HSI Physics)

5. Learning Map

  1. Timeliness Foundations: 시간 제약 조건의 정의와 시스템 결정론(Determinism)의 의미를 익힙니다.
  2. Scheduling Theory: 수학적 모델을 통해 다중 태스크의 실행 순서를 배치하고 보장하는 법을 배웁니다.
  3. RTOS Internals: 상용/오픈소스 RTOS 커널의 코드를 분석하며 지연 유발 요소를 식별합니다.
  4. Reliability Analysis: WCET 측정과 정적 분석을 통해 시스템의 안전성을 최종 검증합니다.

6. Learning Topics

Basic

Core: 실시간성 기초와 결정론 (Real-Time Basics & Determinism)

  • Why to Learn: 모든 작업이 정해진 시간 내에 오차 없이 수행되어야 하는 고신뢰 시스템의 요구사항을 정의하기 위함입니다.
  • What to Learn:
    • Hard-RT (생명/재산 직결) vs Soft-RT (QoS 지향) 분류
    • 태스크 주기 모델: Periodic, Aperiodic, Sporadic 정의
    • 지터(Jitter)와 결정론적(Deterministic) 동작의 물리적 의미
  • How to Learn:
    • 간트 차트(Gantt Chart)를 이용해 시간 흐름에 따른 태스크 배치 수기 실습
    • 일반 PC와 임베디드 보드의 타이머 정밀도 비교 관측
  • Implement: 마감 시간 위반(Deadline Miss) 발생 시 로그를 남기는 기초 감지 로직

Core: 실시간 스케줄링 이론 (Scheduling Theory)

  • Why to Learn: 자원 경합 상황에서도 주요 태스크의 실행권을 수학적으로 보장하기 위해서입니다.
  • What to Learn:
    • RMS(Rate Monotonic Scheduling)의 우선순위 할당 규격과 이용률 상한
    • EDF(Earliest Deadline First)의 동적 우선순위 최적성 프로파일링
    • 우선순위 전도(Priority Inversion) 현상과 상속(Inheritance)/상한(Ceiling) 규칙
  • How to Learn:
    • 태스크 셋의 주기와 실행 시간을 기반으로 스케줄링 가망성(Schedulability) 계산 실습
    • 세마포어 경합 시 고우선순위 태스크가 차단되는 시나리오 도식화
  • Implement: 우선순위 기반 선점형 스케줄러의 문맥 교환(Context Switch) 모사 코드

Practical

Core: RTOS 커널 구조와 활용 (RTOS Internals & Practice)

  • Why to Learn: 실제 산업 현장에서 쓰이는 RTOS의 내부 동작을 조작하여 시스템 응답성을 제어하기 위함입니다.
  • What to Learn:
    • 커널 틱(Tick) 인터럽트와 시스템 타이머 물리 아키텍처
    • FreeRTOS 등 주요 RTOS의 태스크/큐/뮤텍스 API 활용
    • 인터럽트 지연(Latency) 및 컨텍스트 스위칭 오버헤드 측정
  • How to Learn:
    • RTOS 기반 프로젝트에서 논블로킹 통신(Message Queue) 설계 실습
    • 오실로스코프 또는 논리 분석기를 이용한 입출력 응답 시간 프로파일링
  • Implement: FreeRTOS를 이용한 실시간 센서 데이터 수집 및 제어 태스크 세트

Advanced

Core: 최악 실행 시간 분석과 검증 (WCET & Verification)

  • Why to Learn: 통계적 평균이 아닌 물리적 최악 상황에서도 시스템이 멈추지 않음을 증명하기 위해서입니다.
  • What to Learn:
    • WCET(Worst Case Execution Time) 정적 분석 방법론
    • 파이프라인 예측, 캐시 히트율 등이 타이밍 불확실성에 미치는 영향
    • ISO 26262 등 안전 무결성 수준(SIL)과 타이밍 검토 프로세스
  • How to Learn:
    • 정적 분석 도구를 활용하여 특정 알고리즘의 실행 시간 상한 도출
    • 멀티코어 환경에서의 태스크 파티셔닝(Partitioning) 지연 분석
  • Implement: WCET 프로파일링 정보를 기반으로 한 실시간 부하 모니터링 대시보드 기초

7. Terminology

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core/misused/legacy)
Jitter (지터) 작업의 실행 시간이나 응답 시점이 매 주기마다 미세하고 불규칙하게 변하는 시간적 오차입니다. 기본 지표 Determinism Latency 지연 시간 자체와 혼동함 P1:CS2023/Real-time core
Priority Inversion 저우선순위 태스크가 공유 자원을 점유하여 고우선순위 태스크 실행을 가로막는 결함입니다. 추천 결함 분석 Priority Cap Deadlock 단순 지연으로만 인식 Industry Docs core
WCET (최악 실행 시간) 코드나 시스템이 물리적으로 가질 수 있는 실행 시간의 이론적 최상위 한한값입니다. 실무 안전성 검증 Schedulability Average ET 측정된 최대값으로만 오해 SWEBOK Quality core
Preemption (선점) 더 높은 우선순위 태스크가 나타났을 때 실행 중인 태스크를 중단시키고 제어권을 뺏는 행위입니다. 기본 스케줄링 RR / Priority Blocking 강제 종료로 오해하기 쉬움 P1:CS2023/OS core

8. References

Primary References

Secondary References

  • [Real-Time Systems] Jane W. S. Liu — Classic academic textbook for scheduling.
  • [Hard Real-Time Computing Systems] Giorgio C. Buttazzo — Predictable scheduling focus.

Industry References

  • [FreeRTOS Reference Manual] — Real-world open source RTOS implementation.
  • [ISO 26262 Standard] — Functional Safety for Automotive systems (Timing part).

9. Final Checklist

Primary Checklist

  • 시스템의 마감 시간(Deadline)을 식별하고 위반 시의 물리적 리스크를 정량화할 수 있는가? (P1, P5)
  • 특정 태스크 셋에 대해 RMS 기반의 가망성 테스트를 수행하여 스케줄링 가능 여부를 판별 가능한가? (P1)

Secondary Checklist

  • 우선순위 역전 문제를 예방하기 위한 하드웨어/소프트웨어적 프로토콜을 시스템 설계에 적용했는가?
  • '평균 성능'이 아닌 '최악의 케이스 지터'를 기준점으로 삼아 스케줄링 시뮬레이션을 수행했는가?

Industry Checklist

  • WCET 분석을 통해 실무 수준의 코드 상한 시간을 도출하고 안전성을 최종 검토할 수 있는가? (SFIA)
  • RTOS 커널의 스케줄러 틱 설정을 하드웨어 타이머 사양에 맞춰 최적화할 수 있는가?