Real-Time Software Systems

Often people distinguish between hard, firm, and soft real-time systems, but all have deadlines and missing those deadlines has consequences from system failure down to degraded operation.

The two main architectural choices for real-time software systems are rate monotonic and event-driven systems. The advantage of rate monotonic systems is found in the ability to create a mathematical model of the system and show under what circumstances it meets its requirements. The disadvantage is having the developers think in terms of time slices so that tasks can be spread over consecutive iterations of a rate group.

Event-driven systems lend themselves well to model-driven software development tools. The system looks like a collection of active objects where each has an event queue and (optionally) a state machine for processing events. Nominally events are processed as soon as they enter the queue, but a highly loaded system might see slowdowns and queues filling up.

Introduction