Design and implementation of a high resolution soft real-time timer
There are several timing mechanisms on presently available commercial operating
systems. Two operating system platforms that immediately come to mind are the
Microsoft Windows environment (the WIN32 platform) and its UNIX-based
counterpart, Linux (with its POSIX standard). The timing mechanisms under these
operating systems are adequate for use in conventional multimedia applications
currently run on these platforms. However, the requirements of such applications are
not as stringent within a real-time environment.
The goal of this dissertation was to determine if it would be possible to find a
workaround for applications where current timing mechanisms in the WIN32 and
POSIX environments do not meet the requirements of real-time. Before a proposed
workaround is presented, a clarification is given as to what is meant by the notion of
a timer. Attention is also given to the fact that its accuracy is quantified in terms of its
resolution. It is acknowledged that real-time extensions to both the Windows and
Linux operating systems exist. However, it was decided to find a solution without
Real-time is also defined and sub-classified into hard- and soft real-time,
differentiating environments that have precise constraints (hard real-time) on timing
as opposed to environments where demands on accuracy and efficiency are less
stringent (soft real-time). The timer that was ultimately implemented had to conform
to the latter form of real-time.
This dissertation therefore aims to provide a solution in a soft real-time environment.
The current timing mechanisms are discussed and their performance is quantified.
Their deficiency in measuring a reliable periodic interval of 1 ms is highlighted. From
this qualification of timers stems the requirements for the soft real-timer timer. The
areas in which improvement is sought are stated.
The design and implementation of a soft real-time timer that meets these
requirements is presented and its performance at various frequencies is quantified. A
comparison is given between the timer and the existing timing mechanisms as well
as comparison between its implementation under both Windows and Linux.
Additionally, the viability of the proposed timer compared to a proven hard real-time
timer is presented.
Finally it is recognised that a timer would not be useful if it was not effective in a
practical environment. Consequently, the timer’s performance under the same load
that it would experience in a practical soft real-time environment is investigated as
well. The dissertation concludes with a discussion on the compatibility of this timer
with expected advances in future Central Processing Unit (CPU) technologies.
Supervisor: Prof D G Kourie
Department of Computer Science
M.Sc Computer Science
University of Pretoria
Page 7 of 111