Operating System Support for High-Performance Shared-Memory Multiprocessing. A primary motivation behind building multiprocessors is to
cost-effectively improve system performance, but in practice
it has proven difficult to obtain good performance from
parallel applications. This project has been to devise and
prototype solutions to several problems that have limited
multiprocessor system performance. A common theme in
each of these solutions is that a multiprocessor operating
system should be different (although it need not be more
complicated) than a uniprocessor operating system that
happens to run on a multiprocessor. Specifically, the research
has concerned:
Threads are the vehicle for concurrency in many
- Efficient threads.
approaches to parallel programming. I have shown
that thread management overhead can be
reduced to within an order of magnitude of the
cost of a procedure call. The goal is to make the
expression and control of parallelism sufficiently
cheap that the ``natural parallel decomposition'' of
an application can be exploited by the
programmer or compiler with acceptable
overhead, even in the case where this