Operating Systems and Networks
Spring Semester 2016
Instructors
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 2016, Lectures:
Thu (08-10): CAB G 61
Fri (10-12): CAB G 61
Course Details - Exercise sessions:
Tue (15-18): HG D 3.1 (Chris/Taeho), HG D 3.3 (Raphael; in German if desired)
Thu (15-18): ML H 41.1 (David)
Fri (13-16): CAB G 57 (David), CHN D 42 (Raphael; in German if desired)
Tentative schedule of lectures:
Week | Thursday | Friday |
---|---|---|
Operating Systems | ||
0 | 25.02.: OS Introduction (slides_1pp) (slides_6pp) | 26.02.: Processes (slides_1pp) (slides_6pp) |
1 | 03.03.: Scheduling (slides_1pp) (slides_6pp) | 04.03.: Synchronization (slides_1pp) (slides_6pp) |
2 | 10.03.: Memory Management (slides_1pp) (slides_6pp) | 11.03.: Demand Paging (slides 1pp) (slides 6pp) |
3 | 17.03.: Filesystem Abstractions (slides_1pp) (slides_6pp) | 18.03.: Filesystem Implementation (slides_1pp) (slides_6pp) |
4 | 07.04.: IO (slides_1pp) (slides_6pp) | 08.04.: IO (2) (slides_1pp) (slides_6pp) |
5 | 14.04.: Virtual Machine Monitors (slides_1pp) (slides_6pp) | 15.04.: Reliable Storage, NUMA & The Future (slides_1pp) (slides_6pp) |
Networking | ||
6 | 21.04.: Network Introduction, OSI model (slides_1pp) (slides_6pp) |
22.04.: Physical layer (slides_1pp) (slides_6pp) |
7 | 28.04.: Data Link Layer 1 (slides_1pp) (slides_6pp) |
29.04.: Data Link Layer 2 (slides_1pp) (slides_6pp) |
8 | 05.05.: no class |
06.05.: Data Link Layer (contd.) |
9 | 12.05: Network Layer 1 (slides_1pp) (slides_6pp) |
13.05: Network Layer 1 (contd.) |
10 | 19.05: Network Layer 2 (slides_1pp) (slides_6pp) |
20.05: Network Layer 2 (contd.) |
11 | a26.05: Transport Layer (slides_1pp) (slides_6pp) (TCP summary_1pp) (TCP summary_6pp) |
27.05: Congestion Control (slides_1pp) (slides_6pp) |
12 | 02.06: Application Layer (slides_1pp) (slides_6pp) |
03.06: Application Layer (contd.) |
Assignments
Ass. | Out | Description | Solutions |
---|---|---|---|
Operating Systems | |||
Assignment 1 | 1.3.2016 | Introduction and Fork | Solution |
Assignment 2 thread.h.skeleton, thread-main.c | 7.3.2016 | Scheduling | Solution |
Assignment 3 | 15.3.2016 | Memory Management | Solution |
Assignment 4 | 22.3.2016 | Paging / Thrashing | Solution |
Assignment 5 | 12.4.2016 | File Systems | Solution |
Networking | |||
Assignment 6 / Project 1 | 28.4.2016 | Solution | |
Assignment 7 | 4.5.2016 | Solution | |
Assignment 8 | 12.5.2016 | Solution | |
Assignment 9 (updated 24.05.2016) | 19.5.2016 | Solution | |
Assignment 10 | 27.5.2016 | Solution | |
Assignment 11 | 31.5.2016 | Solution |
Note: The assignments must be handed in using Git (if you want to receive feedback). Create a new folder for each assignment. This tutorial explains how the hand-in procedure works in detail.
Sometimes, some of the TAs use slides in the recitation sessions. Ercan puts his slides here.
Projects
Project | Out | Description | Source | Slides |
---|---|---|---|---|
Project1 | 22. 4. 2016 | Reliable Transport | src | Slides |
Project2 | 30. 05. 2016 | Dynamic Routing | src | Slides |
Resources:
Contact Information
Lecturer | |
Torsten Hoefler | htor at inf, CAB F 75 |
Adrian Perrig | adrian.perrig at inf, CAB F 85.1 |
TA | |
Timo Schneider | timos at inf.ethz.ch |
Salvatore Di Girolamo | salvatore.digirolamo at inf.ethz.ch |
Ercan Ucan | ercan.ucan at inf.ethz.ch |