Open Educational Resource (OER) presentations for a course on Operating Systems
1. Warning
As of late 2023, this material will not be used for teaching any longer. The follow-up module IT Systems covers basics of Operating Systems.
2. What is this?
This page collects OER presentations (HTML slides with embedded audio and PDF variants, available under free and open Creative Commons licenses) for a course on Operating Systems (following the book Operating Systems and Middleware: Supporting Controlled Interaction by Max Hailperin) as part of the module Computer Structures and Operating Systems for 4th-term students in the Bachelor program in Information Systems at the University of Münster, Germany. Some background concerning the origin of this project and the adopted teaching and learning strategy Just-in-Time Teaching (JiTT; see here for the Wikipedia entry) is explained in its README.
If you are teaching or learning Operating Systems (OSs), feel free to use, share, and adapt my presentations. As usual for projects on GitLab, you can open issues to report bugs or suggest improvements, ideally with merge requests. The document CONTRIBUTING contains some pointers for contributors.
Students in Münster have taken courses on programming in Java, data structures and algorithms, and data modeling before taking “Computer Structures and Operating Systems.” As prerequisite for Operating Systems, students should
- be able to write, compile, and execute small Java programs,
- be able to use basic data structures (stack, queue, tree) and algorithms (in particular, hashing);
- also, being able to explain the database transaction concept and update anomalies will ease understanding of presentations on mutual exclusion.
Learning objectives: After taking this course, students will be able
- to discuss major architectures and components of modern OSs; to explain and contrast processes and threads and their roles for OSs and applications,
- to explain OS data structures, algorithms, and management techniques,
- to analyze programming challenges arising from concurrency and to apply appropriate techniques addressing these challenges,
- to discuss the notion of IT security and to apply security mechanisms provided by the operating system in support of secure IT systems.
3. Presentations
Note: OER presentations (HTML slides and PDF documents) linked here are generated automatically from their source files (with the FLOSS software emacs-reveal). Presentations and source files are published under the Creative Commons license CC BY-SA 4.0. Files are updated throughout the term (and thereafter). The PDF versions below come in two variants: the first one mirrors the presentation layout on screen, while the second one provides a condensed format, generated via LaTeX from Org source files.
- List of index terms for Operating Systems (may simplify search for specific topics).
- OS Motivation (PDF, condensed PDF)
- OS Overview (PDF, condensed PDF)
- Self-study presentations
- OS Introduction (PDF, condensed PDF)
- Interrupts (PDF, condensed PDF)
- Threads (PDF, condensed PDF)
- Scheduling (PDF, condensed PDF)
- Mutual Exclusion (MX) (PDF, condensed PDF)
- MX in Java (PDF, condensed PDF)
- MX Challenges (PDF, condensed PDF)
- Virtual Memory I (PDF, condensed PDF)
- Virtual Memory with Linux (PDF, condensed PDF)
- Virtual Memory II (PDF, condensed PDF)
- Processes (PDF, condensed PDF)
- Security (PDF, condensed PDF)
- Older presentations
- 2020: JiTT for OS
- 2022: Learning and Teaching
For offline work (also on mobile devices), you can download the results of the latest pipeline execution on GitLab or clone the source repository including all necessary resources and generate presentations yourself.
4. Source code and licenses
In the spirit of
Open Educational Resources
(OER), source files, necessary software, and presentations are published in this GitLab repository
under free licenses.
All OER presentations are created from plain text files in a simple text
format called Org Mode (a
lightweight markup language),
focusing on content, while layout is defined separately.
Importantly, the separation of content and layout
simplifies collaboration across organizational boundaries, and the use
of a simple text format enables comparisons of adapted or enhanced
versions (with diff
-like functionality).
Using the free software emacs-reveal these text files are translated into reveal.js HTML presentations, which can be viewed on (almost) any device with a Web browser. In times of dragnet surveillance and surreptitious as well as blatant data brokerage I recommend the Firefox variant Tor Browser as tool for digital self-defense (here in English and here in German); presentations work for me under the higher-than-default “Safer” security settings in Tor Browser.