Portability is an important attribute of real-time operating systems because their target hardware environments routinely vary from special purpose processors to parallel machines to distributed execution environments. In this paper, we address the issue of operating systems portability by development of a real-time threads package based on the Mach cthreads interface.Real-time threads have been implemented on standard Unix platforms and on a 32-node BBN Butterfly multiprocessor. In contrast to cthreads, the schedulability of real-time threads may be determined dynamically at the time of threads creation. In addition, any scheduling guarantees made at thread creation time are maintained when threads communicate or cooperate using the package's other primitives.
Real-Time Operating SystemsPortability is an important attribute of real-time operating systems[4] because their target hardware routinely varies from special purpose processors to parallel machines[10] to distributed execution environments [18]. Unfortunately, portability is difficult to attain due to common requirements of predictability and high efficiency for real-time kernels and application programs [14]. As a result, implementors are often forced to repeat the implementation of lowlevel operating [14,16,15] or runtime system (e.g., for Ada runtime system implementations) functionality for each target machine.In this paper, we address the issue of operating system portability for parallel real-time applications by development of a real-time threads package based on Mach cthreads [5,11]. This package has been implemented on standard Unix platforms (on SUN OS TM) and on a 32-node BBN Butterfly multiprocessor, and it has been used as a portable basis for the construction of parallel real-time applications and multiprocessor operating system kernels, such as the CHAOS arc system described in several recent publications [6,12,15].The essential idea underlying real-time threads is that the schedulability of a thread should be 54