Yu Xu's evaluation6.txt

Albert Xu (xualbert@yahoo.com)
Tue, 25 Apr 2000 00:19:06 -0700 (PDT)

Do You Yahoo!?
Send online invitations with Yahoo! Invites.
http://invites.yahoo.com Evaluation of " On the Duality of Operating System Structures

This ambitious and controversial paper tries to argue that as for the two models: Message-Oriented System and Procedure-Oriented System, neither model is inherently preferable, and the main consideration for choosing between them is the nature of the machine architecture upon which the system is being built, not the applications which the system will support.
The paper constructed a canonical model for each model. Also, the canonical models suggests a standard way for implementing a resource manager for both message-oriented system and procedure-oriented system in order to eliminate several degrees of freedom in the designing process, thus allowing the design of better , more consistent, more reliable systems at lower cost.
A client system or subsystem which is written in the strict style of one of the two resource managers can be transformed directly into the other kind of system by replacing each construct with its corresponding one. No algorithms are changed, no data structures are replaced, no interface strategies are affected. So the semantic contents is invariant.
The paper talks about three components of the dynamic behavior of a system of programs and proves informally that each component takes the same in both systems. Therefore, the transformation preserves performance.
From intuition and a viewpoint of philosophy I agree with this paper. Let's think of an OS is a provider, which provide service to its users and upper level applications. Since there are so many excellent researchers trying their best in both directions and both methods are currently widely used. Basically these two competitors (two methods) should be of about the same quality, otherwise some of them should have died in the market. It's very hard to develop an elaborate formalism defining the two canonical models. So the paper avoid this trouble by describe these in informal English. Although it makes the paper more easy to read, it's the biggest disadvantage of the paper because it's less convincible.

Evaluation of "the Structure of System Using Upcalls"

The paper proposes a programming methodology of upcalls and multi-task module in order to overcome the performance problem of asynchronous inter-process messages. The Swift operating system, an experimental operating system is based on these concepts and provide a single address space for the reason of shared memory and efficient passing of data between layers.
The main advantages of the upcall methodology are: efficiency and simplicity of the implementation. There are two main advantages of multi-task module. One is that it's less threatening and easier to understand for most programmers The other is that this methodology eliminates the temptation of constructing a system wide format or usage of an inter-task message.
There are two major problems arising in programming using upcalls. The first one is that it's very prone to catastrophic failures. The paper suggests several ways to cope with it. The second problem is indirect recursive call. The paper suggests five ways to cope with it.
To control the propagation of errors within single address space, the authors program the system in CLU, a strongly checked type safe language. Also, they implement a simple mark/sweep garbage collector.