CPSC662 -- Distributed Computing Systems (Spring 2002)


Time: Location:
TR 3:55pm - 5:10pm  113 Harvey R. Bright Bldg 
Instructor: Teaching Assistant:
Riccardo Bettati
509C Harvey R. Bright Bldg
845-5469
Nauzad Sadri
517 Harvey R. Bright Bldg
845-4094
e-mail: bettati@cs.tamu.edu  e-mail: nauzads@cs.tamu.edu 
Office hours: TF 11am-12pm, or by appointment Office hours: TBD


Slides  | Tests  | Homeworks | Resources | Projects (TA page)

The Menu

In this course, we will study some of the most important concepts in the design of distributed operating systems. Throughout the course, we will try to relate the material covered to the support of large-scale computing on the Internet. We will tentatively discuss the following issues (a tentative guess for the allocated number of lessons per topic is given in brackets) :
  • Introduction [2] 
    Characterization of Distributed Systems 
    Network OSs vs. distributed OSs 
    Research and design issues 
  • Interprocess Communication [2] 
    Issues in message passing 
    Client-server communication 
  • Remote Procedure Call [1] 
    Design issues for RPCs 
    Case study: Sun RPC 
  • Synchronization [2] 
    Event ordering / synchronization 
    Centralized vs. distributed schemes 
  • Group Communication [4] 
    Ordered, reliable, and casual multicast 
    Group membership 
    Atomic group multicast 
    Virtual synchrony 
    Case study: ISIS 
  • Service Replication / Reliable Services [1] 
  • Distributed Shared Memory [4] 
    Shared memory
    Consistency models
    Design issues
    Case studies: Ivy/Munin/Treadmarks
  • Distributed File Services [3] 
    Model 
    Case study: NFS 
    Case study: AFS 
    Case study: CODA 
    Modern Systems: OceanStore 
  • Distributed Naming Services [2] 
    Names, addresses, routes, capabilities 
    Naming facilities, name distribution, name resolution 
    Migration 
  • Supporting Internet Applications of the Future
    Issues
    Active networks, Liquid software, ...
    Peer-to-Peer, ...
  • Other Cool Stuff...

As you see, most of the material served in the lectures is pretty basic. The idea is to provide a solid basis. We will complement this with a very strong hands-on component.


Required Textbook
The purchase of this book is strongly recommended.

Reference Books

Below is a list of reference books. These books are thought to complement the textbook. Perusing them may help you better understand some issues discussed in class. More reference material will be added as we go along.


Assessment Method

The course will consist of a considerable number of challenging programming projects, two exams (first exam tentatively on March 5, second exam on April 25). Perhaps we will have a small number of homeworks or presentations.

The weight will be tentatively distributed as no less than 55% for projects and at most 35% for tests. (If we will have homeworks, the weights will be adjusted accordingly to account for the homeworks.)

Ideally, grades will be assigned along the following lines:


Prerequisites

The official prerequisites are CPSC-410 or CPSC-463. I recommend you have a good idea of both.
I reserve the right to enforce the prerequisites, maybe even in form of a quiz at the beginning of the semester !


Projects

In this course we will not limit ourselves to talking about distributed computing systems, but will get our hands quite dirty. (Not as much as I would like, unfortunately.)

The projects have shown to be very demanding. If you do not know how to program at a sophisticated level, this is a good time to rethink your plans of taking this course! Experience with previous times this course was given has shown that you will not be able to learn the programming part as you go.

More information about projects will be posted soon.

The projects will be done in groups of two students each. This means that it is a good idea to start looking for a partner soon.

Things may change, so please check back later!


Late-Submission Policy


Academic Integrity

It goes without saying that the highest level of academic integrity is expected for students in this class. While discussions among students on the analysis of problems and on the development of general solution approaches is welcome (encouraged, in fact,) the realization has to be of the individual student or of the individual project team. Spelled out, this means:

Whoever violates these rules can expect to fail this course.

Last But Not Least

Feel free to make comments, suggestions, and such things.


Riccardo Bettati

Last modified: Jan 15, 2002