|
Instructor
Dr. Brian Mitchell
Drexel: (215)895-2668
Daytime: (215)761-6618
Office: Korman 215
e-mail: bmitchel@mcs.drexel.edu
Class Web Page: http://www.mcs.drexel.edu/~bmitchel/course/mcs721/mcs721.html
Important Notices
See current class notices for MCS721 - Distributed Systems
View the Current Presentation Schedule
PLEASE SEE THE ABOVE LINK FOR IMPORTANT NOTICES!!!!
Course Description
In this course we will investigate interesting distributed systems concepts with emphasis on distributed operating systems and distributed computer architectures. This course will be conducted using online class notes and research papers that are relevant to the core course topics. Course topics include: distributed systems, distributed systems architectures, distributed shared memory, cache coherence, distributed synchronization, distributed file systems, fault tolerance, reliability and availability.
We will use the Java programming language to investigate important Distributed Systems algorithms and concepts. Java is an ideal language for distributed systems studies because of its availability on multiple platforms, its cost (a free Java environment can be obtained here), and its support for distributed programming. I conducted a Java tutorial in MCS720 (Operating Systems) - you can obtain the notes from this lecture here.
Intended Audience
This course is intended primarily for graduate students in Software Engineering and Computer Science. Graduate students in other programs may take this course if they see me in advance about their qualifications. Before taking this course, students should have taken MCS720 (Operating Systems) and be proficient in an object-oriented programming language such as Java or C++. Students lacking such a background should talk to me as early as possible to ensure success in this course.
Research
This course will include coverage of several research papers relevant to distributed systems. Students will be expected to read the provided papers and participate in class discussions. Every effort will be made to provide online copies of the research papers. However, you may be required to go to the library to photocopy a copy of a research paper if no online copy is available.
Class Meeting Times
MCS721 will meet from 6:00 - 9:00 PM on Tuesday evenings. Office hours are by appointment or immediately before class.
Course Topics
Note that there is no correlation between a topic and a lecture. Multiple topics may be covered in a single lecture while some topics may require multiple lectures.
| Topic | Description |
|---|---|
| 1 | Introduction to Distributed Systems [4-slides per page version] |
| 2 | Data Communications (protocols, topology) Case Studies: IP (TCP/IP, UDP/IP, IPv6), Socket Programming, Remote Procedure Calls |
| 3 | Distributed Syncronization; Research Paper: Logical Time: A Way to Capture Causality in Distributed Systems |
| 4 | Group Communications |
| 5 | Scalability, Fault Tolerance, Reliability & Availability |
| 6 | Distributed System Architectures (emphasis on MIMD) |
| 7 | Distributed Shared Memory |
| 8 | Cache Coherence |
| 9 | Distributed File Systems |
You may use the above links to obtain an on-line copy of the lecture notes. Selected lecture notes are provided in Adobe Acrobat format. Adobe Acrobat Reader is a free viewer for Adobe PDF files. A copy can be downloaded from here:
Assignments
There will be two major deliverables in this course:
Homework's will involve reading the scheduled papers and being prepared to participate in discussions about the research papers.
Here are some helpful links that may be of use to you for this course.
Textbooks
The is no required textbook for this class. Online class notes will be provided for you to download prior to each class. A good book that you might want to consider purchasing for this class is:
- Distributed Operating Systems by Andrew Tanenbaum
All material covered in this class including research papers will be referenced.
Grading
Term Project: 85%
Research Paper Presentation: 15%* The date of the midterm will be announced in class at least 2 weeks prior to the date of the exam
Policies
All homework and programming assignments are individual efforts, unless specifically stated otherwise in the assignment definition. You may use your colleagues for advice, however, all assignments must be your original work. Late assignments will be penalized 10% per week. Any assignment not submitted within 2 weeks of the deadline will not be accepted unless you work out special arrangements with me.
I will provide at least two weeks notice for the midterm exam. Every effort should be made to attend the scheduled exams, however, there are times when this may not be possible due to sickness or business travel. In the event that you can not attend the midterm or final, please let me know in advance so that I can make arrangements for you to take the test early. If you are unable to provide sufficient notice, then the makeup exam will take the form of an oral exam or a take-home test.