252-0061-00L  Systems Programming and Computer Architecture

SemesterHerbstsemester 2020
DozierendeT. Roscoe, A. Klimovic
Periodizitätjährlich wiederkehrende Veranstaltung


252-0061-00 VSystems Programming and Computer Architecture
Studierende besuchen die Lehrveranstaltung alternierend eine Woche in Präsenz, die folgende Woche online.
Erste Unterrichtswoche Präsenz: Nachname beginnend mit «A» bis «L»
Erste Unterrichtswoche Online: Nachname beginnend mit «M» bis «Z»
danach alternierend.
4 Std.
Di10:15-12:00HG E 7 »
Mi10:15-12:00HG E 7 »
T. Roscoe, A. Klimovic
252-0061-00 USystems Programming and Computer Architecture
Gruppeneinteilung erfolgt über myStudies.
2 Std.
Mi14:15-16:00CAB G 56 »
14:15-16:00CAB G 57 »
14:15-16:00CHN D 42 »
14:15-16:00CHN D 48 »
14:15-16:00ETZ F 91 »
14:15-16:00ETZ G 91 »
14:15-16:00ETZ J 91 »
14:15-16:00HG E 33.5 »
14:15-16:00HG G 26.3 »
14:15-16:00IFW A 34 »
14:15-16:00LEE C 104 »
14:15-16:00LEE D 101 »
14:15-16:00LEE D 105 »
14:15-16:00LFW B 3 »
14:15-16:00LFW C 4 »
T. Roscoe, A. Klimovic


KurzbeschreibungIntroduction to systems programming. C and assembly language,
floating point arithmetic, basic translation of C into assembler,
compiler optimizations, manual optimizations. How hardware features
like superscalar architecture, exceptions and interrupts, caches,
virtual memory, multicore processors, devices, and memory systems
function and affect correctness, performance, and optimization.
LernzielThe course objectives are for students to:

1. Develop a deep understanding of, and intuition about, the execution
of all the layers (compiler, runtime, OS, etc.) between programs in
high-level languages and the underlying hardware: the impact of
compiler decisions, the role of the operating system, the effects
of hardware on code performance and scalability, etc.

2. Be able to write correct, efficient programs on modern hardware,
not only in C but high-level languages as well.

3. Understand Systems Programming as a complement to other disciplines
within Computer Science and other forms of software development.

This course does not cover how to design or build a processor or
InhaltThis course provides an overview of "computers" as a
platform for the execution of (compiled) computer programs. This
course provides a programmer's view of how computer systems execute
programs, store information, and communicate. The course introduces
the major computer architecture structures that have direct influence
on the execution of programs (processors with registers, caches, other
levels of the memory hierarchy, supervisor/kernel mode, and I/O
structures) and covers implementation and representation issues only
to the extend that they are necessary to understand the structure and
operation of a computer system.

The course attempts to expose students to the practical issues that
affect performance, portability, security, robustness, and
extensibility. This course provides a foundation for subsequent
courses on operating systems, networks, compilers and many other
courses that require an understanding of the system-level
issues. Topics covered include: machine-level code and its generation
by optimizing compilers, address translation, input and output,
trap/event handlers, performance evaluation and optimization (with a
focus on the practical aspects of data collection and analysis).
Skript- C programmnig
- Integers
- Pointers and dynamic memory allocation
- Basic computer architecture
- Compiling C control flow and data structures
- Code vulnerabilities
- Implementing memory allocation
- Linking
- Floating point
- Optimizing compilers
- Architecture and optimization
- Caches
- Exceptions
- Virtual memory
- Multicore
- Devices
LiteraturThe course is based in part on "Computer Systems: A Programmer's Perspective" (3rd Edition) by R. Bryant and D. O'Hallaron, with additional material.
Voraussetzungen / Besonderes252-0029-00L Parallel Programming
252-0028-00L Design of Digital Circuits


Information zur Leistungskontrolle (gültig bis die Lerneinheit neu gelesen wird)
Leistungskontrolle als Semesterkurs
Im Prüfungsblock fürBachelor-Studiengang Rechnergestützte Wissenschaften 2018; Ausgabe 13.12.2022 (Prüfungsblock G2)
ECTS Kreditpunkte7 KP
PrüfendeT. Roscoe, A. Klimovic
RepetitionDie Leistungskontrolle wird in jeder Session angeboten. Die Repetition ist ohne erneute Belegung der Lerneinheit möglich.
Prüfungsmodusschriftlich 180 Minuten
Hilfsmittel schriftlichNo written aids allowed, except for a German-English dictionary.
Falls die Lerneinheit innerhalb eines Prüfungsblockes geprüft wird, werden die Kreditpunkte für den gesamten bestandenen Block erteilt.
Diese Angaben können noch zu Semesterbeginn aktualisiert werden; verbindlich sind die Angaben auf dem Prüfungsplan.


Es werden nur die öffentlichen Lernmaterialien aufgeführt.


252-0061-00 USystems Programming and Computer Architecture
Mi14:15-16:00CHN D 42 »
nicht für  Rechnergestützte Wissenschaften BSc (406000)
Mi14:15-16:00HG E 33.5 »
nicht für  Rechnergestützte Wissenschaften BSc (406000)
Mi14:15-16:00ETZ F 91 »
nicht für  Rechnergestützte Wissenschaften BSc (406000)
Mi14:15-16:00ETZ G 91 »
nicht für  Rechnergestützte Wissenschaften BSc (406000)
Mi14:15-16:00HG G 26.3 »
nicht für  Rechnergestützte Wissenschaften BSc (406000)
Mi14:15-16:00LEE D 105 »
nicht für  Rechnergestützte Wissenschaften BSc (406000)
Mi14:15-16:00LEE D 101 »
nicht für  Rechnergestützte Wissenschaften BSc (406000)
Mi14:15-16:00LFW B 3 »
nicht für  Rechnergestützte Wissenschaften BSc (406000)
Mi14:15-16:00ETZ J 91 »
nicht für  Rechnergestützte Wissenschaften BSc (406000)
Mi14:15-16:00CAB G 56 »
nicht für  Rechnergestützte Wissenschaften BSc (406000)
Mi14:15-16:00CAB G 57 »
nicht für  Rechnergestützte Wissenschaften BSc (406000)
Mi14:15-16:00CHN D 48 »
nicht für  Rechnergestützte Wissenschaften BSc (406000)
Mi14:15-16:00LFW C 4 »
nicht für  Rechnergestützte Wissenschaften BSc (406000)
RW3-ON 01
nur für  Rechnergestützte Wissenschaften BSc (406000)
Mi14:15-16:00IFW A 34 »
nur für  Rechnergestützte Wissenschaften BSc (406000)
Mi14:15-16:00LEE C 104 »
nur für  Rechnergestützte Wissenschaften BSc (406000)


GruppenEinschränkungen sind unter Gruppen aufgeführt

Angeboten in

Informatik BachelorGrundlagenfächerOInformation
Informatik LehrdiplomTeil 1OInformation
Rechnergestützte Wissenschaften BachelorBlock G2OInformation