Last edit: 05-03-17 Graham Wideman
|Observing the Timing Behavior of Applications in Windows 95/98/NT Using LabVIEW|
99-06-16 Article created
99-07-01 Extensive revisions based on correspondence with NI
If you are writing applications (in LabVIEW or other environments on a multitasking OS) that are attempting timing precision in the 1's or even 100's of milliseconds, and occasional delays of 10's or 100's of milliseconds could be a problem... these articles may be useful to you.
Many data acquisition tasks involve sampling data or controlling hardware with various degrees of timing precision. Some tasks need to be carried out on the scale of seconds or minutes, and can be performed by software without special techniques in programming. Others need attention at the microsecond level, and call for specialized hardware, or a dedicated processor with a realtime operating system or kernel.
But of particular interest here are the tasks that call for timing precision in the milliseconds to hundreds-of-milliseconds range. How successfully can these be programmed in LabVIEW or other environments (such as C++ or Delphi) , given an operating system such as Windows 95/98/NT that controls scheduling your application's code?
Timing behavior in a pre-emptive multitasking system such as Windows 95/98 or NT is a very complicated business, subject to many variables. Intrinisically, if you are running your application on a system that's juggling multiple tasks, some of which you don't control (like the operating system's tasks), then you can't guarantee that your application is going to do things exactly when you ask it to. So the point of this study was to learn something about the scope of this problem, and to understand what variables might impact it.
Although this study employs LabVIEW, and is relevant to tasks of particular interest to LabVIEW users, much of it concerns issues that impact any application running under Win 95/98/NT. None of the issues raised by this study should be interpreted as a criticism of LabVIEW in particular!
Is the problem significant enough that you should be concerned? That depends whether the applications you develop can tolerate occasional random delays of 100s of milliseconds.
[Up to: Data Acquisition Topics]