CS 2510 - Advanced Operating Systems

Class: MW 10:00-11:15am, SENSQ 5313
Instructor:  Daniel Mosse (mosse@cs.pitt.edu)
Office Hours: 6423 SENSQ, M W from 9-10am and 11:15am-12:00pm
Phone: 412-624-8923

TA: James  Larkby-Lahet, at jamesll in the cs.pitt.edu domain
Office Hours: 5105 SENSQ, TH 2-4pm, W 4-6pm (or by appointment)
Phone: 412-624-TBD (to be discovered)   (Office)

Mailing List Announcement
A class mailing list will be compiled, and will be used for important announcements. It is VERY important that you be included in this list. It is therefore your responsibility to e-mail the TA and request to be included in the class mailing list.


Classnotes (PDF format <2 slides/page>):


  1st midterm Exam October 21, 10:00am, in the classroom
  2nd midterm Exam December 02, 10:00am, in the classroom

  Project report due December 7, 10:00am, in the classroom



Readings, Textbooks, and Prelims

Papers will be assigned as readings throughout the term.  Since we'll be describing PRINCIPLES, most texts in distributed systems are acceptable supplemental reading, even books as old as "Distributed Systems" by Andrew S. Tanenbaum and Maarten Van Steen (2002), or "Advanced Concepts in Operating Systems" by Mukesh Singhal and Niranjan Shivaratri (1994).

To complete the PhD preliminary exam requirements, a student must take both the midterm and final exams of the course, and answer the additional question(s) that are designated as such. These questions draw from material that is expected from the undergraduate operating systems course. The midterm will include at least one additional question focusing on uniprocessor synchronization problems, while the final is expected to include at least one question dealing with file systems and/or I/O scheduling. Either the midterm or final can include questions on scheduling algorithms. In addition to the material covered explicitly in this course, the reading list for prelim preparation includes the following from the undergraduate text:

A. S. Tanenbaum: "Modern Operating Systems",  material on Processes and Threads, File Systems, Input/Output (no thin clients), and Deadlocks
2nd edition: Chapters 2, 3, 5, 6
3rd edition: Chapters 2, 4, 5, 6



Grading

  •  25% Midterm exam
  • 25% 2nd Midterm exam
  • 35% Programming projects. The projects have an estimated 10 hours per week for a good programmer.
  • There will be assignemnts and pop quizzes throughout the term. These will be worth 10% of your final grade.
  • An additional 5% bonus is possible based on class participation.
     
  • Note: You must average above 50% in each of the following two parts in order to pass the class: (1) the programming assignments and  (2) the exams.  Lower than 50% on either portion of the class will result in a failing grade regardless of the overall score.


    List of Topics (tentative):


    Attendance

    Class attendance is officially mandatory. Homeworks, assignments, and important dates will be posted on the class web page, but this is provided as a courtesy and is not always complete. It is your responsibility to keep up with class materials and assignment.

    Office hours are optional. They are your chance to ask question and get help from the professor and the TA about the material being covered, the programming assignments, etc.


    Academic Honesty: Collaboration vs. Cheating copied from Ahmed Amer

    This really should not be an issue, but to make things as clear as possible the following is necessary.

    You are encouraged to discuss the course material and concepts with other students in the class. However, all work that you submit must be your own. Under no circumstances may you look at anyone else's code or show anyone else your code. And while you may discuss the concepts used in the programming assignments, you may not discuss implementation details of the assignments themselves.

    If you are caught copying or otherwise turning in work that is not solely your own, you will fail the course.

    The bottom line is that you are expected to conduct yourself as a person of integrity - you are expected to adhere to the highest standards of academic integrity. This means that plagiarism1 in any form is completely unacceptable. As a (soon to be) computing professional, I encourage you to consult the code of ethics appropriate to your discipline2.

    Plagiarism will be assumed until disproved on work that is essentially the same as that of other students. This includes identically incorrect, off-the-wall, and highly unusual duplicate answers where the probability of a sheer coincidence is extremely unlikely. All parties to this unacceptable collaboration will receive the same treatment.

    You should bring a picture identification with you to all examinations and be prepared to show it upon request.

    If you are unsure of what is and is not allowed by this policy, talk to the instructor.

    1 pla-gia-rize vt. to steal and pass of as one's own (the ideas or words of another) to present as one's own an idea or product derived from an existing source - pla-gia-riz-ern. (source: Webster's New World Dictionary).
    2 The Association for Computing Machinery is http://www.acm.org/, the IEEE is http://www.ieee.org/ and the IEEE Computer Society is http://www.computer.org/.



    SAMPLE   MATERIALS

    OLD SAMPLE 2nd midterm study guide here . Note that this is just set of things that you should know. you're actually responsible for all the stuff in the reading list (book chapters, classnotes, handouts, and class discussions).


    OLD SAMPLE 1st midterm Exam study guide here. Note that this is just set of things that you should know. you're actually responsible for all the stuff in the reading list (book chapters, classnotes, handouts, and class discussions).

    OLD Project descriptions for your information only
  • Project1

  • Project 3
      Project 3 clarifications
  • in ps (size: 43K) and in pdf (size: 69K) - Distributed Mutual Exclusion
    this is a list of the changes to the original (not shown) project description
    this is an updated list of the requirements.
  • SELF ASSESSMENT (if you cannot do this, then you should drop the class)
    Client/Server Programming
    submission instructions
    ps (size: 44K) or pdf (size: 66K)
    clarifications and grading sheet and sample expect script (not mandatory)
    sample makefile and makefile stuff from GNU (Mark S.)