SYSC 4906B: Advanced Operating Systems (Winter 2021)


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 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).

 

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.