Latebreaking News
·
Nothing,
the course is over
In the Winter 2021 term, Thomas
Kunz is teaching SYSC 4906B: Advanced Operating Systems. SYSC 4906 is the
generic code for a special topics course, and can be taken
as elective. The Advanced Operating Systems course is open to students in
Software Engineering and Computer Systems Engineering, and requires SYSC 4001
(Operating Systems) as pre-requisites. 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 context
of this (quite well-known) court case.
·
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 that 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).
·
Another
interesting read, more related to the course: The
10 Operating System Concepts Software Developers Need to Remember.
The following textbook covers the basic ideas and I used it in the pre-req course, SYSC 4001 (Operating Systems): 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. In this course, building on these basic concepts, we will study how modern Operating Systems are designed, targeting a range of different domains: virtualization, embedded OS, OS for mobile devices, distributed OS, etc.
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 tothe 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).
eProctoring: as long as courses are
delivered online, I reserve the right to request eProctoring
for any of the exams we write (midterm, final exam). eProctoring has been approved by the Carleton
University Senate as a legitimate option to ensure academic integrity when
writing exams, but it does impose a certain amount of work on students. Since
there is no required textbook, I expect that you will have (or acquire) a
computing platform that will allow you to fully participate in eProctoring. As of Nov. 2020, the minimum hardware and
software requirements are follows:
·
Hardware:
Desktop, or Laptop
·
OS:
Windows 10, Mac OS 10.14, Linux Ubuntu 18.04
·
Internet
Browser: Google Chrome, Mozilla Firefox*, Apple Safari, or Microsoft Edge
·
Internet
Connection (High-Speed Internet Connection Recommended)
·
Webcam
(HD resolution recommended)
Note: Tablets, Chromebooks
and Smartphones are not supported at this time.
Windows-based tablets are not supported at this time.
* Support for CoMaS webcam functionality is diminished
when using Mozilla Firefox
·
Course
handout: posted on cuLearn
·
Recorded
lectures: deleted
Course
Outline and Material.
The slides I will use in the lectures will be posted
as they become available. To access them, you will need a user ID and a
password, which are posted on cuLearn.
Also, note that I may make changes to the set of slides after posting a first version, they are usually only stable once I used them in a
lecture….
·
Course
Introduction
·
Review
of basic OS concepts (grand tour of SYSC 4001)
o Processes and CPU Scheduling:
o Memory Management
o Concurrency
o I/O Management and Basic File
Systems
·
Advanced
File Systems
·
OS
Security
·
Linux
·
Android
·
Embedded
OS
·
Virtualization
·
Distributed
OS
Note: the course material is
taken either from the recommended textbook (Stallings: Operating Systems) or
from the online textbook Operating
Systems: Three Easy Pieces. The latter also has some humorous dialogues
between a student and a professor on various OS topics, which I linked to in
the above outline. In a way, these dialogues remind me of the classic
description of Kerberos in Designing an
Authentication System: a Dialogue in Four Scenes, which I strongly
recommend everyone to read.