Real-Time Operating System |
Real-time operating systems originated with the need to solve two main types of applications: event response, and closed loop control systems. Event response applications require a response to a stimulus in a determined amount of time, an example of such a system is an automotive airbag system. Closed loop control systems continuously process feedback in order to adjust an output; an automotive cruise control system is an example of a closed-loop control system. Both of these types of systems require the completion of an operation within a specific deadline. This type of performance is referred to as determinism.Real-time systems are sometimes classified as "soft" or "hard". Soft real-time typically means the utility of a system is inversely proportionate to how long it has been since a deadline is missed. For example, when pressing a cell phone button to answer an incoming call, the connection must be established soon after the button has been pressed. However, the deadline is not mission-critical and small delays can be tolerated. Hard real-time systems are those in which the utility of a system becomes zero in the event of a missed deadline. An automotive engine control unit (ECU) must process incoming signals and calculate spark plug timing within a deadline. If the deadline is missed, the engine will fail to operate correctly. The usefulness of a task after a deadline is missed is depends on whether the system is a soft real-time or a hard real-time system, as shown in Figure 1.
Operating systems such as Microsoft Windows and Mac OS provide an excellent platform for developing and running your non-critical measurement and control applications. However, because these operating systems are designed for general purpose use, they are not the ideal platform for running applications that require deterministic performance or extended uptime.
General-purpose operating systems are optimized to run a variety of applications simultaneously, ensuring that all applications receive some processing time. These operating systems must also respond to interrupts from peripherals such as the mouse and keyboard. The user has limited control regarding how these tasks are handled by the processor. As a result, high-priority tasks can be preempted by lower priority tasks, making it impossible to guarantee a response time for your critical applications.
In contrast, real-time operating systems give users the ability to prioritize tasks so that the most critical task can always take control of the processor when needed. This property enables you to program an application with predictable results.
Real-time operating systems are required when the processor is involved in operations such as closed loopcontrol and time-critical decision making. These applications require timely decisions to be made based on incoming data. For example, an I/O device samples an input signal and sends it directly to memory. Then, the processor must analyze the signal and send the appropriate response to the I/O device. In this application, the software must be involved in the loop; therefore, you need a real-time operating system to guarantee response within a fixed amount of time. In addition, applications requiring extended run-times or stand alone operation are often implemented with real-time operating systems.
Data Acquisition Any Bus. Any Signal. |
HOME |
NI CompactDAQ |
C Series Modules |
USB Data Acquisition |
NI-DAQmx driver software |
NI Vision |
Real-Time OS |
Real-Time Control |