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
- Timeliness Foundations: 시간 제약 조건의 정의와 시스템 결정론(Determinism)의 의미를 익힙니다.
- Scheduling Theory: 수학적 모델을 통해 다중 태스크의 실행 순서를 배치하고 보장하는 법을 배웁니다.
- RTOS Internals: 상용/오픈소스 RTOS 커널의 코드를 분석하며 지연 유발 요소를 식별합니다.
- 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) 발생 시 로그를 남기는 기초 감지 로직
Recommended
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
8. References
Primary References
- [P1] CS2023 - ES/Real-time Systems — Scheduling and timing analysis.
- [P2] SWEBOK - Software Engineering Process — Quality and runtime constraints.
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 커널의 스케줄러 틱 설정을 하드웨어 타이머 사양에 맞춰 최적화할 수 있는가?