Arvind Santhanam (arvind@cwc.ucsd.edu)
Thu, 20 Apr 2000 08:32:58 -0700 (PDT)

Hi Dr. Voelker,

I've attached my eval of OS papers. Sorry for the slight delay in
mailing them.


StarOS: A Multiprocessor OS for the Support of Task Forces

StarOS is an object-oriented distributed OS which facilitates multiprogramming in a multiprocessor environment. Given that hardware costs were inordinately high those days, this implementation serves as a measure to integrate an array of small processors efficiently in a modular manner. The goal of the system is to provide a scalable OS, which reconfigures itself dynamically with changes in the environment. None of the processors in the system are inevitable for the overall functionality of the entire system, and so the system is highly fault-tolerant and reliable. It is my conviction that StarOS adopts strategies similar to Medusa to combat problems like deadlock that could easily manifest itself in a layered architecture with plausibly circular dependencies. The system uses capability mechanisms to ensure protection and sharing from other activities.

The concept of task forces and utilities are similar to those of processes in Unix. The system encourages concurrency which helps in expediting the service availability for the activities in the system. A drawback of this architecture could be that the OS does not allow the user to exploit any specific feature of the system, it would be desirable that the user have some idea as to how to tailor his application to extract most of the OS. Also, a large system like this might be expected to support more than one operating system, although that might degrade the performance of the system (particularly with high costs of hardware in those days). With falling hardware prices, and astronomical increase in processing power a more prudent approach that has been espoused by most OS's has been to adopt either a shared memory technique and no sharing at all approach.

MEDUSA: An Experiment in Distributed OS Structure

This paper describes the design of Medusa, a modular, efficient and robust distributed OS for a multiprocessor system. It introduces the concept of task forces and utilities which are a collection of a set of concurrent activities. The OS encourages a good deal of concurrency (coscheduling) by running as amny jobs at any given time as possible. The emphasis is on minimizing communication (disjoint utilities) as the overheads involved with cross-processor messaging is inordinately high. The file system is similar to that of UNIX. Medusa is closely matched to the hardware and appears to be more efficient than StarOS. As mentioned earlier, it would be useful if the OS did not unconditionally define the paradigm of task forces and the user had some control over it so that he could tailor his application as close to the OS as possible. The strong separation of utilities and use of descriptors to enforce sharing and protection are two salient features in this implementation.

In the implementation of pipes, the context swap between activities is deferred for a certain `pause time'. This decreases the chances of excessive number of context swaps in the system. Use of Co-Routines enhances the throughput of the system while preventing deadlocks from occuring. The use of a Buddy activity to handle exceptions is a very elegant technique, as it decentralizes the exception/error handling capabilities among individual processors. Objects in Medusa do not have the same fine-grained protection that StarOS provides.