-- tba --
We have enabled a forum on piazza to enable anonymous discussions and feedback. Interesting questions will be discussed in the upcoming Q&A sessions.
Lectures will be running online at least until January 18th, 2021, due to NTNU-wide Corona virus precautions.
Until the situation changes, we will run the course in flipped classroom style with lecture videos on youtube and two live sessions - an online exercise session to discuss the theoretical and practical exercises and an online Q&A session in the Thursday lecture slot on Blackboard Collaborate. Flipped classroom means that you are not bound to fixed lecture times but can watch the lecture videos whenever it fits best.
Weekday | Time | Location | Type |
---|---|---|---|
Thu | 12:15-13:00 | Online | Exercise discussion session |
Thu | 14:15-16:00 | Online | Q&A session |
Lecture slides and videos will be published twice a week (on Tuesday and Thursday). Assignments for theoretical (TE) and practical (PE) exercises will be handed out weekly on Thursdays, alternating between theoretical and practical exercises. You have two weeks to hand in the solutions (Deadline is Thursday 12:00 noon).
The C crash course serves as an introduction to C for students who have only programmed in Java (or other languages) before. It is also useful as a refresher of your knowledge. This part is identical for the operating systems (TDT4186) and compilers (TDT4205) course.
Week | Day | Date | Mode | Topic | Video | |
---|---|---|---|---|---|---|
2 | Tue | 12.01.2021 | video | C crash course part 1 | c-course.pdf | video |
Thu | 14.01.2021 | video | C crash course part 2 | video | ||
Thu | 14.01.2021 | Handout TE1 - C theory | OS_TE1.pdf | |||
3 | Tue | 19.01.2021 | video | Lecture 1: Introduction to operating systems | os01.pdf | video 1 |
Thu | 21.01.2021 | Welcome session (12:15-13:00) | qa01.pdf Q&A transcript | video | ||
Thu | 21.01.2021 | video | Lecture 2: Resources and computer architecture | os02.pdf | video 2 | |
Thu | 21.01.2021 | Handout PE1 - C practice | OS_PE1.pdf (now with points!) | |||
4 | Tue | 26.01.2021 | Lecture 3: Challenges and tasks of operating systems | os03.pdf | video 3 | |
Thu | 28.01.2021 | Handin TE1 | ||||
Thu | 28.01.2021 | video | Discussion of TE1 (12:15-13:00) | solution sheet solution slides questions | video | |
Thu | 28.01.2021 | Lecture 4: Processes | os04.pdf | video 4.1 video 4.2 | ||
Thu | 28.01.2021 | Handout TE2 - Process theory | OS_TE2.pdf | |||
5 | Tue | 02.02.2021 | Lecture 5: Threads | os05.pdf | video 5 | |
Thu | 04.02.2021 | TDT4186 Q&A (12:15-13:00) | ||||
Thu | 04.02.2021 | Lecture 6: Concurrency: Mutual Exclusion and Synchronization | os06.pdf | video 6.1 video 6.2 | ||
Fri | 05.02.2021 | Handin PE1 | ||||
Fri | 05.02.2021 | Discussion of PE1 (14:15-16:00) | video | |||
Fri | 05.02.2021 | Handout PE2 - Process synchronization | OS_PE2.pdf | |||
6 | Tue | 09.02.2021 | Lecture 7: Concurrency: Deadlocks and Starvation | os07.pdf | video 7 | |
Thu | 11.02.2021 | Handin TE2 | ||||
Thu | 11.02.2021 | Discussion of TE2 | video | |||
Thu | 11.02.2021 | Lecture 8: From source code to process | os08.pdf | video 8.1
video 8.2 video 8.3 | ||
Thu | 11.02.2021 | Handout TE3 - Synchronization | OS_TE3.pdf | |||
7 | Tue | 16.02.2021 | Lecture 9: Memory management | os09.pdf | video 9.1
video 9.2 | |
Thu | 18.02.2021 | Last minute Q&A for PE2 (12:15) | video | |||
Thu | 18.02.2021 | Lecture 10: Virtual memory | os10.pdf | video 10.1
video 10.2 | ||
Fri | 19.02.2021 | Handin PE2 (14:00) - deadline extended! | ||||
Fri | 19.02.2021 | Handout PE3 - Memory allocation | OS_PE3.pdf
mymalloc.c skeleton | |||
8 | Tue | 23.02.2021 | Lecture 11: Inter-process communication | os11.pdf | video 11.1
video 11.2 | |
Thu | 25.02.2021 | Handin TE3 | ||||
Thu | 25.02.2021 | Discussion of PE2 and TE3 | Discussion PE2 pdf
Discussion TE3 pdf | video | ||
Thu | 25.02.2021 | Lecture 12: Uniprocessor scheduling | os12.pdf | video 12 | ||
Thu | 26.02.2021 | Handout TE4 - Memory allocation | OS_TE4.pdf | |||
9 | Tue | 02.03.2021 | Lecture 13: Real-time scheduling | os13.pdf | video 13 | |
Thu | 04.03.2021 | Handin PE3 | ||||
Thu | 04.03.2021 | Discussion of PE3 | video | |||
Thu | 04.03.2021 | Lecture 14: I/O management and disk scheduling | os14.pdf | video 14.1
video 14.2 | ||
Thu | 04.03.2021 | Handout PE4 - Shell | OS_PE4.pdf | |||
10 | Tue | 09.03.2021 | Lecture 15: File systems 1 | os15.pdf | video 15 | |
Thu | 11.03.2021 | Handin TE4 | ||||
Thu | 11.03.2021 | Discussion of TE4 | video | |||
Thu | 11.03.2021 | Lecture 16: File systems 2 | os16.pdf | video 16 | ||
Thu | 11.03.2021 | Handout TE5 - I/O update: clarification in task 1.1 | OS_TE5.pdf | |||
11 | Tue | 16.03.2021 | Lecture 17: Virtual machines and microkernels | os17.pdf | video 17 | |
Thu | 18.03.2021 | |||||
Thu | 18.03.2021 | Q&A for PE4 | video | |||
Thu | 18.03.2021 | Lecture 18: Cloud, Unikernels, single-address space OS | os18.pdf | video 18 | ||
Thu | 18.03.2021 | Handout PE5 (Update: additional hints) | OS_PE5.pdf | |||
12 | Mon | 22.03.2021 | Handin PE4 | |||
Tue | 23.03.2021 | Lecture 19: Embedded systems 1 (from TU Dortmund) open access text book (ch. 4) | os19.pdf | video 19.1
video 19.2 (TU Dortmund) | ||
Thu | 25.03.2021 | Handin TE5 | ||||
Thu | 25.03.2021 | Discussion of TE5 | video | |||
Thu | 25.03.2021 | Lecture 20: Embedded systems 2 (from TU Dortmund) open access text book (ch. 4) | os20.pdf | video 20 (TU Dortmund) | ||
Thu | 25.03.2021 | Handout TE6 - Scheduling | OS_TE6.pdf | |||
13 | š° Easter break ā pĆ„skeferie š£ | |||||
14 | Thu | 08.04.2021 | ||||
Thu | 08.04.2021 | |||||
Thu | 08.04.2021 | Lecture 21: OS Security 1 | os21.pdf | video 21.1 video 21.2 | ||
15 | Tue | 13.04.2021 | Lecture 22: OS Security 2 This lecture gives you an insight into courses elsewhere, in this case at the MIT - it discusses a special security problem |
os22.pdf | paper
video (MIT) | |
Thu | 15.04.2021 | Handin TE6 | ||||
Thu | 15.04.2021 | Discussion of TE6 Note: solution 6.3b fixed in slides only | video | |||
Thu | 15.04.2021 | Lecture 23: Guest lecture by Anne Elster | video 23 | |||
Thu | 15.04.2021 | Handout Example exam | ExampleExam.pdf | |||
16 | Mon | 19.04.2021 | Handin PE5 | |||
Tue | 20.04.2021 | Lecture 24: Semester review updated: relevance of lecture 8 | os24.pdf | video 24 | ||
Thu | 22.04.2021 | Discussion of the example exam (note: correction in the slides is not in the video!) | slides | video | ||
Mapping of lectures to the Three Easy Pieces textbook |
Week | Publication date | Handin date | Topic | Code | |
---|---|---|---|---|---|
3 | 21.01.2021 | 04.02.2021 | Practical C exercises | ||
5 | 04.02.2021 | 18.02.2021 | Process synchronization | ||
7 | 18.02.2021 | 04.03.2021 | Thread synchronization | ||
9 | 04.03.2021 | 18.03.2021 | Deadlocks | ||
11 | 18.03.2021 | 15.04.2021 | Memory |
The lecture will be loosely based on the two following textbooks plus additional material.
Authors | Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau |
Title | Operating Systems: Three Easy Pieces |
Freely available | book website |
Authors | William Stallings |
Title | Operating Systems - Internals and Design Principles, 9th Global Edition |
Publisher | Pearson 2017 |
ISBN | 9781292214290 |