CS330: Introduction to Operating Systems

Fall 2023

 

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

Email: hamilton@cs.uregina.ca

Website: http://www.cs.uregina.ca/~anima/330

Lectures: web-delivered lectures

Office Hours: CW308.21, W 4:30-5:20 pm or by appointment. 

Required Text:

·         A. Silberschatz, P. Galvin, and G. Gagne, Operating Systems Concepts, any edition, Wiley. (These notes assume the 8th edition but any other 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 person, CW 308.24, Thursday, November 2, 2023, 4:30 pm (closed book, 50 marks, 50 minutes).

·         10% = Laboratory Assignments (labs must be completed virtually)

·         40% = Project, due Sunday, December 3, 2023, 11:59 pm; evaluation in-person December 5, 2023.

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

·         +/-5% = Instructor's discretion

Other Dates:

·         Friday, September 29, 2023: National Day for Truth and Reconciliation. No lectures, labs, or office hours.

·         Monday, October 9, 2023 – Friday, October 13, 2023: Reading week. No lectures, labs, or office hours.

·         Friday, November 10, 2023: Remembrance Day. No lectures, labs, or office hours.

·         Wednesday, November 15, 2023: Last day to drop a course without a failing grade.

·         Monday, December 5, 2023: End of lecture period.


Notices

·         Accommodations: Students in this course who may have need for specialized accommodations should contact the Centre for Student Accessibility (Riddell Centre 229, 306-585-4631, accessibility@uregina.ca) and must discuss their accommodation letter with their instructor.

·         Attendance policy (NOT RELEVANT IN 202330): Attendance at lectures is expected.

·         Examinations: All exams are closed book. One sheet of information will be prepared by the instructor and made available during the examination. 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 about the questions will be provided during the examinations.

·         Assignments: There will be six assignments, of which the first five will be programming assignments. You may be asked to show how to program aspects of the assignments according to your submitted work. This course requires extensive programming. If you could not complete programming assignments in other courses, it is recommended that you drop this course immediately.

·         Submission of assignments: All assignments should be submitted via URCourses before the specified time on the due date. Make sure to submit draft versions of your assignments well before their deadlines in case anything goes wrong with the submission process. Please be warned: attempts to submit assignments in the last five minutes often fail to work. If problems with submission occur, you may submit to the “Other Submissions” area of the CS 330 part of URCourses (preferred) or email to Howard.Hamilton@uregina.ca (less preferred).

·         Late assignment policy: 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.

·         Marking of assignments: Assignments will be evaluated by a Teaching Assistant. Marks will be awarded primarily based on meeting the functionality requirements of the assignment. Partial marks will be awarded for incomplete assignments for the parts that work. A working program missing some features will almost certainly be awarded a higher mark than a non-working program. All grades assigned to assignments are conditional based on a possible oral or written review of concepts with the instructor or Teaching Assistant. Students may be quizzed on concepts before or after their assignments are marked. Keep a copy of your submitted assignments and exams.

·         Complaints about marking: If you have any complaints about marking, send the instructor a detailed explanation (via UR Courses or email Howard.Hamilton@uregina.ca). Identify which assignment, your current mark, which portion of the assignment needs to be reexamined, and why. Do not contact the marker directly.

·         Individual assignments: Individual work on assignments is required. 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 colliding objects in games, you may legitimately discuss how collisions are detected and resolved and how objects can be displayed in C++, but you MUST NOT privately share any code from the solution. Copying of assignments is a form of 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. Due to the cumulative nature of the assignments, if there is plagiarism found on any one assignment, a zero will be assigned for all assignments.

·         Missed exam policy: If you miss a test, contact the instructor immediately.

·         Academic integrity: Academic integrity requires students to be honest. Assignments and exams are intended to help students learn; grades show how fully this goal is attained.  Thus, all work and grades should result from a student’s own understanding and effort.

·         Academic misconduct: Acts of academic misconduct violate academic integrity and are considered serious offences by the University. Examples include, but are not limited to, cheating on tests or exams, plagiarizing, copying from others, falsifying lab results, etc. All instances of academic misconduct will be reported to the Associate Dean Academic for investigation. Full details about relevant university policies are provided in the Undergraduate academic calendar. As a student, you are encouraged to understand your obligations, as well as your rights.


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)

MIDTERM EXAMINATION

  1. Process Synchronization and Deadlock (2 weeks: 5 hours)
  2. Memory Management (3 weeks: 9 hours)
  3. Distributed Algorithms (1 week: 3 hours)
  4. Input/Output (time permitting)