login

Evolving the UNIX System Interface to Support Multithreaded Programs

Published 1 January 1997
Paul McJones, Garret Swart
Citations39

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...

Keywords

Computer Science