3824 - Systems Software and Distributed Systems (SSDS)

Reader: Prof. Dr. Burkhard Stiller, Prof. Dr. Abraham Bernstein
Assistants: Dr. Thomas Bocek Sina Rafati, Bruno Rodrigues, Shen Gao
ECTS Points: 6
Lectures : Tuesdays, 8:15 - 9:45
Exercises: Thursdays, 8:15 - 9:45
Location: BIN-0-K.02
Exam: June 13, 2017, 8-10 hours
OLAT page: link

Description

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.

Content

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. 

Requirements

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.

Hint

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.