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
- Model real-time tasks with periods, deadlines, and worst-case execution times
- Apply rate-monotonic and earliest-deadline-first scheduling and prove schedulability
- Perform response-time analysis and reason about worst-case execution time
- Analyze and bound priority inversion and apply priority inheritance and ceiling protocols
- Design fault-tolerant systems using redundancy, voting, and error detection
- Quantify reliability, availability, and safety with dependability models
- Build hard real-time software on a real-time operating system
- Map software development to certification objectives such as DO-178C
- Evaluate a design against safety requirements with hazard and failure analysis
- Design and defend a complete mission-critical real-time system as a team project
Key topics
- Real-time scheduling
- Safety-critical software
- Fault tolerance & reliability
- Certification standards
Theoretical foundations
The concepts and results this course rests on.
- the periodic task model with periods, deadlines, and worst-case execution times
- rate-monotonic optimality and the Liu and Layland utilization bound
- exact response-time analysis and the schedulability test
- priority inversion and the priority inheritance and ceiling protocols
- the dependability taxonomy of faults, errors, and failures
- redundancy, voting, and the Byzantine agreement problem
- reliability and safety modeling with fault trees and FMEA
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
Each team builds one mission-critical real-time control or monitoring system across the term on a real-time operating system and target hardware. The project grows weekly from periodic scheduled tasks to a fault-tolerant system with proven schedulability, bounded blocking, reliability analysis, and a DO-178C-style traceability and verification evidence package. The same artifact is presented at the specification, interim, and final milestones.
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 to read for graduate-level depth.
- 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 |