CS-395/495 - Advanced Operating Systems
Winter 2002
    
    
    
    
    
    
    
    Administrative Information
    
    
    Professor
    
    
      Fabián E. Bustamante
 
      1890 Maple Ave, Room 334
 
      +1 847 491-2745
 
      fabianb@cs.northwestern.edu
 
      Office Hours: TBD.
    
    
    
    T.A.
    
      Pinku Surana
      1890 Maple Ave, Room 240
      +1 847 491-7159
      surana@cs.northwestern.edu
      Office Hours: TBD 
    
    
    
    
    Course Description
    A hands-on project oriented course on what's hot
    in systems research!
    Advanced Operating Systems is a graduate level course on
    advanced concepts on operating systems and distributed
    computing. The course covers a wide array of research topics in
    systems, from historical perspectives to current topics such as
    peer-to-peer computing and mobile systems. The class consists of
    two major thrusts: reading and reviewing papers and doing a
    research project on your own.
    
    
    Location and Time
    
    Tuesdays and Thursdays 1-2pm.
 We will meet in 1890 Maple, Room 342.
    
     In compliance with Section 504 of the 1973
    Rehabilitation Act and the Americans with Disabilities Act,
    Northwestern University is committed to providing equal access to
    all programming. Students with disabilities seeking accommodations
    are encouraged to contact the office of Services for Students with
    Disabilities (SSD) at +1 847 467-5530 or ssd@northwestern.edu. SSD
    is located in the basement of Scott Hall. Additionally, I am
    available to discuss disability-related needs during office hours
    or by appointment.
 In compliance with Section 504 of the 1973
    Rehabilitation Act and the Americans with Disabilities Act,
    Northwestern University is committed to providing equal access to
    all programming. Students with disabilities seeking accommodations
    are encouraged to contact the office of Services for Students with
    Disabilities (SSD) at +1 847 467-5530 or ssd@northwestern.edu. SSD
    is located in the basement of Scott Hall. Additionally, I am
    available to discuss disability-related needs during office hours
    or by appointment.
    
    
    
    Course Prerequisites
    
    The basic prerequisite for this classis an undergraduate
    operating system course (such as CS-343).
    Please come talk to me if you don't fulfill this requirement.
   
   
    Communication Channels
    
    There are a number of communication channels set up for this class: 
    
      - We will use the course
      web site to post announcements related to the course. You
      should check this regularly for schedule changes and other
      course-related announcements. 
- Finally, there is an email alias (CS-495-AOS-Staff@cs)
      to contact the staff. Questions and comments should be sent
      there. Please prefix the subject line with "CS-495" for a prompt
      response.
Announcements
    
     - Given that we always run at least 10/15' over the allocated
     class time, we have agreed on starting 10' earlier from Tue. Jan
     21st.
- If you haven't yet, please email me to set a meeting time in
     the following week (Tue 21st or Thu 23rd Jan)
Materials
    There is no textbook for this course. The course will be
    structured around readings from conference
    proceedings and journal articles.
    
    
    Grading
    
    50% Project
       10% Project and paper presentation
       20% In-class paper presentations
       20% Class participation
    
    
    
    Reading Papers
    You will be responsible for reading and preparing a short
    (typed) summary of one or two papers before each class. Your final
    grade will depend on faithfully submitting summaries for each and
    every paper before we talk about them in class: this is simple to
    ensure everybody keeps up with the reading.
 We will be reading
    one or two papers per meeting. Each paper will be presented to the
    group by a student and then discussed in a round-table manner.
    When reading papers it is normally useful to write down a
    summary of about a page. Your summary should include at least:
     
     - Paper title and its author(s).
- Brief one-line summary.
- A paragraph of the most important ideas: perhaps a
     combination of their motivations, observations, interesting parts
     of the design, or clever parts of their implementation.
- A paragraph of the largest flaws; maybe an experiment was
     poorly designed or the main idea had a narrow scope or
     applicability. Being able to assess weaknesses as well as
     strengths is an important skill for this course and beyond.
- A last paragraph where you state the relevance of the ideas
     today, potential future research suggested by the article,
     etc.
