04/24/2000 - Research paper reviews

Bryan Wang (bryan@clip.dhs.org)
Mon, 24 Apr 2000 21:40:49 -0700

<<duality.txt>> <<upcalls.txt>>
Bryan Wang, 4/24/00

On the Duality of Operating System Structures
======================================================================

This paper was written to dichotomize operating systems into one of
two categories, message-based and procedural. The most important
conclusion of the paper is that each primitive in one category has a
corresponding dual in the other category, and that the performance of
a message-based OS is identical to that of a procedure-based OS.
Lauer and Needham's paper tries to promote good system design through
closely following the constructs of either one of the two categories.

The methodology they followed to develop and argue their case was
informal and intuitive, citing logical arguments applied to idealized
models rather than formal proofs. I appreciated this treatment of the
subject matter, because it allows the reader to easily gain a
high-level understanding of the issues at-hand without being bogged
down in terminology.

The paper even details an implementation experiment (the CAP system)
in which the authors easily converted a message-based system to a
procedure-based system with no side-effects.

To accept their arguments, I needed to develop a deeper understanding
of operating system primitives (both message-based and procedural),
which the paper kindly provides. It is intuitively satisfying to
learn that neither category of OS has an inherent superiority for any
given application, and therefore primitive constructs should be
consistent throughout the OS (no mish-mash of procedure-calls and
messages for communication, choose one or the other).

Bryan Wang, 4/24/00

The Structuring of Systems Using Upcalls
======================================================================

Clark's paper on the Swift system challenges the traditional "layered"
operating system, stating that certain tasks' natural flow is for
control to move upward between layers instead of always downward. By
organizing a "layer" into several procedures, able to call either up
to a higher layer or down to a lower layer, we eliminate all
unnecessary asynchronous communications and achieve higher performance
than possible with a one-way layered OS.

They support their claims by implementing a system called Swift, and
testing their theories within the context of networking applications
(traditionally modeled as layers permitting only down-calls). The
conclusion is that higher performance can be achieved for this type of
application, at the cost of some design risk (complexity, and
unfamiliar programming concepts).

While the paper was generally well-written, I found section 4 "An
Example" a slow read due to the level of detail presented. I didn't
think this level of detail was necessary to understand the system.
Also, a my comment on "deadline" prioritization is that an absolute
time specified by a programmer might not be valid in the future, when
components become faster.

Overall this paper was informative, and I learned about types of
layered applications that function better when upcalls and downcalls
are both supported.