CPSC662 -- Distributed Computing Systems (Spring 1999)



 
Time: Location:
MWF 3:00pm-3:50pm  113 Harvey R. Bright Bldg 
Instructor: Teaching Assistant:
Riccardo Bettati 
509C Harvey R. Bright Bldg 
845-5469
Gurudatt Shenoy 
509D Harvey R. Bright Bldg 
 
e-mail: bettati@cs.tamu.edu  e-mail: gurudatt@cs.tamu.edu 
Office hours: MW 4-5pm, F 2-3pm Office hours: MTWF 2-3pm

Slides   | Tests  | Homeworks | Resources   | Projects


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 [2] 
  • Design issues for RPCs 
    Case study: Sun RPC 
  • Synchronization [3] 
  • Event ordering / synchronization 
    Centralized vs. distributed schemes 
  • Group Communication [5] 
  • Virtual synchrony 
    Ordered, reliable, and casual multicast 
    Group membership 
    Atomic group multicast 
    Case study: ISIS 
  • Service Replication 
  • Distributed Shared Memory [4] 
  • Shared memory
    Consistency models
    Design issues
    Case studies: Ivi/Munin
  • Distributed File Services [5] 
  • Model 
    Case study: NFS 
    Case study: AFS 
    Case study: CODA 
  • Distributed Naming Services [5] 
  • Names, addresses, routes, capabilities 
    Naming facilities, name distribution, name resolution 
    Migration 
  • Distributed Object-Oriented Technology and Friends 
  • Issues
  • CORBA, RMI
  • Supporting Internet Applications of the Future
  • Issues
    Active networks, Liquid software, ...
    WebOS, Legion, JavaSpaces, ...
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, a midterm (to be scheduled), and a final exam (tentativel to be held on May 11th). Perhaps we will have a small number of homeworks.

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, roughly 50% for projects, 20% for homeworks, and 35% for tests.)

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 dirty messing around with such systems.

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


Last But Not Least

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


Riccardo Bettati

Last modified: Mon Jan 11 11:39:28 CST 1999