You may find the following brochure useful: 
       Efficient
    reading of papers in Science and Technology by Michael
    J. Hanson, 1990, revised 2000 Dylan McNamee.
    
    
    Research Projects
    Research projects (done in groups of size 2+) are a critical
    component of this course. Your goal is to design, build and
    evaluate interesting systems that address issues, solve problems
    and exploit techniques from classroom discussions and
    readings.
    Projects must be written up in a term paper and teams will
    present their results at the end of the course in a systems class
    poster session or mini-conference. Projects ideas will be
    suggested by the instructor, but you are encouraged to come up
    with your own ideas.
    This is a small list of potential ideas
    for projects (access restricted to inside the Department
    Computer Science at Northwestern U.).
    
Project Deliverables and Deadlines
    
      - Proposal - January 28: 2-3 pages describing the
      purpose of the project, work to be done and potential load
      distribution, expected outcome/results, ....
- Literature Survey - February 4: 2-3 pages (plus
      references) describing context and related work for the proposed
      project.
- Design Document - February 11: 4-5 pages with a
      detailed description of the software design, load distribution
      among group members. Construct a detailed sketch of your
      evaluation plan - what hypothesis is to be tested, how will you
      control the test circumstances, what workloads will you apply,
      why will this test enable resolution of the hypothesis, and what
      and how will specific metrics be measured.
- Final Report - March 18: The final report is a
      workshop-level paper describing your work, evaluation, related
      research, potential avenues to explore, etc. Code should be
      submitted electronically.
General Advice
    
    
   
   Readings
    NOTE: Most papers are accessible only from inside the
    Department of Computer Science at Northwestern U.
    
    
    Operating Systems Design
    January 7
    
      - B. Lampson, Hints
      for Computer System Design, ACM Symposium on Operating
      Systems Principles, Dec. 1983, pp 33-48.
- Richard P. Gabriel, "Worse
      is Better", an excerpt (section 2-2.1, pp. 7-10) from
      LISP: good news, bad news, how to win big, AI Expert,
      6(6):31-39, Jun. 1991.
January 9
    
    January 14
    
    Optional Reading
     
     - Andrew S. Tanenbaum, Operating System Design, in
     Modern Operating Systems, 2nd Ed., Upper-Saddle River, NJ,
     Prentice-Hall, 2001.
- M. Frans Kaashoek, Dawson R. Engler, Gregory R. Ganger,
     Hector M. Briceno, Russell Hunt, David Mazieres, Thomas Pinckney,
     Robert Grimm, John Jannotti, and Kenneth Mackenzie, Application
     Performance and Flexibility on Exokernel Systems, Proc. of
     the 16th ACM Symposium on Operating Systems Principles, Oct.
     1997.
- J. Liedtke,On
     Micro-Kernel Construction, Proc. of the 15th ACM Symposium on
     Operating System Principles, Dec. 1995.
- E. Bugnion, S. Devine and Mendel Rosenblum, Disco:
     Running Commodity Operating Systems on Scalable
     Multiprocessors, Proc. of the 16th ACM Symposium on Operating
     Systems Principles, Oct.  1997. 
Communication
    January 16
    
    January 21
    
    Optional Reading
    
      - Andrew S. Tanenbaum and Marteen van Steen,
      Communication, in Distributed Systems: Principles and
      Paradigms, Upper-Saddle River, NJ, Prentice-Hall, 2002.
- John Hartman, Larry Peterson, Andy Bavier, Peter Bigot,
      Patrick Bridges, Brady Montz, Rob Piltz, Todd Proebsting, and
      Uliver Spatscheck, Joust:
      A Platform for Liquid Software. IEEE Computer (1999)
- Wallach, D.A., Hsieh, W.C., Johnson, K.K., Kaashoek, M.F.,
      and Weihl, W.E., Optimistic
      Active Messages: A Mechanism for Scheduling Communication with
      Computation, Proc. of ACM SIGPLAN Symposium on Principles
      qPractice of Parallel Programming (PPOPP), pp. 217-225,
      Jul. 1995.
- Greg Eisenhauer, Fabian E. Bustamante and Karsten Schwan, Native
      Data Representation: An Efficient Wire Format for
      High-Performance Computing, IEEE Transaction on Parallel and
      Distributed Systems, Nov. 2002.
