Enhanced Resource Sharing in UNIX.
J. M. Barton, Jan Cetric Wagner · 1988
ABSTRACT: UNIX provides a programming model for the user which gives an illusion of multiprocessing. On uniprocessors, this illusion works well, providing communication paths, process security and a simple programming environment. Unfortunately, this model is not powerful enough to take full advantage of modern multiprocessor hardware. This results from a design which uses data queueing and preemption to provide the multiprocessing illusion. Recent proposals for lightweight processes in UNIX show that other programming models may be effectively supported as well. These models provide for virtual address space sharing between tasks by breaking the process into several lightweight contexts that may be manipulated more quickly than a normal process. Unfortunately, such models raise questions about support for normal UNIX semantics, scheduling performance, and kernel overhead. This paper describes a new programming model which goes beyond simple address space sharing, providing a selection of shared resources while