Evolving the UNIX System Interface to Support Multithreaded Programs
Generate an AI Snapshot to get a quick, structured summary of this paper.
A concise AI-generated summary of the paper will appear here once you click Generate AI Snapshot.
TL;DR
This work presents several guidelines for designing or redesigning interfaces for multithreaded clients and shows how these guidelines were used to design an interface to UNIX -compatible file and process management facilities in the Topaz operating system.
Abstract
Multiple threads (program counters executing in the same address space) make it easier to write programs that deal with related asynchronous activities and that execute faster on shared-memory multiprocessors. Supporting multiple threads places new constraints on the design of operating system interfaces. Part I of this report presents guidelines for designing (or redesigning) interfaces for multithreaded clients. We show how these guidelines were used to design an interface to UNIX 1 -compatible file and process management facilities in the Topaz operating system. Two implementations of this interface are in everyday use: a native one for the Firefly multiprocessor, and a layered one running within a UNIX process. Part II is the actual programmer's manual for the interface discussed in Part I. Paul R. McJones and Garret F. Swart Capsule review Unix was designed to support client address spaces containing exactly one program counter. This assumption about a Unix process has had a r...
