Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

Achieving Determinism with LabVIEW Real-Time

Deterministic performance is defined as the ability to complete a given operation within a fixed amount of time. The LabVIEW Real-Time engine achieves deterministic performance by allowing critical operations to preempt the execution of lower-priority tasks. The scheduling mechanism used by LabVIEW Real-Time is described below.

You develop LabVIEW Real-Time applications in Windows on a host computer, and then download and execute your code on a dedicated real-time target. LabVIEW Real-Time targets include the LabVIEW Real-Time engine and an embedded real-time operating system. As the embedded VI executes, the LabVIEW Real-Time engine ensures determinism through a combination of round robin and preemptive scheduling.

When tasks of equal priority request access to the processor at the same time, LabVIEW Real-Time uses round robin scheduling. With this mechanism, the processor executes one task for one time slice (10 milliseconds) and then switches to the next task for another time slice. This method of execution continues until all tasks are complete.

When tasks of unequal priority request access to the processor at the same time, LabVIEW Real-Time uses preemptive scheduling. Preemptive scheduling allows the processor to immediately stop executing the lower priority task when a higher priority tasks requests time with the processor.

In LabVIEW, priority levels are set for each VI in the VI Properties window.