Real Time programming is a bit of a Black Art. Compared to other types of programming, there are relatively few authoritative texts and few college programming courses available that describe the common patterns for solving problems such as these:
Ensuring that deadlines are met, and/or doing something reasonable when deadlines are not met.
Ensuring that periodic tasks (possibly with very short periods) run periodically.
Ensuring that high-priority tasks are able to interrupt low-priority tasks, avoiding deadlocks and priority inversions.
Optimizing the scheduling of tasks.
Managing resources (memory, I/O, etc.) such that operations take a predictable bounded amount of time.
Handling real-time system startup/shutdown/restarts/resets/reboots.
Please list such patterns here, along with links to their descriptions.
Click on this page's title for a list of all pages in this category.
Doug Schmidt and his team have described several patterns for concurrent, parallel, and distributed systems, many of which are designed to also address real-time constraints: www.cs.wustl.edu
See "Patterns for Time-Triggered Embedded Systems" by Michael J. Pont. ISBN:0201331381
This book uses pattern form to explain how to build controllers for things like microwave ovens and clocks. The computers for these devices are very small, with a few hundred bytes of RAM. It is a fascinating book! -- Ralph Johnson
See original on c2.com