Course Overview

In this course, we will study the concepts that underlie operating systems. We learn about user and system processes and the algorithms that are commonly used for their scheduling and management. In this context, we will study the notion of concurrent processes and threads and synchronization techniques.

Processes are executed in the main memory. One of the major challenges that the operating system designers face is the choice of algorithms for managing the memory (primary and secondary storage.) Students will learn these algorithms, their advantages and disadvantages.

Operating systems have to provide a wide range of functionality to applications to allow them to control devices that are attached to computer systems. We will take an in depth look at I/O system design, interfaces, and internal system structures and functions.

Finally, we will learn about processes that do not share memory or a clock; a distributed system.

Textbook
Andrew S. Tanenbaum Modern Operating System, Prentice Hall, 3rd edition (2008)
Important Dates
Wednesday, October 21 Midterm Exam 1
Monday, December 14 Final Exam 8:00am-9:50am
Coursework
Lectures: An outline of the material to be covered in the course is noted in course schedule. Students are required to attend all lectures (see below for more on this) and to read the relevant sections of the text prior to lecture. Students are responsible for making arrangements to get notes from other students if they are absent.

Projects: You will be given two large projects during the semester. The description of these projects will appear in the projects page when they are assigned. Projects account for 35% of the course grade.

Homework & Quizzes: Approximately 12 pop-quizzes and synchronization assignments will be given during the semester. Pop-quizzes will be given on random days at the beginning of the class and are designed to be completed in a short amount of time. Synchronization assignments will be in the form of small programming assignments that you will complete outside of the class time. These assignments will be posted here as the semester progresses. Synchronization assignments and pop-quizzes account for 20% of the course grade. Note: as stated earlier, pop-quizzes will be given at the beginning of the class and as such, you could easily miss them if you were to be late to the class. You will forfeit the entire 20% of your semester grade for this category if you were to miss more than two in-class pop-quizzes during the semester.

Exams: The examinations include material covered in lecture, material covered in the relevant sections of the course text, and material covered to support the design and implementation of your projects. There will be one midterm exam and a comprehensive final exam. Taking exams at times other than scheduled is only done under extreme circumstances and must be arranged in advance with the instructor. Exams comprise 35% of the course grade. Final exam is comprehensive.

A few notes on the policies related to these units.
Grading
Projects 35%
Homework & Quizzes 20% (see the note under "Homework & Quizzes")
Midterm 15%
Final Exam 20%
Policy on Collaboration
You are encouraged to discuss course material with other students. Don't be shy about consulting with anyone, but please understand that you, and only you, bear the responsibility for solving the problems associated with producing a successful project or solving a homework assignment. Please read the CS Department policy on plagiarism and keep the following in mind.

For the details of University policies regarding add and drop, cheating and plagiarism, grade appeal, access to programs for students with disability, and diversity statement, refer to Important Policies and Procedures for Students web-site.

CS majors must take this course for a letter grade. University guidelines regarding the grade of Incomplete will be strictly adhered to. Incomplete grades will only be given for circumstances beyond a student's control; inability to keep up with the work due to an excessive course load, for example, is insufficient to warrant an Incomplete.