Changes in the use of multiprocessors are placing new demands on operating system schedulers. This article describes some of the new challenges posed by parallel and concurrent applications, and introduces techniques developed by the Mach project to meet these challenges. An overview of the technique of timesharing scheduling and a description of Mach are also included.
This article describes work to incorporate processor allocation and control into the Mach operating system. The design approach divides the implementation into three components: (1)basic mechanisms implemented in the kernel, (2)long term policy implemented in a server, and (3)optional user implementation of short term policy. Isolating long term policy in a server yields the advantage of policy-mechanism separation while avoiding the drawbacks encountered in previous applications of this principle to multiprocessor scheduling. The design and implementation of a processor allocation server for a gang scheduling policy is also described.
This article also describes work to support the effective multiprogrammed use of multiprocessors. The approach taken to this problem implements the scheduler in the kernel, but encourages users to provide hints. This allows the scheduler to take advantage of user knowledge without requiring users to implement sophisticated scheduling modules.