CS 1550: Introduction to Operating Systems
Spring 2005

Daniel Mossé and José Brustoloni

Computer Science Department
University of Pittsburgh


NEWS:

  • The 1st mid-term exam for this course for both sections will be held on Thursday, Feb 24, from 8:00pm - 9:30pm in 525 Benedum.

  • The 2nd mid-term exam for this course for both sections will be held on Thursday, Apr 21, from 8:00pm - 9:30pm in 324 Cathedral of Learning.

[Brustoloni]

Class: T H 1:00-2:15 p.m., SENSQ 5129
Instructor: Prof. José Brustoloni (jcb@cs.pitt.edu)
Office Hours: Tues 2:15-4:30 p.m. and Thurs 2:15-4:00 p.m.
Office: 6111 SENSQ, Tel: 412-624-8852

 [Mosse]
 
Class: T H 6:00-7:15 p.m., SENSQ 5502
Instructor: Prof. Daniel Mossé (mosse@cs.pitt.edu)
Office Hours: Tues and Thurs 5:00-6:00 p.m. and 7:15-8:00 p.m.
Office: 6423 SENSQ, Tel: 412-624-8923

[Recitations]

Recitations: T H 7:25-8:15 p.m.

F 10:00-10:50 a.m. and 11:00-11:50 a.m.                   

Location: 5502 SENSQ
TA: Matt Craven (mcraven@cs.pitt.edu)
Office Hours: M W F 1:00-3:00 p.m.
Office: 6059 SENSQ, Tel: 412-624-0579
Webpage: CS1550

[Grading]

Recitations: F 10-10:50 a.m.and 11:00-11:50 a.m. (Feb. 21 only)
TA: Qinglan Li (qinglan@cs.pitt.edu)
Office Hours: M W 9:00 a.m.-12:00 p.m.     
Office: 6803 SENSQ, Tel: 412-624-8453
Webpage: CS1550


Required Text: Modern Operating Systems, Tanenbaum, 2nd edition, ISBN: 0130313580

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 one of the TAs and request to be included on the CS1550 class mailing list.


Course Objectives
The purpose of this course is to understand and use the basic concepts of operating systems, common to most computer systems, which interfaces the machine with the programmer. In particular, this class is meant to introduce processes such as the processing unit, process management, synchronization, memory management and I/O management.

The successful student will be able to understand the basic components of a computer operating system, and the interactions among the various components. The course will cover an introduction on the policies for scheduling, deadlocks, memory management, synchronization, and file systems. The students will implement solutions via C/C++ programs, and through NACHOS (Check out the SALSA tutorial).


Grading

  • 30% 1st mid-term exam (one exam for both sections)
  • 30% 2nd mid-term exam (one exam for both sections)
  • 30% Programming projects. The projects have an estimated 10 hours per week for a good programmer.
  • There will be pop quizzes throughout the term. These will be worth 10% of your final grade.
  • An additional 5% bonus is possible based on class participation.
  • There may be optional homework assignments, these will not directly affect your final grade but are important for you to keep up with the material and to identify possible problems.
  •  

    Note: You must average above 50% on the programming assignments and on the exams in order to pass the class. Lower than 50% on either portion of the class will result in a failing grade regardless of the overall score.


    Programming Assignments
    The programming assignments are an important component of the course. If all goes as planned, you will be implementing several components of an operating system kernel running atop a simulated DLX processor. While it would be ideal to work on an actual operating system, circumstances make that impractical (and an operating system, unlike a compiler, really is too complex to write our own from scratch).

    We will be using NachOS, and C/C++. Check out the SALSA tutorial.

    The programming assignments will be evaluated on several factors:
  • Documentation: your code must be well-commented and must include a design document describing your solution.
  • Correctness: your code must do what it is supposed to do.
  • Structure: your code should be broken into natural functions and modules.
  • Style: your code should be easy to read, well indented, well commented, and use clear, self-explanatory variable and function names.
  • Your grade for each assignment will be based on your design (40%) and your code (60%). Good design and documentation are absolutely crucial for this class because of the difficulty of the concepts.

    Due dates and lateness:

  • Late work will be penalized. 10% per weekday (no penalty on weekends).
  • Graded work will be returned as soon as possible, usually within one week.
  •    


    Attendance
    Class attendance is mandatory. Homework, 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 fault if you miss something important because you skipped class.

    Recitation attendance is also required. You will miss important material on the programming assignments if you do not attend.

    Office hours are optional. They are your chance to ask the professor and the TAs questions about the material being covered, the programming assignments, etc.


    Academic Honesty: Collaboration vs. Cheating
    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, We 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/.


    Students with disabilities

    If you have a disability for which you are or may be requesting an accommodation, you are encouraged to contact both your instructor and the Office of Disability Resources and Services, 216 William Pitt Union, (412) 648-7890 / (412) 383-7355(TTY), as early as possible in the term. DRS will verify your disability and determine reasonable accommodation for this course.


    Getting Answers to your Questions

  • Attend class and recitations
  • Check the class web page frequently - we will post as much information as we can
  • Meet with the professor and TAs during office hours
  • Email the professor and TAs
  • Please do not drop by or call on the phone outside of office hours


    Class Schedule

  • The class schedule is put up here.
  • The schedule is likely to change, so keep checking regularly.
  •  

    These web pages were built using material kindly provided by Prof. Scott A. Brandt