- Kenneth P. Birman, The
      Process Group Approach to Reliable Distributed Computing.
      Communications of the ACM (CACM), 36(12):37-53, Dec.  1993.
- Greg Eisenhauer, Fabian E. Bustamante and Karsten Schwan, Event
      Services for High Performance Computing, Proc. of Ninth
      International Symposium on High Performance Distributed
      Computing (HPDC-2000), Pittsburgh, Pennsylvania, Aug.
      2000.
Processes and Threads
    January 23
    
    January 30
    
      - D. Milojicic, F. Douglis, Y. Paindaveine, R. Wheeler, and
      S. Zhou, 
      Process Migration, ACM Computing Surveys 32(3),
      Sept. 2000.
 Presenter: Kenin Coloma
Optional Reading
    
      - Andrew S. Tanenbaum and Marteen van Steen, Processes,
      in Distributed Systems: Principles and Paradigms,
      Upper-Saddle River, NJ, Prentice-Hall, 2002.
- E. Jul, H. Levy, N. Hutchinson, A. Black, Fine-Grained
      Mobility in the Emerald System, ACM Transactions on Computer
      Systems 6(1):109-133, Feb. 1988.
- R. Gray, D. Kotz, G. Cybenko, D. Rus, Mobile
      Agents: Motivations and State-of-the-Art Systems, Dartmouth
      Technical Report TR2000-365, Apr. 2000. To appear as a chapter
      in Jeffrey M. Bradshaw, editor, Handbook of Agent Technulogy,
      AAAI/MIT Press, 2000. In Press.
- C. Hauser, C. Jacobi, et. al, Using
      Threads in Interactive Systems: A Case Study, Proc. of the
      ACM Symposium on Operating Systems Principles, Dec. 1993.
- K. Amiri, D. Petrou, G. Ganger, G. Gibson, Dynamic
      Function Placement for Data-Intensive Cluster Computing,
      Usenix Annual Technical Conference, Jun. 2000, pp. 307-322.
Naming
    February 4
    
    Optional Reading
    
      - Andrew S. Tanenbaum and Marteen van Steen, Naming, in
      Distributed Systems: Principles and Paradigms,
      Upper-Saddle River, NJ, Prentice-Hall, 2002.
- Fabian E. Bustamante, Greg Eisenhauer, Karsten Schwan, and
      Patrick Widener, Scalable
      Directory Services Using Proactivity, Proc. of
      Supercomputing 2002 (SC 2002), Baltimore, MD, Nov.  2002.
- William Adjie-Winoto, Elliot Schwartz, Hari Balakrishnan,
      Jeremy Lilley, The
      design and implementation of an intentional naming system,
      Proc.  of the 17th ACM Symposium on Operating Systems
      Principles, Dec. 1999.
- David R. Cheriton and Timothy P. Mann, Decentralizing
      a Global Naming Service for Improved Performance and Fault
      Tulerance, ACM Transactions on Computer Systems
      7(2):147:183, 1989.
- Jaeyeon Jung, Emil Sit, Hari Balakrishnan, and Robert
      Morris, DNS
      Performance and the Effectiveness of Caching.ACM SIGCOMM
      Internet Measurement Workshop, Nov. 2001.
Shared and Virtual Memory
    February 6
    
    February 11
    
    Optional Reading
    
      - Kai Li and Paul Hudak, Memory
      Coherence in Shared Virtual Memory Systems, ACM Trans. on
      Computer Systems 7(4):321-359, Nov. 1989.
- K. Harty and D.Cheriton. 
      Application-Contrulled Physical Memory using External Page-Cache
      Management. Proc. of the 5th International Conference on
      Architectural Support for Programming Languages and Operating
      Systems, 1992, pp. 187-197.
       
- Anderson, T.E., The Performance Implications of
      Spin-Waiting Alternatives for Shared-Memory Multiprocessors,
      IEEE Transactions on Parallel and Distributed Systems,
      1(1):6-16, Jan. 1990.
