The following are expectations of what you should know based on material
covered in lecture and from Chapters 17, 18 in Silberschatz and Galvin
(S&G) as well as Chapters 11, 12 and 13 of Tanenbaum (T).

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, S&G Chapter 17, T Chapter 13

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.

Know how directories are handled in of the three systems.

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

Know how caching is used in distributed file systems.

Know how replication of files is handled by these systems.

Understand how a read-quorum and write-quorum is used amongst of set of
servers replicating a file.

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 what was learned from the Andrew File System work and the
design principles that followed.

% Distributed Processing, T Chapter 12

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.

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 the highlights of the distriblets load sharing approach.

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, S&G Chapter 18, T Chapter 11

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.

% DCE

Understand the general approach taken by DCE is to layer distributed
services on top of existing operating systems.

Understand how DCE uses X.500 and DNS to name cells.

Understand that DCE uses Kerberos, a public/private key encryption approach.

% 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.

% Cryptography

Understand how encryption and decryption keys are used to convert between
plaintext and ciphertext.

Know what is a one-time pad encryption method.

Be familiar with the Data Encryption Standard (DES) and that it uses the
same key for encryption and decryption.

Understand how public key encryption works for security and authentication.

% Web

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

Be familiar, at the level of detail discussed in class, the SSL protocol
for secure Web transactions.