SYSC 4001: Operating Systems (Winter 2020)


Latebreaking News

·         None, the course is over J


In the Winter 2020 term, Thomas Kunz was teaching SYSC 4001B, one of two concurrent sections of our undergraduate course on Operating Systems. The online calendar description can be found here. This page contains some information about the course and links to additional resources available to the class, either provided by the instructor or existing on the Internet. Assignment submissions and other announcements are handled through cuLearn.

 

What is an OS? That is a difficult (and contentious) question.

·         The Economist has an article about Microsoft and the lawsuits around Windows in the US and Europe. This gives you a good idea of the kind of discussion about "What is an OS?" in the case of Microsoft.

·         In Ottawa, we are actually home to a company that develops a “hot” OS: QNX Neutrino, developed by QNX (a subsidiary of BlackBerry), an OS which plays a potentially important role in cars.

·         Google is developing its own OS (for PCs, in addition to Android for smartphones), called Chrome OS. A nice little intro video clip about Chrome OS is available from YouTube.

·         A slightly humorous take on OS is this MP3 file (password-protected). Warning: uses rude language :-).

·         January 14, 2020, marks the end of life for Windows 7 (so Operating Systems arguably do go and die eventually).

·         Not related to the course per se, but an interesting article: Why are engineers so bad at predicting the future?

·         Another interesting read, more related to the course: The 10 Operating System Concepts Software Developers Need to Remember. We cover the first 6 of them in this course, the last 3 would be covered, I assume, by a course on Distributed Operating Systems, as offered by Computer Science, for example (COMP 4000). The 7th principle, virtualization, is covered by the course textbook in one of the latter chapters…

·         Process synchronization: a classic problem is the Dining Philosopher’s Problem

·         Speaking of animations: here is a set of animations to illustrate various aspects that we covered in class (password-protected).

The following textbook is mandatory in this course: William Stallings, Operating Systems: Internals and Design Principles, 9th edition, Pearson 2018, ISBN-9780134670959. One strong argument in favor of this (as opposed to some other) textbook is the fact that it exemplifies the abstract concepts we will discuss with examples taken from probably the most widely used operating systems: Windows, Linux, and Android. This will help students to put the general design principles and their relative trade-offs into perspective.

Students who do not write the final exam have the option to write an exam at a later point in time. This rule, aimed at students who are sick during exam periods, apparently leads to some abuse by students who strategically choose which exam to write when. In an effort to be fair to students who cannot write the exam for a legitimate reason, while at the same time discouraging the abuse of this rule, the following policy has been adopted widely in the Faculty of Engineering and Design:

Students taking supplemental or deferred examinations have
several more months to study than their colleagues. Also they
have a less-crowded examination schedule. Thus it is only fair to
the majority of students to expect a substantially better
performance on these examination than on the final.

This is the policy that I will also adopt for this course. Please note that the above formulation leaves it up to the instructor whether the supplemental or deferred examination will be harder or the marking scheme will be more rigorous.

 

A note on assignments and cheating: the assignments are individual assignments. Evidence of cheating will be investigated and will be reported to the Associate Dean, see also General Regulations 10. Cheating consists of collaboration (handing in someone else's solution as your own as well as allowing someone else to copy your solution) and extensive quoting from textbooks and other sources without proper reference. I do encourage students to discuss the assignment questions with each other, and to consult textbooks and other sources to derive an answer. However, I also do expect students to hand in solutions that are clearly their own effort, clearly identifying the extensive use of external sources (and your classmates do not count as valid external sources).


·         Course handout


Password-protected course material: sample exams, study questions, etc. 

·         Sample study questions, sample answers to study questions


I did generated PDFs from the slides I used in class, 4 slides to a page. You can download them here, but be advised that, for the midterm and the final exam, only the textbook and potentially a calculator are allowed as resources:

·         Introduction and Operating System Overview

·         Process Description and Control

·         Threads

·         Concurrency: Mutual Exclusion and Synchronization

·         Concurrency: Deadlock and Starvation

·         Memory Management

·         Virtual Memory

·         Uniprocessor Scheduling

·         Multiprocessor and Real-Time Scheduling

·         I/O Management and Disk Scheduling

·         File Management