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 haveseveral 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