CSCE 455/855: Distributed Operating Systems

Syllabus

Spring 2001
MWF 12:30-1:20 Ferg 111

Instructor Prof. Steve Goddard
Email goddard@cse.unl.edu
Home Page http://www.cse.unl.edu/~goddard
Office 215A Ferg
Phone 472-9968
Office Hours M W 11:30am-12:20pm, 1:30-2:30pm
Or by appointment


Books and Additional References

Required
Text
Distributed Operating Systems
Andrew S. Tannenbaum
Prentice Hall
ISBN: 0-13-219908-4
Suggested
Text
Additional
Resources
UNIX Manuals and Manual Pages
WWW references on class home page
Any of many books on C and C++ Programming


Course Objectives

This class is designed to build on the knowledge of basic operating system design and implementation principles as exemplified by the simple uni-processor monolithic OS architectures typically addressed in introductory operating system classes (e.g. CSCE 451/851). It seeks to do so in two ways: by examining how these basic design and implementation principles must be modified, generalized, and extended when applied to multiprocessor and distributed systems; and by looking in greater detail at the design tradeoffs relevant to specific OS subsystems covered in the introductory class. Of particular interest are the design and implementation tradeoffs driven by emerging changes in underlying technologies.


Topic Outline

The following is a rough outline of the topics the class will cover, and the related chapters in the textbook. Note, however, that the lectures will not follow the book completely; some lecture materials will not appear in the book, and some material in the book will not be covered in lecture. As a general principle, the student will be responsible for the topics covered in lectures.

  1. Overview of Distributed System Issues (Chap 1)
  2. Communication Support (Chap 2)
  3. Synchronization (Chap 3)
  4. Distributed File Systems (Chap 5 and Papers)
  5. Computations and Scheduling (Chap 4)
  6. Real-Time Distributed Systems (Chap 4.6 and Papers)
  7. System Case Studies (N of ):


Class Attendance

As a graduate class, students are responsible for deciding how they can best take advantage of the material made available by the class to further their own education, and occasional class absence is within the range of normal behavior. However, the study of operating systems is first and foremost a study of competing design tradeoffs and interacting design decisions. As such, it cannot be effectively studied in isolation; discussion and debate are the only effective ways to hone an individual's understanding of the relevant issues and competing approaches. This implies that both attendance and participation are integral to the success of the class.

Further, while a majority of the classes will feature lectures by the professor, a non-trivial minority will include presentation of a relevant research paper from the current literature, and class discussion of the issues it raises. In these classes, though scarcely less so in lectures, participation by the students in class discussions is crucial to achieving real expertise over the subject material.


Grading

The course grade will be determined by the student's classroom participation, the semester project, and the midterm exam.

Midterm 30%
Classroom Participation 20%
Semester Long Project(s) 50%

Homework assignments will range from programming exercises to pen and paper problems. All pen and paper assignments will be collected at the start of class on the day on which they are due. All programming assignments will be due at 6pm on the day on which they are due. Written homework will be collected by the instructor; programming assignments will be submitted via the handin program.

All homework submitted after its deadline is considered late. Assignments that are submitted within 24 hours after the original deadline are considered to be "one day late," within 48 hours, "two days late," etc. A late homework assignment will be accepted without penalty if the following conditions are met:

• the total "lateness" of all homework assignments received to date (including the current assignment) does not exceed 4 days.

• the student does not miss class on the day the assignment is due. Exceptions to this requirement must be approved by the instructor in advance.

Late programs should be handed in with the handin program. Late written assignments must be hand delivered to either the instructor.

The penalty for late assignments is 25% per day they are late. An assignment that is 4 days late will receive no credit. Weekends count in evaluating the lateness of an assignment.

There will be one exam, which will be given shortly after the midterm break.


Course Conduct and the Honor Code

Students are encouraged to work together on homeworks and programming assignments. Acceptable collaboration on homework includes:

• discussing the assigned problems to understand their meaning,

• discussing possible approaches to assigned problems,

• discussing the UNIX system features, or general programming principles in the solution of programming problems.

In all cases you must explicitly acknowledge any and all substantive help received from other individuals or sources during the course of the preparation of your homework solution. That is, if you collaborate with other individuals or find a solution from a source other than your text, then you must include an explicit acknowledgment in your homework solution of the persons or sources from whom you received aid.

Unacceptable collaboration, unless explicitly stated, on homework includes:

• copying (verbatim use) of physical papers or computer files.

• submission of solutions that are jointly authored, or authored either wholly or in part by other individuals (unless the assignment is a group project).

The general rule to be followed is that the strategy and approach of solutions may be developed jointly but all actual solutions (i.e., the final solution) must be constructed and written up individually. Work done jointly should not be done in sufficient detail as to make it a solution. For example, the design of a program solution made be performed jointly, however, each student must write all the code they eventually submit as their solution. No code may be shared between students, unless the assignment is a group project. Similarly, for written assignments, solutions may sketched out jointly, however each student must construct the final form of their solution individually and write-up their own solution.

Unacceptable collaboration will be considered a violation of the Student Code of Conduct, and will result in a failing grade for the course. In other words: if you cheat, you will fail!

Should questions arise the course of working on a problem please feel free to immediately contact the instructor either by telephone, electronic mail, or by an office visit. In principle, if you work with others in good faith and are honest and generous with your attributions of credit you will have no problems.


Special Needs

Any student in this course who has a disability that necessitates accommodation should contact the instructor as soon as possible to discuss the appropriate accommodations necessary to complete the course requirements.


Steve Goddard <goddard@cse.unl.edu>