![]() |
Home |
|
Real-Time SystemsReal-time systems satisfy a completely different set of requirements. A real-time system must never be overloaded. As soon as no more processing power is available, real-time response cannot be sustained. For example, a situation with real-time requirements might be: a meter generates data every second. The data must be collected, processed, and stored by the computer. If processing a data record requires more than a second on the target computer, the system is overloaded and real-time response cannot be sustained. Real-time systems are not concerned about "fairness". Tasks have priorities which must be obeyed strictly. A task with a high priority can take away CPU time from another task with a lower priority at any time without "being fair" to the other task. Since overloading is ruled out, tasks having low priorities will sooner or later also receive CPU time. Real-time systems are furthermore characterized by the requirement that they have to react to events within a predetermined - usually short - time span. External events are processed using interrupts whenever possible. Thus, the most stringent real-time requirements apply to interrupt handlers. Therefore, real-time systems must have a low interrupt latency (the time between the hardware interrupt signal and execution of the first statement of the interrupt handler). For the task response time, the cases of cooperative and preemptive scheduling must be distinguished. In preemptive scheduling, the task response time to interrupts is mainly the interrupt latency and the task switch time. In cooperative scheduling, the maximum time span between two kernel calls is added.
|