About this course
Engineer software that must be correct and on time: real-time scheduling, safety-critical design, fault tolerance, and the reliability and certification practices defense systems demand.
Built a mission-critical real-time control system on FreeRTOS and an ARM Cortex-M target, implementing rate-monotonic scheduling with proven schedulability, priority-inheritance synchronization, triple-modular redundancy with voting, and a DO-178C-style requirements traceability and structural-coverage evidence package.
Expected outcomes
- Develop and integrate hard real-time tasks on FreeRTOS and Zephyr, perform schedulability analysis with the Rate Monotonic utilization bound n(2^(1/n)-1) and EDF optimality, and validate timing behavior with Tracealyzer kernel-aware trace visualization on STM32 or Raspberry Pi Pico hardware.
- Implement inter-task communication via bounded lock-free ring buffers and POSIX priority-inheritance mutexes, identify and bound priority inversion scenarios using the Priority Ceiling Protocol, and write ISR-safe device driver routines with deferred task notifications.
- Profile worst-case execution time on target hardware with logic analyzer timing instrumentation and GDB with JTAG; verify task-set schedulability and jitter bounds using QEMU simulation before hardware deployment.
- Model and verify the two-task system in UPPAAL timed automata to prove deadline satisfaction and freedom from deadlock; apply SPIN Promela model checking to verify deadlock freedom of the ring buffer and mutex synchronization protocol.
- Define safety requirements with FMEA and FTA for IEC 61508 SIL and DO-178C DAL integrity levels, review code against MISRA C guidelines using PC-lint or Polyspace, and produce a requirements traceability matrix with structural coverage evidence.
- Design a Time-Triggered Architecture schedule for deterministic inter-task communication and evaluate the trade-offs among RM, EDF, and TT-Ethernet for mission-critical real-time deployments.
Key topics
- Real-time scheduling
- Safety-critical software
- Fault tolerance & reliability
- Certification standards
Theoretical foundations
The concepts and results this course rests on.
- hard vs soft real-time semantics: deadline miss consequences, determinism requirements, and jitter budget analysis
- worst-case execution time (WCET) analysis: control-flow analysis, cache effects, pipeline hazards, and WCET measurement methods
- Rate Monotonic Scheduling: fixed-priority assignment, Liu and Layland utilization bound n(2^(1/n)-1), and the schedulability test
- Earliest Deadline First scheduling: dynamic priority assignment, hyperperiod computation, and EDF optimality on uniprocessors
- priority inversion and the priority ceiling protocol: unbounded inversion scenario, PIP, PCP, and POSIX priority-inheritance mutex
- inter-task communication patterns: message queues, shared memory with mutex/semaphore, event flags, and zero-copy IPC
- interrupt latency and ISR design: non-blocking ISR contract, deferred work via task notifications, and interrupt nesting
- Time-Triggered Architecture and TT-Ethernet: offline schedule tables, time-slot allocation, TDMA, and deterministic communication
- safety integrity levels and certification: IEC 61508 SIL 1-4, DO-178C DAL A-E, safety case structure, FMEA, and FTA
- formal verification with model checking: LTL/CTL temporal logic specifications, state-space explosion countermeasures, and timed automata model checkers for real-time scheduling
Prerequisites
Course-specific prerequisites:
- Operating systems
- Embedded or systems programming
- Software engineering
Weekly schedule 13 weeks · lecture + practice
Students use AI assistants and vibe-coding to write and refactor RTOS task code for FreeRTOS or Zephyr, generate scheduling and synchronization scaffolding, and translate response-time and utilization analysis into checkable code. They interact with toolchains and analyzers through assistants and MCP servers that expose the build, the target board, schedulability tools, and coverage tools, asking the model to set up a task set or instrument timing measurements. AI generates requirements-based tests, fault-injection scenarios, and traceability scaffolding for a DO-178C-style evidence package, and helps analyze structural coverage and timing results. Because the code is safety-critical, students rigorously review and independently verify every AI suggestion against timing budgets, schedulability proofs, and the safety requirements.
Student project
Teams design and implement a two-task hard real-time control system on an RTOS-capable hardware target (STM32 or Raspberry Pi Pico with FreeRTOS or Zephyr): a high-frequency sensor-acquisition task and a lower-frequency control-law task communicating through a lock-free ring buffer, scheduled with Rate Monotonic assignment, instrumented for WCET measurement with logic analyzer and GDB with JTAG, and formally verified for deadlock freedom using UPPAAL timed automata and SPIN model checking.
Requirements
- Build a working system, not a set of disconnected exercises.
- Be original: a new system that solves a real problem, not a re-implementation of a tutorial or course demo.
- Show real depth: real data, real users or realistic load, and engineering trade-offs that are measured rather than assumed.
- Carry one running project from specification to a deployed, defensible result across the whole term.
- Work in a team of three or four and defend the design at each of the three presentations (weeks 5, 8, and 13).
Example projects
Assessment & grading
Grading is project-based, with no written exam. Teams of three or four present one running project three times.
| Component | What it covers | Weight |
|---|---|---|
| Project · Specification | Presentation 1 (week 5): problem, objectives, and architecture | 20% |
| Project · Interim | Presentation 2 (week 8): the working system demonstrated live | 30% |
| Project · Final | Presentation 3 (week 13): end-to-end demo with oral defense | 50% |
Tools & platforms
- FreeRTOS: open-source real-time kernel for embedded targets
- Zephyr RTOS: scalable real-time OS for embedded systems
- Ada and SPARK: language and toolset for high-integrity software
- Cheddar: open-source real-time scheduling analysis tool
- STM32 or similar ARM Cortex-M target board
- GNAT and the Ada toolchain for certified development
- AbsInt aiT: static worst-case execution time analysis
- LDRA or VectorCAST: structural coverage and unit testing for DO-178C
- GoogleTest: unit testing of critical components
- Git and a configuration-management workflow for traceability
- Logic analyzer and oscilloscope for timing measurement
- Wireshark with time-triggered protocols for network analysis
Free online courses
Existing free, video-based courses this course can build on, for self-study or as a teaching basis.
- UniversityReal-Time Systems (IIT Kharagpur)
Primary literature
Seminal works for advanced study.
- PaperScheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment
- PaperPriority Inheritance Protocols: An Approach to Real-Time Synchronization
- PaperThe Byzantine Generals Problem
- PaperBasic Concepts and Taxonomy of Dependable and Secure Computing
- PaperApplying New Scheduling Theory to Static Priority Pre-emptive Scheduling
References
Books and resources link to an online or publisher page.
- TextbookReal-Time Systems and Programming Languages, 4th Edition
- TextbookHard Real-Time Computing Systems, 3rd Edition
- DocumentationDO-178C Software Considerations in Airborne Systems and Equipment Certification
- DocumentationFreeRTOS Documentation
- DocumentationARINC 653 Part 1 Required Services
- TextbookSafety-Critical Computer Systems
- DocumentationZephyr Project Documentation
Role in each concentration
| Concentration | Role |
|---|---|
| Intelligent Software Systems | Elective |
| Networking & Cyber Security | Elective |
| AI & Robotics | Elective |
| AI and Quantum Computing for Finance | Elective |
| Immersive Systems & Game Development | Elective |
| Defense Technologies & Autonomous Systems | Core · Semester 2 |