Open Educational Resource (OER) presentations for a course on Operating Systems

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

2 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 provided below are generated via LaTeX from Org source files.

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.

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