3121 - Systems Software and Distributed Systems (SSDS)

Reader: Prof. Dr. Burkhard Stiller
Assistants: Bruno Rodrigues, Rafael Ribeiro,Sina Rafati
ECTS Points: 6
Lectures : Tuesdays, 8:15 - 9:45
Exercises: Thursdays, 8:15 - 9:45

Online- Webex link will be shared


15.06.2021 8:15 - 9:45

Remote Class


Remote Exercises



The meetings are password protected. See email for the password or contact the assistants

Exam Inspection 01.07.2021, 8:15 - 9:45. Via MS Teams 


Information Update

This class will be held on-line. A Webex (videoconferencing tool) link will be shared for the class by e-mail to those students, who did register formally by February 19, 2021, before 10.00 hours with the UZH module booking tool. The Webex client could be downloaded here. The exercise classes will follow the same organization and use the same link provided to all students, who have had registered.


This discipline will introduce the core concepts of operating systems and distributed systems, providing an introduction and operational systems structures, inter-processes communication, processes and threads, scheduling and deadlocks, memory management, input and output device management. Also, this course covers the foundation for the design of distributed systems, remove invocation and distributed objects, naming and distributed file systems, and processes synchronization and coordination.

The course will consist of assigned reading, weekly lectures, a final exam, and a sequence of programming assignments. The goal of the readings and lectures is to introduce the core concepts. The goal of the programming assignments is to give students some exposure to operating system code. Students are expected to read the assigned materials prior to each class, and to participate in in-class discussions.


Students will receive a deep insight into the structure and management of processes and threads and the synchronization of distributed systems. More specifically, the lecture will teach up-to-date knowledge in operating systems and distributed systems covering available technology and research. The following topics are studied in detail: interrupts, inter-process communication, coordination of concurrent activities, and the interface between software and hardware. Also, this course explores the issues to address in designing and implementing distributed systems with a particular emphasis on how to deal with the shared state between separate processes within such a system. Most importantly, the interactions between these concepts are examined. This will enable students to develop on their own at a later stage efficient, performing, and globally applicable understanding on underlying aspects of operating systems and distributed systems.


Knowledge of basic programming methodology and (preferred) C/Java programming languages.

Course Material

Literature will be announced in the lecture. Lecture slides and additional material can be found here. Details on the exercises can be found here.


The information contained on this page complements the official page at the Vorlesungsverzeichnis (VVZ). In case of doubt, the official information from the VVZ is always considered valid.