This course extends the study of the design and implementation of operating systems begun in CS 3013 to distributed and advanced computer systems. Topics include principles and theories of resource allocation, file systems, protection schemes, and performance evaluation as they relate to distributed and advanced computer systems. Students may be expected to design and implement programs that emphasize the concepts of file systems and distributed computing systems using current tools and languages. (Undergraduate credit may not be earned both for this course and for CS 502.)
Recommended
background: CS
3013, CS
3516, and system programming experience.
You should already own a textbook from your Operating System course. You will need this for material on file systems. A good, recently used one is: Andrew S. Tanenbaum, Modern Operating Systems, 3rd edition, Prentice Hall, 2008.
Here is the list of topics covered in this course (not necessarily in order of appearance):
Final grades will be computed as follows:
There will be programming projects done to implement part of or even all of a distributed system. The implementation can be done in a variety of environments and languages. Programming will not be taught as part of this course. System calls and other aspects of Unix will be introduced as needed and as the course progresses. The grading policy for each project will be provided at the time of the assignment. In general, each project a basic objective for the majority of the assignment points. There may be an extended objective for demonstrating additional work and understanding. Projects, including all data and source code, as appropriate, will be turned in online as specified in the writeups.
There will be two in-class exams. The first is roughly mid-way through the term and the second on the last day of the term. There is a remote possibility of a pop quiz for which no advance notice will be provided. Exams will be closed book and closed notes, unless otherwise indicated. The majority of each exam will cover basic ideas and objectives of the class with a few questions testing additional understanding and insight.
Final grades will reflect the extent to which you have demonstrated understanding of the material and completed the assigned projects. The base level grade will be a "B" which indicates that the basic objectives on projects, homework and exams have been met. A grade of an "A" will indicate significant achievement beyond the basic objectives. A grade of a "C" will indicate not all basic objectives were met, but work was satisfactory for credit. No incomplete grades will be assigned unless there exist exceptional, extenuating circumstances. Similarly, no makeup exams will be given unless there exist exceptional, extenuating circumstances.
Exams are done, and due, in class. Projects are due online at 11:59pm on the due date, unless otherwise noted. Late projects will be accepted up to one day late (24 hours), with the weekend counting as one day. Any late project will be penalized 10% of total assignment value. Projects will not be accepted more than one week beyond the due date.
This course is intended for serious students. Participants will be expected to adhere to all rules of professional behavior. It is to be emphasized that knowledge of material and professional behavior are tied together; failure in one of them negates any excellence in the other.
All work is expected to be done individually. As such, students are encouraged to discuss their work with each other, but are also expected to do the work by themselves.
Any breach of professional ethics as evidenced, for example, by copying exams or projects, downloading code from the Internet, cooperating more than just by discussions in study groups, misusing computer resources, or using outside help of any kind, will be considered adequate reason for an NR in the course and a report to the Dean of Students. Refer to the official WPI statements on Academic Honesty for details. Those who have any doubt about what that means, and fail to gain that understanding after a discussion with the instructor, are encouraged to drop this class. Remember this warning - any breach of ethics will earn you an NR. When in doubt, ask!
The list of reading will be posted here, roughly in the order covered in class.
Chapters on File Systems, appropriate for your OS text.
[HLM02] D. Hitz, J. Lau, and M. Malcolm. File System Design for an NFS File Server Appliance, Technical Report TR3002, NetApp, 2002. (slides: pptx, pdf)
[SAAF08] F. Schneider, S. Agarwal, T. Alpcan, and A. Feldmann. The New Web: Characterizing AJAX Traffic, In Proceedings of the Passive and Active Measurement Conference (PAM), Cleveland, OH, USA, 2008. (slides: pptx, pdf)
[LGX09] S. Lin, Z. Gao and K. Xu. Web 2.0 Traffic Measurement: Analysis on Online Map Applications, In Proceedings of the ACM International Workshop on Network and OS Support for Digital Audio and Video (NOSSDAV), Williamsburg, VA, USA, 2009.
[ISYR10] M. Iliofotou, G. Siganos, X. Yang, and P. Rodriguez. Comparing BitTorrent Clients in the Wild: the Case of Download Speed, In Proceedings of the 9th International Conference on Peer-to-peer Systems, Usenix Association, Berkeley, CA, USA, 2010. (slides: pptx, pdf)
[SR06] D. Stutzbach and R. Rejaie. Understanding Churn in Peer-to-Peer Networks, In Proceedings of ACM SIGCOMM/USENIX Internet Measurement Conference, pages 189-202, Rio de Janeiro, Brazil, October 2006. (slides: pptx, pdf)
[SKH02] J. Smed, T. Kaukoranta and H. Hakonen. Aspects of Networking in Multiplayer Computer Games, The Electronic Library, Volume 20, Number 2, Pages 87-97, 2002. (slides: pptx, pdf)
[CC10] M. Claypool and K. Claypool. Latency Can Kill: Precision and Deadline in Online Games, In Proceedings of the First ACM Multimedia Systems Conference (MMSys), Scottsdale, AZ, USA, February 2010. (slides: pptx, pdf)
[BCL+04] T. Beigbeder, R. Coughlan, C. Lusher, J. Plunkett, E. Agu, and M Claypool. The Effects of Loss and Latency on User Performance in Unreal Tournament 2003, In Proceedings of ACM Network and System Support for Games Workshop (NetGames), Portland, OR, USA, September 2004. (slides: pptx, pdf)
[Kri09] B. Krishnamurthy. A Measure of Online Social Networks, In Proceedings of the Second International Conference on Communications Systems and Networks (COMSNETS), Banglore, India, January 2009. (slides: pptx, pdf)
[KGA08] B. Krishnamurthy, P. Gill, and M. Arlitt. A Few Chirps about Twitter, In Proceedings of the ACM SIGCOMM Workshop on Online Social Networks, Barcelona, Spain, August 2008. (slides: pptx, pdf)
In addition to the slides from the papers above, slides from other material will be available shortly before or after they are presented.
Admin | pptx | |
File Systems | pptx | |
Sockets | pptx | |
Distributed File Systems | pptx | |
Introduction | pptx | |
The Web | pptx | |
Peer-to-Peer | pptx |
Projects and due-dates will be placed here as they are defined. Here is what we have so far:
Project 1: Dumpster Diving, (Nov 2) (slides) (grading guide)
Project 2: Distributed Shell, (Nov 11) (slides) (grading guide)
Project 3: Nutella, (Nov 29) (slides) (grading guide)
Project 4: Retro-Warfare, (Dec 15) (slides) (grading guide)
This section has any samples discussed in class, exam preparation material, tutorials or any other demonstration-type class materials.
Final exam:
Mid-term exam:
A tutorial on the use of sockets can be found in Beej's Guide to Network Programming.