Course Description


Overview

 


The use of large "mainframe" computers has diminished dramatically. Computers and information sources are scattered across great distances. Organizations have moved to decentralized systems and their users look to approach large problems by spreading the effort over groups of computers. Solving these problems involves distributed computation as well as distributed data and hardware. Even working styles have changed; they now require applications collectively known as computer-supported cooperative work or groupware. Researchers are examining the possibility of very small-scale computers cooperating on tasks.

 

A distributed system is a collection of computers that may not share memory or a clock. As a consequence, cooperative efforts to work together solving problems require explicit mechanisms for communication and synchronization. These processors can be a set of microprocessors, a Local Area Network or even the Internet. In this course we will look at issues of problem solving with multiple processors, distributing workload, and providing access to shared resources such as I/O and storage devices and file systems. We will consider centralized and distributed methods for control of parallel activities and for detection and resolution of conflicts between activities competing for resources.

 

 

Course Format

 

This course is a held in a seminar style. We will be covering parts of the text and additional readings in class discussions lead by class members on a rotating basis. Each student will be responsible for handing in a brief synopsis of the reading and a set of discussion topics. The discussion leader will guide the group through her topics and those of the group.  She is encouraged to meet with me prior to class to help understand the material.

 

There will be frequent labs to introduce new software technology. We will be simulating distributed systems designs and testing them in NETLAB. Building actual distributed systems such as a BEOWULF system and designing applications for it. And looking at Microsoft’s view of distributed systems .NET.