This research focuses on high performance operating systems for uniprocessors and multiprocessors. Architecture and programming technology, the two fields which border operating systems, have undergone radical changes in the last ten years. Unfortunately, the reaction of operating systems to these changes has been slight. Consequently, overall system performance is growing much less quickly than advances in either of these areas would lead one to predict. Three fundamental issues are interprocess communication, virtual memory management, and distributed memory parallel programming. The goal is to bring operating systems technology into step with modern architecture and modern programming systems.