Torsten Adrian
Torsten Hoefler Adrian Perrig

About this course

This course is intended as an introduction to both computer networking and operating systems for computer scientists. Students will get a comprehensive overview of the key protocols and the general architecture of the Internet, as one example of more general principles in network design, and acquire hands-on experience in programming different aspects of a computer network. In addition, the course provides a full introduction to modern operating system design, including memory management, scheduling, I/O, protection, and so on. The architecture of Unix-like operating systems (such as Linux) is used as an example of more general principles in OS design.

Basic Course Information

  • Course Number: 252-0062-00L, 8 Credits
  • Spring 2015, Lectures:
    Thu (08-10): CAB G 61
    Fri (10-12): CAB G 11
    Course Details
  • Exercise sessions:
    Thu (15-18): ML F 40, ML H 41.1
    Fri (13-16): CHN D 42, CHN D 48

Quizzes and Projects

Quizzes. The networking part of this lecture incentives you to work hard and to follow the material in time: every evening before a lecture, we flip a two-sided coin which shows Q with a probability of 40%, and B otherwise. Whenever the coin shows Q in the evening, we will have a little quiz in the morning. Such a quiz is a simple opportunity for you to demonstrate your learning progress and (possibly more important for you) to collect credit points to get rewarded by the end of this course. A quiz may contain all content that has been covered in class thus far. The quiz will take place in class after the break (i.e., Thu at 9:15, Fr at 11:15).

Projects. There are two networking projects in which you can collect more additional credit points for the rewards towards the end of the course. Please team up in groups of two or three students and register your group here.
1Apr 17May 07 project1.pdf   project1.tar.gz   slides1   slides2   slides6  
2May 08May 29 project2.pdf   project2.tar.gz   slides1   slides2   slides6  

Rewards. Each quiz gives up two 5 credit points. The projects give up to 10 and 20 credit points, respectively. At the end of the course, the number of credit points you have collected is translated into a probability distribution. You will find yourself in that distribution depending on how well you have performed during class: the better you have performed, the higher your chances of being selected as a winner for our prizes.

More precisely, let P = ∑ pi be the sum of all credit points achieved by the students in this course. Let Y be your points collected by the end of the course. Your individual probability of being selected in a run is Y / P. Note that for each of the n prizes, we will have one run. If we hand out n prizes, then your expected number of prizes is greater than n * Y / P (since nobody can win more than one prize). Stay tuned, the prizes will be announced soon!

Please note that, for legal reasons, the credit points will not affect your grade.

Tentative schedule of lectures:

Week Thursday Friday
Operating Systems
0 19.02: OS Introduction    (slides_1pp)   (slides_2pp)    (slides_6pp) 20.02: Processes    (slides_1pp)   (slides_2pp)    (slides_6pp)
1 26.02: Scheduling    (slides_1pp)   (slides_2pp)    (slides_6pp) 27.02: Synchronization    (slides_1pp)   (slides_2pp)    (slides_6pp)
2 05.03: Memory Management    (slides_1pp)   (slides_2pp)    (slides_6pp) 06.03: Demand Paging    (slides_1pp)   (slides_2pp)    (slides_6pp)
3 12.03: NO CLASS 13.03: File System Abstractions    (slides_1pp)   (slides_2pp)    (slides_6pp)
4 19.03: File System Implementation    (slides_1pp)   (slides_2pp)    (slides_6pp) 20.03: I/O Subsystems   (slides_1pp)   (slides_2pp)    (slides_6pp)
5 26.03: I/O Subsystems(contd)   (slides_1pp)   (slides_2pp)    (slides_6pp) 27.03: Virtual Machine Monitors    (slides_1pp)   (slides_2pp)    (slides_6pp)
6 02.04: Reliable Storage, Specials    (slides_1pp)   (slides_2pp)    (slides_6pp) 03.04: No Class
7 16.04: Network introduction, OSI model
slides1   slides2   slides6
17.04: Physical layer
slides1   slides2   slides6
8 23.04: Data link layer 1
slides1   slides2   slides6
24.04: Data link layer 2
slides1   slides2   slides6
9 30.04: Network Layer 1
slides1   slides2   slides6

no class

10 07.05: Network Layer 1 (contd.)
slides1   slides2   slides6
08.05: Network Layer 2
11 14.05:

no class

15.05: Transport Layer
slides1   slides2   slides6
12 21.05: Congestion Control
slides1   slides2   slides6
22.05: Congestion Control (contd.)
13 28.05: Application Layer
slides1   slides2   slides6
29.05: Application Layer (contd.)

