Author :
Gujarati, Arpan ; Cerqueira, Felipe ; Brandenburg, Bjorn B.
Abstract :
Contemporary multiprocessor real-time operating systems, such as VxWorks, LynxOS, QNX, and real-time variants of Linux, allow a process to have an arbitrary processor affinity, that is, a process may be pinned to an arbitrary subset of the processors in the system. Placing such a hard constraint on process migrations can help to improve cache performance of specific multi-threaded applications, achieve isolation among components, and aid in load-balancing. However, to date, the lack of schedulability analysis for such systems prevents the use of arbitrary processor affinities in predictable hard real-time applications. In this paper, it is shown that job-level fixed-priority scheduling with arbitrary processor affinities is strictly more general than global, clustered, and partitioned job-level fixed-priority scheduling. The Linux push and pull scheduler is studied as a reference implementation and techniques for the schedulability analysis of hard real-time tasks with arbitrary processor affinity masks are presented. The proposed tests work by reducing the scheduling problem to ``global-like´´ sub-problems to which existing global schedulability tests can be applied. Schedulability experiments show the proposed techniques to be effective.
Keywords :
Linux; resource allocation; scheduling; Linux; LynxOS; QNX; VxWorks; arbitrary processor affinity; job-level fixed-priority scheduling; load balancing; multiprocessor real-time operating systems; multithreaded application; process migration; push-and-pull scheduler; schedulability analysis; schedulability experiment; Dynamic scheduling; Linux; Real-time systems; Schedules; Scheduling algorithms;