Adaptive Scheduling For Master/Slave UNIX(R) Multiprocessors.
21 September 1988
In master/slave UNIX(R) multiprocessors, certain system calls, which we refer to as kernel calls, can execute only on the master processor. All other work can execute on the master processor or on any slave processor. As a result, the kernel calls are serialized, which (barring more fundamental changes to UNIX) is necessary since kernel calls from different processes are not independent; for example, the processes might update the same table. In practice, this restriction can lead to serious performance problems: saturation of the master processor, starvation of the slave processors and excessive context switching. A simple model of UNIX processes and master/slave processors is presented. The model exposes some intrinsic limitations of master/slave systems. It leads us to a new, adaptive scheduling algorithm for assigning processes to processors, which can dramatically improve the system's processing power.