CPCS 662  -- DISTRIBUTED  COMPUTING  SYSTEMS
(Spring 1997)


Time: Location:
TR 9:35am-10:50am 113 Harvey R. Bright Bldg
Instructor: Teaching Assistant:
Riccardo Bettati
509C Harvey R. Bright Bldg
845-5469
Hamesh Chawla
315B Harvey R. Bright Bldg
845-8872
e-mail: bettati@cs.tamu.edu e-mail: hameshc@cs.tamu.edu
Office hours: TR 11:00-12:00 or by appointment Office hours: MWF 3:00-5:00


Slides| Tests | Homeworks| Resources | Projects


The Menu

In this course, we will study the most important concepts in the design of distributed operating systems. We will discuss the following issues (a tentative guess for the allocated number of lessons per topic is given in brackets) :
  • Introduction [2]
    Network OSs vs. distributed OSs
    Research and design issues
  • Interprocess Communication [3]
    Message passing
    RPC
    Transactions
    Communication vs. virtual memory
  • Synchronization [2]
    Event ordering / synchronization
    Centralized vs. distributed schemes
  • Naming [3]
    Names, addresses, routes, capabilities
    Naming facilities, name distribution, name resolution
  • Process Management [2]
    Processes
    Remote operations on processes
    Migration
  • Resource Management [2]
    Load sharing
    Load balancing
  • Protection and Security [2]
    Threats
    Distributed access control
    Encryption, key management, authentication
    Security as a service
    (Example: Kerberos)
  • Distributed File Systems [2]
    Disks, files, transactions
    Replication, fault-tolerance
  • (Experimental) Distributed OSs: Examples [2]
    Amoeba
    Mach
  • Distributed Object Technology [3]
    Distributed objects and client/server systems
    Distributed object busses: e.g. CORBA
    Resilient distributed object technology

In addition we will have two lessons reserved for tests and three lessons reserved for project discussion.

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. In a series of projects we will work on adding or modifying cababilities to an experimental operating system.


Required Textbook

I will be following this textbook rather closely. Purchasing it for the course 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, and two tests. Perhaps we will have a small number of homeworks.

The weight will be tentatively distributed as no less than 65% for projects and at most 35% for tests. (If we will have homeworks, the weights will be adjusted accordingly, roughly 60% for projects, 15% for homeworks, and 25% for tests.)


Prerequisites

The prerequisites are CPSC-410 or 463. If I see the need for it, I reserve the right to enforce the prerequisites.


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. If you do not know how to program at a sophisticated level, and are not willing to learn it quickly, and if I can have it my way (that is, I can get the infrastructure up and running,) this may be the time to rethink your plans of taking this course!

Fortunately (for you) we will not be able to tinker on bare machines. However, we will use a very sophisticated virtual environment. I plan to make sure that you will be exposed to some very tricky situations, which will foster your understanding of what is (or at least what should be) going on in a distributed OS.

We are currently setting up an experimental distributed object-oriented operating system, called Choices, in particular vChoices.

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.


Modified January 15, 1997.

These pages are prone to change without notice! Consult them regularly to avoid surprises.

This page is available under URL http://www.cs.tamu.edu/course-info/notes.html by following the appropriate pointer.