Tentative schedule of exercise sessions (networking part):

The following table displays the content to be discussed in the respective exercise sessions. The two

networking projects

are due on May 07 and May 29, respectively. Please note that there are only two exercise sessions per project for your questions (week 8 and week 12, respectively).
Week Thursday Friday
8 23.04.  

Project 1


Project 1

9 30.04.   Assignment 7 01.05.  

no session

10 07.05.   General Q&A 08.05.   General Q&A
11 14.05.  

no session

15.05.   Assignment 8
12 21.05.   15:15 Assignment 9,  

16:15 Project 2

22.05.   13:15 Assignment 9,  

14:15 Project 2

13 28.05.   Assignment 10 29.05.   Assignment 10


Ass. Out Description Solutions
Operating Systems
1 02/19 Introduction and Fork solution
2 02/26 Scheduling, more on fork Thread Skeleton   main.c   thread.c partial solution
3 03/05 Paging, Signals, Locking solution
4 03/12 More on Paging, Thrashing and File Abstractions solution
5 03/19 File System and I/O solution
6 03/26 Virtual Machines solution
7 04/22 Assignment 7 Solution 7

no assignment

8 05/07 Assignment 8 Solution 8
9 05/15 Assignment 9 Solution 9
10 05/21 Assignment 10 Solution 10
11 05/29 Assignment 11 Solution 11

Exercise Groups

Group 1 ML F40 (Thu 3-6 pm)

Jonas Felber Vincent von Rotz David Bimmler Andrina Denzler Sandra Dunki Julia Badestscher Turel Gruber
Felix Raucheustein Linard Arquint Pascal Joseph Raphael Kubler Johnatan Heitz Philip Wirth Lorenz Kuhn
Simon Schene Jodot Vieli Gokhan Bag Jonathan Gebreghziaber Jonathan Meier Luca Lanzendorfer Sarah Plucher
Lukas Frischknecht Jan Vean Maximilion Falkenstein Samuel Siebermann Nicolas Trussel Swe Geny Luca Gasparini
Thomas Len Anna Mitterer Lone Omar Cedric Della Casa Lukas Ernst Vincent Steller Suincent Mohammed Ajil Agilum

Group 2 ML H41.1 (Thu 3-6 pm)

Simon Rineisen Jan Eberhardt Valentin Trifonor Maurice Howld Felix Wolf Markus Roth Elius Huwyler
Jan Gikher Sonja Menz Mauro Bamert Fabian Grob Alam Denzler Reto Weber Kim Marbach
Felile Serena Conradin Roffler Young Ban Patrick Stanble Yan Wang Sandro Marcon Ylli Muhadri
Nicolas Mesot Peter Fomin Michael Chang Samuel Sadok Jonas Pfenninger Ismaeel Ataullah Alexander Peiker
Nicolas Oihsner Sivaranjini Chithambaram Patrick Gruntz Fabian Ulbricht Luca Wolf Zweig Yoel Nicole Trachsler
Lucas Roth Marc Fischer Framari Wirg Fabian Murer Simon Bienz Basile Maret Oliver Kruppel
Johannes Kelnestam Auton Jakobsson Sun Hao Filip Meier Rik Melis Rabeeh Karimi Mahabadi

Group 3 CHN D42 (Fri 1-4 pm)

Zingg Andreas Noser Cornelia Giger Julia Max Huttenmoser Christian Schapper Raphael Anderegg Dirk Huttig
Valentin Venzin Linus Metzler Valentin Scherer Katharina Dawn Tobias Bullatt Christeph Lauper Andreas Konrad
Panuya Balasuntharam Angela Rellstab Pascal Wiesmann James Bermeli

Group 4 CHN D48 (Fri 1-4 pm)

Christoph Maurhofer Tobias Krebs Alex Canals Aryaman Fasciati Lukas Schar Kevin Klein Sevein Meier
Livic Kaiser Luzi Sennhauser David Rohr Nicole Thurnherr Ettiener Stontz Nikolas Gobel Philip Junka
Tobias Holenslein Emmanuel Hofmann Yves Franle Michael Schurch Advian Meier Florian Marending Patrick Elsener
Patrich Huniler Timo Brcm Sander Staal Mickey Vanska Pirmin Schmid Julian Collazo Sandro Kalbermatter
Marco Nembrini Bastien Chatelain Charles Gallay Luca Stalder Sandro Meier


OS Networking


Contact Information

Torsten Hoeflerhtor at inf, CAB E 64.1
Adrian Perrig adrian.perrig at inf, CAB F 85.1
TA Mailing List (send your questions here)osnet15 at