Foundations of Computer Architecture and Operating Systems
Lecturer: Prof. Dr. Michael Engel
Description
This module covers the fundamentals of hardware and system software in modern computer systems, with a focus on the interaction between software and hardware and its impact on system characteristics such as performance, power consumption, security, and reliability. Based on an introduction to the technical fundamentals of computer science—such as digital circuits, processor architecture, memory hierarchy, input/output units, and bus systems, as well as information representation (number formats, character encoding), digital logic, and arithmetic—the module explains the use, management, and allocation of hardware components by system software, particularly operating systems.
Key topics include the interaction between software and hardware, the implementation and control of concurrency and parallelism in computer systems, as well as the communication, synchronization, and isolation of various concurrent activities, and the management and optimization of access to the various elements of the memory hierarchy.
The topics are covered using the RISC-V processor architecture, low-level programming languages (C and assembly), and examples of modern operating systems (e.g., Linux). Additionally, an introductory overview of computer networks and aspects of system security is provided.
As part of the course, students will also gain practical experience in using the Unix command line and in assembler programming. Students will primarily acquire this knowledge through self-study, using the materials and assignments provided.
