O.S. Evaluations

Kyriakos Lakkas (klakkas@cs.ucsd.edu)
Tue, 16 May 2000 03:46:03 -0700

Alfred Z. Spector, "Performing Remote Operations Efficiently on a Local
Computer Network," Communications of the ACM, Vol. 25, No. 4, April 1982,
pp. 246-260.

This paper presents a communication model for high-bandwidth, low-latency
local networks. This model is intended to work as a basis for the execution
of distributed programs that exploit fine-grained parallelism. The
characteristics of this model are presented in detail, along with some
implementation issues regarding its primitives. Finally the author describes
the experiments that he performed in an actual network, presents his results
and compares them with the performance of older approaches. Finally, several
issues regarding the underlying hardware are addressed.

It is not clear to me why this model has to be so complicated. There are
more than 40 types of references, resulting as combinations of the different
reliability, value, synchronization etc. attributes presented in the first
part of the paper. The presence of all those makes the implementation long
and complicated. Furthermore, I don't think that any programmer will be able
to take advantage of all those capabilities of the model (except maybe from
the author himself!). It should be better, in my opinion to introduce
several (say about 5 to maximum 10) "modes", each one optimized for a
specific range of common problems. Finally, there is too much concern about
network or processor failures... I don't think that these failures happen
(at least nowadays) so often that they justify all this extra functionality
in the model.

Andrew D. Birrell and Bruce J. Nelson, "Implementing Remote Procedure
Calls", ACM Transactions on Computer Systems, Vol. 2, No. 1, pp. 39-59,
February 1984.

The second paper talks about remote Procedure Calls, yet another platform
for execution of programs across a computer network. An important portion of
the paper is spent discussing the different alternatives in the design of
such a package, as well as the reasons that the specific decisions were
made. The authors present the functionality of RPC along with the semantics
of its use. Then they move into the data transfer protocol that best fits
their needs and present the invocation of both simple and complicated calls.
After briefly discussing exception handling, they present some performance
results. Finally, they conclude by discussing future work in the field.

RPC is a much simpler approach than Spector's model. Its designers
identified the fact that previous approaches where way too complicated to
program, so they did well in providing high-level communication primitives.
A really interesting feature is that RPC packets bypass the normal network
layers eliminating unnecessary processing (and therefor increasing
performance) having the only drawback of requiring modifications in the
network driver.