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 such assistance. 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.
Dissertation (MSc (Computer Science))--University of Pretoria, 2007.