The following are expectations of what you should know based on material
discussed in lecture and from projects.

Understand Projects 2 and 3.

% Sun RPC

For Sun RPC, understand the general mechanism for creating client and
server stub routines using rpcgen.

Know what is XDR.

Know generally how parameters are passed and results are returned.

Know how the port mapper daemon process is used.

Understand how the use of UDP and TCP affects the Sun RPC mechanism.

% Java RMI

For Java RMI, understand the general mechanism for creating client and
server stub routines using rpcgen.

Know generally how parameters are passed and results are returned.

Know how the RMI registry process is used.

Know how RMI services are named.

% Distributed File Systems, SGG Chapter 16

Be familiar with file characteristics observed as part of the work on the
Andrew File System.

Be familiar with the general approach used by the File Transfer Protocol
(FTP) for sharing files between machines.

Be familiar with the general approach used by Sun's Network File System (NFS)
for sharing files between machines.

Be familiar with the general approach used by the Andrew File System (AFS)
for sharing files between machines.

Be familiar with the naming issue in distributed file systems and how it
relates to access and location transparency.

Know what is involved if files are migrated in each of the three systems.

Understand the different types of sharing semantics in distributed file
systems. 

Know how caching is used in distributed file systems.

Understand how the issue of scalability is handled by each system.

Know how security is handled in each distributed file system.

Understand the implications of a stateful vs. a stateless distributed file
server.

Be familiar with changes made for version 4 of NFS.

Be familiar with what was learned from the Andrew File System work and the
design principles that followed.

Be familiar with the design assumptions and resulting design for the Google
File System.

Understand how the Shark File System combines of a distributed file system
and a peer-to-peer mechanism.

% Distributed Processing

Understand the processor pool system model.

Understand the workstation system model.

Understand why it is expected that idle machines will be available in the
workstation model leading to opportunities for load sharing.

Understand how load and idleness can be determined on a machine.

Understand the difference between load sharing and load balancing.

Understand the distinction between a preemptive and nonpreemptive load
sharing policy.

Know what the transfer policy of a load sharing policy does.

Know what the selection policy of a load sharing policy does.

Know what the location policy of a load sharing policy does.

Know what the information policy of a load sharing policy does.

Know the difference between a sender-initiated and receiver-initiated load
sharing policy.

Be familiar with receiver-initiated approaches such as SETI,
distributed.net or the Distriblets project.

Be familiar with the highlights of the adaptive load sharing policies of
Eager, Lazowska and Zahorjan.

Be familiar with the highlights of the multicast-based load sharing
policies of Wills and Finkel.

% Distributed Coordination, SGG Chapter 17

Know how the "happened before" relationship is used by Lamport to construct
a partial ordering amongs causally related events in a distributed system.

Know how this relationship can be used to construct a logical clock of
events in the system.

Be familiar with the implications of clock drift (skew).

Understand how Cristian's algorithm is used by a client to obtain the
correct time from a server and adjust its own time.

Understand distributed, centralized and token-based mutual exclusion
algorithms.

Understand approaches for distributed election algorithms.

Understand how termination detection for a distributed computation can be
done.

% Web

Understand factors that contribute to Web performance as a distributed
system.

Understand how distributed systems issues introduced in class are handled
in the Web.

% Distributed Objects

Be familiar with features provided by JINI over traditional RPC mechanisms.

Understand how discovery is done in JINI.

Understand how services are registered and found in JINI.

Understand the use of remote events and transactions in JINI.

Understand the use of JavaSpaces to share data between processes in JINI.