TL;DR: This paper focuses on system supplied facilities which support transparent network access and fault-tolerant behavior under a modified version of VAX/UNIX.
Abstract: Accent is a communication oriented operating system kernel being built at Carnegie-Mellon University to support the distributed personal computing project, Spice, and the development of a fault-tolerant distributed sensor network (DSN). Accent is built around a single, powerful abstraction of communication between processes, with all kernel functions, such as device access and virtual memory management accessible through messages and distributable throughout a network. In this paper, specific attention is given to system supplied facilities which support transparent network access and fault-tolerant behavior. Many of these facilities are already being provided under a modified version of VAX/UNIX. The Accent system itself is currently being implemented on the Three Rivers Corp. PERQ.
TL;DR: The major design decisions on which the Accent kernel was based, how those decisions evolved from the RIG experiences and how they had to be modified to properly handle general purpose multiprocessors in Mach are outlined.
Abstract: This paper describes experiences gained during the design, implementation and use of the CMU Accent Network Operating System, its. predecessor, the University of Rochester RIG system and its successor CMU’s Mach multiprocessor operating system. It outlines the major design decisions on which the Accent kernel was based, how those decisions evolved from the RIG experiences and how?hey had to be modified to properly handle general purpose multiprocessors in Mach. Also discussed are some of the major issues in the implementation of message-based systems, the usage patterns observed with Accent over a three year period of extensive use at CMU and a timing analysis of various Accent functions. 1. Background Mach is a multiprocessor operating system kernel currently under development at Carnegie-Mellon University. In addition to binary compatibility with Berkeley’s current UNIX 4.3 bsd release, Mach provides a number of new facilities not available in 4.3, including: l Support for tightly coupled and loosely coupled general purpose multiprocessors. . An internal symbolic kernel debugger. l Support for transparent remote file -access between autonomous systems. l Support for large, sparse virtual address spaces, copy-on-write virtual copy operations, and rpemory mapped files. l Provisions for user-provided memory objects and pagers. l Multiple threads of control within a single address space. l A capability-based interprocess communication facility-integrated with virtual memory management to allowrtransfer of large amounts of data (up to the size of a process address space) via copy-on-write techniques. l Transparent network interprocess communication with preservation of capability protection across network boundaries. As of May 1986, Mach runs on most uniprocessor VAX architecture machines: VAX 11/750, 111780, 111785, 8200, 8600, 8650, MicroVAX I, and MicroVAX II. Mach also runs on two multiprocessor VAX machines, the four (1 l/780 or 111785) processor VAX 1 l/784 with 8 MB of shared memory the VAX 8300 (with up to 4 processors). Mach has already been ported to the IBM RT/PC and work has begun on ports to the uniprocessor SUN 3 and multiprocessor Encore MultiMax. The current version of the system, Mach-l, includes all of the features listed above and is in production use by CMU researchers on a number of projects including a multiprocessor speech recognition system called Agora [5] and a project to build parallel production systems. Mach is the logical successor to CMU’s Accent [16,17] kernel .. an operating system designed to support a large network of uniprocessor scientific personal computers. The design and implementation of Accent was in turn based on experiences gained during the development of the University of Rochester’s RIG system [3,14], a message-based network access machine. Both RIG and Accent have seen considerable use over the years. RIG provided a variety of functions including terminal support and remote file access within the Rochester environment until early this year when the last RIG machine was decommissioned. Accent continues in use at CMU as the basic operating system for a network of 150 PERQ workstations and has seen commercial use in printing and publishing workstations as well as engineering design systems. As a third generation network operating system Mach, benefits from the lessons learned in over ten years of design, implementation and use of RIG and Accent. This paper summarizes the lessons of those systems and their impact on the design and implementation of Mach. 2. The Evolution of Accent from RIG Implementation of RIG began in 1975 on an early version of the Data General Eclipse mini-computer. The first usable version of the system came on-line in the fall of 1976. Eventually the Rochester network included several RIG Eclipse nodes as network servers and a number of Xerox Altos acting as RIG client hosts. RIG provided clients network file services, ARPANET access, printing services and a variety of other functions. Active development continued well into the 1980’s but obsolescence of its Data General Eclipse and Xerox Alto hardware base eventually dictated its demise in the Spring of 1986.
TL;DR: The paper describes a prototype transaction facility, called TABS, that supports objects, transparent communication, synchronization, recovery, and transaction management and concludes that the prototype provides useful facilities, and that it would be feasible to build a high performance implementation based on its ideas.
TL;DR: A modified version of path expressions called Path Rules which can be used as a debugging mechanism to monitor the dynamic behavior of a computation is introduced.
Abstract: This paper introduces a modified version of path expressions called Path Rules which can be used as a debugging mechanism to monitor the dynamic behavior of a computation. Path rules have been implemented in a remote symbolic debugger running on the Three Rivers Computer Corporation PERQ computer under the Accent operating system.
TL;DR: This dissertation investigates automatic partitioning, scheduling, and fault tolerance for distributed applications on a network of personal computers using a language and execution environment called STARDUST, which uses a single applicative language for both the task structure and the algorithm.
Abstract: This dissertation investigates automatic partitioning, scheduling, and fault tolerance for distributed applications on a network of personal computers. Previous distribution systems in loosely coupled environments have used a special process control language or special language features to describe the task structure of a program while the lower level algorithms were defined in a standard algorithmic language. Like many of the systems proposed for tightly coupled processors, we use a single applicative language for both the task structure and the algorithm, doing away with the distinction between tasks and functions by making every function a potential task. However, the network environment has deeply influenced the design: the long communication latencies commit the system to large grain parallelism and carefully planned communication strategies.
The product of the research is a language and execution environment called STARDUST. STARDUST programs are written in a general-purpose applicative language and marked with an estimate of each function's execution time. The system partitions the programs by expanding user function calls with high execution time estimates and by breaking up calls to the system's list operators. The segments are scheduled on the available processors, taking into account both load balancing and the costs of message passing. Failed tasks can be restarted by moving them to surviving processors.
Three sets of experiments run on Perq computers and an Ethernet gave two successes and one failure. The quick sort experiment failed to achieve significant speedups due to some poor scheduling heuristics and large amounts of overhead that could not be transferred to other processors. The six-processor versions of the signal processing and molecular modelling experiments showed speedups of about two when the exported function calls took one second to evaluate, and speedups of over three when the exported calls took five seconds. Message passing and interpreter overhead are the main reasons that such a large granularity is needed; partitioning and scheduling do not contribute significantly to overall execution time.
The experimental results also include a demonstration of automatic failure recovery and run-time redundant subcomputation elimination.