CS330: Introduction to Operating Systems

Fall  2010

 

Instructor: Howard J. Hamilton, CW308.21, #585-4079

Email: hamilton@cs.uregina.ca

Website: http://www.cs.uregina.ca/~hamilton/courses/330

Lectures: CL 417, MWF 2:30-3:30 pm

Office Hours: CW308.21, MWF 1:00-2:00 pm or by appointment. 

Required Text:

·        A. Silberschatz, P. Galvin, and G. Gagne, Operating Systems Concepts, 8th edition Wiley, 2008. (6th or 7th edition can be used instead; other editions can also be used with some small supplements.)

Recommended Text:

·        J. S. Gray, Interprocess Communications in Linux: The Nooks & Crannies, Prentice-Hall, 2003. (The older Interprocess Communications in UNIX can be used equivalently.)

Reference Books:

·        M. Brain and R. Reeves, Win32 System Services, Prentice-Hall PTR, 2001.

·        Mark Russinovich and David A. Solomon, Windows Internals: Fifth Edition, Microsoft Press, 2008,  ISBN 0735625301 or 978-0735625303).

Mark Distribution:

·        10% = Midterm, in class, Monday, October 25, 2010, 2:30 pm – 3:20 pm (closed book, 50 marks, 50 minutes).

·        10% = Laboratory Assignments (students must be present in lab room)

·        40% = Project, due Monday, November 24, 2010, 11:55 pm; evaluation in CL136 labs December 2-3, 2010 (students must be present in the lab room).

·        40% = Final exam, Monday, December 13, 2010, 2:00 – 5:00 pm (closed book, 3 hours, 180 marks).

·        +/-5% = Instructor's discretion

Other Dates:

·        Thursday, November 15, 2010: Last day to drop a course without a failing grade.

·        Wednesday, December 6, 2010: Last lecture.

·        Last week of labs: week of November 22, 2010.


Notices

·         If there is any student in this course who, because of a disability, may have a need for accommodations, please contact the Coordinator of Special Needs Services at 585-463l. It is your responsibility to obtain a suitable letter and present it to me.

·         All exams are "closed book," with no additional material permitted. You will be allowed the use of nonprogrammable calculators, although they are not needed. Coats, books, pencil cases, and other accessories should be left at the front of the room during exam periods. If you are in doubt about the meaning of an exam question, state your assumptions and answer to the best of your ability. No additional information will be provided during the examination.

·         Source code and your test files for Project Phases must be submitted electronically by 2:20 pm on specified dates.

·         All documentation for Project Phases must be submitted on paper in typed form.    The first page of your submission must CLEARLY indicate your name, student number and project phase number, and nothing else.  Programs must be well documented.

·         Late assignments (Project Phases) will be penalized. Partial marks will be awarded for incomplete assignments. A substantial fraction of marks for programming assignments will be assessed based on exact matching (including spacing) to desired output.  A working program missing some features will likely be awarded a higher mark than a non-working program. Use a source code control system or make regular copies of your program, especially before adding or reorganizing code.

·         Keep your returned assignments and midterm. Sometimes grades get recorded incorrectly. You will have to show your midterm with the correct marks to get such problems resolved.

·         If you have any complaints about marking, attach a written explanation on a fresh sheet of 8.5"x11" paper to the front of your assignment and submit it your instructor (Hamilton).

·         CHEATING WILL NOT BE TOLERATED. Co-operation on programming assignments must be limited to verbal discussion of concepts rather than the sharing of program code or written documentation. For example, if you are given an assignment on scheduling, you may legitimately discuss how scheduling techniques work and how arrays or queues are used in C++, but you MUST NOT share any code from the solution. Any resemblances in the submitted code will be assumed to be the result of cheating. Copying of assignments is plagiarism. Allowing your assignments to be copied will be treated the same as copying. You are NOT allowed to work in groups on the assignments. THE CONSEQUENCE OF PLAGIARISM OR ANY OTHER FORM OF CHEATING MAY RANGE FROM A ZERO GRADE, TO FAILURE IN THE CLASS, TO EXPULSION FROM THE UNIVERSITY. Please note that the department head of Computer Science and the Dean of your faculty will be informed of any such incident, as per university regulations. Refer to the section on Academic Misconduct and Penalties in the General University Calendar.


Lecture Outline

The following textbook abbreviations are used:

·  SGG78 = Silberschatz, Galvin, and Gagne, Operating Systems Concepts, either the 7th or 8th edition

·  SGG8 = Silberschatz, Galvin, and Gagne, Operating Systems Concepts, 8th edition

·  SGG7 = Silberschatz, Galvin, and Gagne, Operating Systems Concepts, 7th edition

·  SGG6 = Silberschatz, Galvin, and Gagne, Operating Systems Concepts, 6th edition

A tentative lecture outline is given below, along with required readings.

  1. Introduction to Operating Systems (1 week: 2 hours)
  2. File Systems (2 weeks: 6 hours)
  3. Processes (1 week: 3 hours)
  4. Forks, Signals, and Pipes (1 week: 3 hours)
  5. CPU Scheduling (1 week: 4 hours)
  6. Process Synchronization and Deadlock (2 weeks: 5 hours)
  7. Memory Management (3 weeks: 9 hours)
  8. Distributed Algorithms (1 week: 3 hours)
  9. Input/Output (time permitting)