- Daniel J. Scales and Kourosh Gharachorloo. Towards
      Transparent and Efficient Software Distributed Shared Memory
      Proc. of the 16th ACM Symposium on Operating Systems Principles,
      Oct. 1997
       
- Andrew W. Appel and Kai Li. Virtual
      Memory Primitives for User Programs, Proc. of the 4th
      International Conference on Architectural Support for
      Programming Langauges and Operating Systems, 1991.
     
Synchronization
    February 13
    
      - Leslie Lamport, Robert Shostak, Marshall Pease, The
      Byzantine General's Problem ACM Transactions on Programming
      Languages and Systems, 4(3):382-401, July 1982.
 Presenter: Aaron Johnson
Optional Reading
    
      - Leslie Lamport, Time,
      Clocks, and the Ordering of Events in a Distributed System,
      Communications of the ACM, 21(7):558-565, Jul. 1978.
- Andrew S. Tanenbaum and Marteen van Steen,
      Synchronization, in Distributed Systems: Principles
      and Paradigms, Upper-Saddle River, NJ, Prentice-Hall,
      2002.
- Divyakant Agrawal and Amr el Abbadi, An
      Efficient and Fault-Tulerant Sulution for Distributed Mutual
      Exclusion, ACM Transactions on Computer Systems 9(1):1-20,
      Feb. 1991.
- K. Mani Chandy and Leslie Lamport, Distributed
      Snapshots: Determining Global States of Distributed
      Systems.ACM Transactions on Computing Systems, 3(1):63-75,
      Feb. 1985.
Replication, Caching and Consistency
    February 18
    
    February 20
    
    Optional Reading
    
      - Michael D. Dahlin, Randulph Y. Wang, Thomas E. Anderson,
      David A. Patterson, 
      Cooperative Caching: Using Remote Client Memory to Improve File
      System Performance, Proc. of the Symposium on Operating
      Systems Design and Implementation, Nov. 1994.
- Andrew S. Tanenbaum and Marteen van Steen, Consistency
      and Replication, in Distributed Systems: Principles and
      Paradigms, Upper-Saddle River, NJ, Prentice-Hall, 2002.
- C. Gray and D. Cheriton, Leases:
      an Efficient Fault-tulerant Mechanism for Distributed File Cache
      Consistency. Proc. of the 12th ACM Symposium on Operating
      Systems Principles, Dec. 1989.
- Alec Wulman, Geoffrey M. Voelker, Nitin Sharma, Neal
      Cardwell, Anna Karlin, and Henry M. Levy, On
      the scale and performance of cooperative Web proxy caching,
      Proc. of the 17th Symposium on Operating System Principles,
      Dec. 1999.
- D. B. Terry, M. M. Theimer, Karin Petersen, A. J. Demers,
      M. J. Spreitzer, and C. H. Hauser, Managing Update Conflicts
      in Bayou, a Weakly Connected Replicated Storage System.
      Proc. of the Fifteenth ACM Symposium on Operating Systems
      Principles, 1995.
-  R. Ladin, B. Liskov, L. Shira, and S. Ghemewat,
      Providing High Reliability using Lazy Replication. ACM
      Transactions on Computer Systems, 10(4):360--391, 1992.
