Module System Software, Media Computer Science (Bachelor) (ER 6)

English language
Compact font

Color scheme

Module summary

System Software

MINB310

Prof. Dr. Thomas Fuchß

/

3rd Semester

Informatik 1, Informatik 2, Softwareprojekt

none

Having successfully completed the module, students will be able to understand and explain the functions and structures of modern operating systems and how they are embedded in various computer architectures. They will be able to use system-related knowledge to design, develop and implement performant software solutions. In addition, they are able to organize, collaborate on and successfully complete complex programming tasks in a team. They have further developed their technical, social and personal skills as well as their communication skills and self-management.

Individual exams
Course System Software

MINB311

Lecture

Prof. Dr. Thomas Fuchß

German

5/4

150 hours in total, including 60 hours of contact study.

Written Exam 90 Min. (graded)

The course "System Software" covers the fundamental tasks and functionalities of modern operating systems and enables students to apply these techniques independently and systematically in teams to solve system-level development tasks. The course is divided into four main thematic areas:

Fundamentals, Process Management, and Scheduling:

  • Understanding the relationship between computer architecture and operating systems.
  • Principles of processor virtualization and limited direct execution.
  • Scheduling algorithms (e.g., Round-Robin, Shortes-Job-First).

File Systems and Persistence:

  • Requirements and differences in HDDs and SSDs.
  • Structure and implementation of file systems.
  • Concepts of free-space management and crash consistency.

Memory Virtualization:

  • Principles of memory segmentation and paging.
  • Management of page frames and allocation strategies.
  • Mechanisms for isolation and memory management.

Concurrency: Processes and Threads:

  • Introduction to threads.
  • Synchronization mechanisms: Mutexes, semaphores, condition variables, monitors.
  • Patterns for parallel and concurrent programming.

In addition, the specific challenges of each topic are discussed, along with common strategies for addressing them. Practical exercises complement the lectures to facilitate the application of theoretical concepts to realistic scenarios.

Slides, videos, textbooks, and other literature:

  • Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. Operating Systems: Three Easy Pieces, (V. 1.10) Arpaci-Dusseau Books, 2023
  • Tanenbaum, Andrew S.; Bos, H. Modern Operating Systems (4th Edition) – Pearson, 2014
  • Stallings, W. Operating Systems: Internals and Design Principles (8th Edition) – Pearson, 2014


The lecture will take the form of seminars with exercises.

Course System Software Laboratory

MINB312

Laboratory

Prof. Dr. Carsten Sinz

German

3/2

90 hours in total, including 30 hours of contact study.

Laboratory Work 1 Semester (not graded)

In the lab, small groups (typically three people) work on multiple tasks related to system-level programming in C and C++.

The goal is to familiarize students with the interfaces to the Linux operating system and learn how to practically utilize the functionalities they provide.

Topics covered include file systems, processes, communication, memory management, linked data structures, and bit manipulation.

The specific tasks for each exercise vary, encompassing, e.g., accelerating (parallelizing) an existing ray tracer using multiple processes, processing image files to produce mosaics, developing a broadcast server for song lyrics, or compressing image data using run-length encoding.

The implementations in C and C++ deepen students' skills in working with system libraries, dynamic data structures, bit operations, memory management, and pointers. In addition to the main problem, each task includes several preliminary smaller exercises that guide students toward the final solution.

Introductory slides on the topic of each exercise.

In-depth information on the exercise sheets.