Real Time - Mach Timers: Exporting Time to the User
Stefan Savage, Hideyuki Tokuda · 1993
The current CMU Mach 3.0 microkernel exports simple timestamp and delay abstractions through host get time() and a timeout parameter to mach msg(). While this is sufficient for many purposes, it does not provide the precision or generality required for a variety of realtime applications. In this paper we describe extensions to CMU's Mach 3.0 which provide users with flexible time-based synchronization and timestamp services. Additionally, we will describe how timing and scheduling services are integrated to allow real-time applications to handle timing faults. 1 Introduction Modern operating systems are expected to provide services to allow application programs to synchronize with the passage of time. The BSD UNIX interface includes gettimeofday(), sleep(), signal() and select() to provide this functionality[7]. Similarly, Mach 3.0 exports host get time() and a timeout parameter to mach msg()[8]. While these timing services are sufficient for a broad range of general purpose applicati...