Storage and File Systems
    February 25
    
    February 27
    
      - Athicha Muthitacharoen, Benjie Chen, and David Mazieres, A
      Low-Bandwidth Network File System, Proc. of the 18th ACM
      Symposium on Operating Systems Principles (SOSP '01), Oct. 2001,
      pp. 174-187.
 Presenter: Jeremy Kwock
Optional Reading
    
      - Andrew S. Tanenbaum and Marteen van Steen, Distributed
      File Systems, in Distributed Systems: Principles and
      Paradigms, Upper-Saddle River, NJ, Prentice-Hall, 2002.
- Mahadev Satyanarayanan, Distributed
      File Systems, in
      Distributed Systems, 2nd Ed., S. Mullender (ed.), NY, ACM
      Press, 1993.
- Thomas E. Anderson, Michael D. Dahlin, Jeanna M. Neefe,
      David A. Patterson, Drew S. Roselli and Randolph Y. Wang Serverless
      Network File System, ACM Transpaction on Computer Systems,
      Feb.  1996.
- Richard G. Guy, John S. Heidemann, Wai Mak, Thomas W. Page,
      Jr., Gerald J. Popek, and Dieter Rothmeier, 
      Implementation of the Ficus Replicated File System, In
      USENIX Conference Proc., pp. 63-71. Anaheim, CA, USENIX. Jun.,
      1990.
- Mendel Rosenblum and John K. Ousterhout, The
      Design and Implementation of a Log-Structured File System.
      ACM Trans. on Computer Systems 10(1):26-52, Feb. 1992.
- Michael N. Nelson, Brent B. Welch, and John K. Ousterhout.
       Caching in the Sprite Network File System.ACM Trans. on
      Computer Systems 6(1):134-154, Feb. 1988.
- John H. Howard, Michael L. Kazar, Sherri G. Menees, David
      A. Nichuls, M. Stayanayanan, Robert N. Sidebotham, and Michael
      J. West.  Scale and Performance in a Distributed File System.
      ACM Trans. on Computer Systems 6(1):51-81, Feb.  1988.
Internet Services
    March 4
    
      - Armando Fox, Steven Gribble, Yatin Chawathe, Eric Brewer,
      and Paul Gauthier. Cluster-based
      Scalable Network Services  Proc. of the 16th ACM Symposium
      on Operating Systems Principles, Oct. 1997, pp. 78-91.
 Presenter: Ashish Gupta
March 6
    
    Optional Reading
    
      -  V.S. Pai, M. Aron, G. Banga, M. Svendsen, P. Druschel,
      W. Zwaenepoel, and E. Nahum.  Locality-Aware
      Request Distribution in Cluster-Based Network
      Servers."Proc. of the 8th ACM/IEEE Symposium on
      Arch. Support for Prog. Lang. and Operating Systems, Oct. 1998,
      pp.205-216. 
- M.  Welsh, D.  Culler, E.  Brewer.  SEDA:
      An Architecture for Well-Conditioned, Scalable Internet
      Services. Proc. of the 18th ACM. Symposium on Operating
      Systems Principles, Oct. 2001.
- S. Gribble, E. Brewer, J. Hellerstein, and
      D. Culler. Scalable, Distributed Data Structures for Internet
      Service Construction. Proc. of the Fourth USENIX Symposium on
      Operating Systems Design and Implementation (OSDI 2000), Oct.
      2000.
Peer-to-Peer, Mobile and Grid Computing
    March 11
    
    March 13
    
    Optional Reading
    
      - B. Noble, M. Satyanarayanan, D. Narayanan, J. Tilton,
      J. Flinn, and K. Walker. Agile
      Application-Aware Adaptation for Mobility. Proc. of the 16th
      ACM Symposium on Operating Systems Principles, Oct.  1997.
- John Kubiatowicz, David Bindel, Yan Chen, Steven Czerwinski,
      Patrick Eaton, Dennis Geels, Ramakrishna Gummadi, Sean Rhea,
      Hakim Weatherspoon, Westley Weimer, Chris Wells, and Ben Zhao,
      
      OceanStore: An Architecture for Global-Scale Persistent
      Storage, Proc. of the Ninth International Conference on
      Architectural Support for Programming Languages and Operating
      Systems (ASPLOS 2000), Nov. 2000.
- F. Dabek, M. F. Kaashoek, D. Karger, R. Morris, I. Stoica.
      Wide
      Area Cooperative Storage with CFS.Proc. of the 18th
      ACM. Symposium on Operating Systems Principles, Oct. 2001. 
- William J. Bolosky, John R. Doceur, David Ely, and Marvin
      Theimer,Feasibility
      of a Serverless Distributed File System Deployed on an Existing
      Set of Desktop PCs, Proc. of the 2000 SIGMETRICS Conference,
      Jun. 2000, Santa Clara, California.
- David De Roure, Mark A. Baker, Nichulas R. Jennings and
      Nigel R. Shadbult, The
      Evulution of the Grid (pre print), Universities of
      Portsmouth and Southampton, UK. In Grid Computing: Making the
      Global Infrastructure a Reality.
    Fabian Bustamante
    
    
Last modified: Thu Nov  6 13:29:06 CST 2008