TDT4186 Operating Systems (Spring 2021)


Grading

-- tba --


Discussions

We have enabled a forum on piazza to enable anonymous discussions and feedback. Interesting questions will be discussed in the upcoming Q&A sessions.

Timetable

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 videos and additional resources

youtube TDT4186 channel

MIT's "The Missing Semester of Your CS Education" with an introduction to the Unix shell, version control, makefiles etc.


Semester plan, slides and videos

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 PDF Video
2Tue12.01.2021 videoC crash course part 1 c-course.pdf video
Thu14.01.2021 videoC crash course part 2 video
Thu14.01.2021 Handout TE1 - C theory OS_TE1.pdf
3Tue19.01.2021 videoLecture 1: Introduction to operating systems os01.pdfvideo 1
Thu21.01.2021 Welcome session (12:15-13:00) qa01.pdf
Q&A transcript
video
Thu21.01.2021 videoLecture 2: Resources and computer architecture os02.pdf video 2
Thu21.01.2021 Handout PE1 - C practice OS_PE1.pdf (now with points!)
4Tue26.01.2021 Lecture 3: Challenges and tasks of operating systems os03.pdf video 3
Thu28.01.2021 Handin TE1
Thu28.01.2021 videoDiscussion of TE1 (12:15-13:00) solution sheet
solution slides
questions
video
Thu28.01.2021 Lecture 4: Processes os04.pdf video 4.1
video 4.2
Thu28.01.2021 Handout TE2 - Process theory OS_TE2.pdf
5Tue02.02.2021 Lecture 5: Threads os05.pdf video 5
Thu04.02.2021 TDT4186 Q&A (12:15-13:00)
Thu04.02.2021 Lecture 6: Concurrency: Mutual Exclusion and Synchronization os06.pdf video 6.1
video 6.2
Fri05.02.2021 Handin PE1
Fri05.02.2021 Discussion of PE1 (14:15-16:00) pdf video
Fri05.02.2021 Handout PE2 - Process synchronization OS_PE2.pdf
6Tue09.02.2021 Lecture 7: Concurrency: Deadlocks and Starvation os07.pdf video 7
Thu11.02.2021 Handin TE2
Thu11.02.2021 Discussion of TE2 pdf video
Thu11.02.2021 Lecture 8: From source code to process os08.pdf video 8.1
video 8.2
video 8.3
Thu11.02.2021 Handout TE3 - Synchronization OS_TE3.pdf
7Tue16.02.2021 Lecture 9: Memory management os09.pdf video 9.1
video 9.2
Thu18.02.2021 Last minute Q&A for PE2 (12:15) pdf video
Thu18.02.2021 Lecture 10: Virtual memory os10.pdf video 10.1
video 10.2
Fri19.02.2021 Handin PE2 (14:00) - deadline extended!
Fri19.02.2021 Handout PE3 - Memory allocation OS_PE3.pdf
mymalloc.c skeleton
8Tue23.02.2021 Lecture 11: Inter-process communication os11.pdf video 11.1
video 11.2
Thu25.02.2021 Handin TE3
Thu25.02.2021 Discussion of PE2 and TE3 Discussion PE2 pdf
Discussion TE3 pdf
video
Thu25.02.2021 Lecture 12: Uniprocessor scheduling os12.pdf video 12
Thu26.02.2021 Handout TE4 - Memory allocation OS_TE4.pdf
9Tue02.03.2021 Lecture 13: Real-time scheduling os13.pdf video 13
Thu04.03.2021 Handin PE3
Thu04.03.2021 Discussion of PE3 pdf video
Thu04.03.2021 Lecture 14: I/O management and disk scheduling os14.pdf video 14.1
video 14.2
Thu04.03.2021 Handout PE4 - Shell OS_PE4.pdf
10Tue09.03.2021 Lecture 15: File systems 1 os15.pdf video 15
Thu11.03.2021 Handin TE4
Thu11.03.2021 Discussion of TE4 pdf video
Thu11.03.2021 Lecture 16: File systems 2 os16.pdf video 16
Thu11.03.2021 Handout TE5 - I/O update: clarification in task 1.1 OS_TE5.pdf
11Tue16.03.2021 Lecture 17: Virtual machines and microkernels os17.pdf video 17
Thu18.03.2021 Handin PE4 (deadline extended)
Thu18.03.2021 Q&A for PE4 pdf video
Thu18.03.2021 Lecture 18: Cloud, Unikernels, single-address space OS os18.pdf video 18
Thu18.03.2021 Handout PE5 (Update: additional hints) OS_PE5.pdf
12Mon22.03.2021 Handin PE4
Tue23.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)
Thu25.03.2021 Handin TE5
Thu25.03.2021 Discussion of TE5 pdf video
Thu25.03.2021 Lecture 20: Embedded systems 2
(from TU Dortmund)
open access text book (ch. 4)
os20.pdf video 20
(TU Dortmund)
Thu25.03.2021 Handout TE6 - Scheduling OS_TE6.pdf
13 šŸ° Easter break ā€“ pĆ„skeferie šŸ£
14Thu08.04.2021 Handin TE6 Deadline extended!
Thu08.04.2021 Discussion of TE6 moved to the following week
Thu08.04.2021 Lecture 21: OS Security 1 os21.pdf video 21.1
video 21.2
15Tue13.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)
Thu15.04.2021 Handin TE6
Thu15.04.2021 Discussion of TE6 Note: solution 6.3b fixed in slides only pdf video
Thu15.04.2021 Lecture 23: Guest lecture by Anne Elster video 23
Thu15.04.2021 Handout Example exam ExampleExam.pdf
16Mon19.04.2021 Handin PE5
Tue20.04.2021 Lecture 24: Semester review updated: relevance of lecture 8 os24.pdf video 24
Thu22.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 pdf

Practical exercises and code templates

Week Publication date Handin date Topic PDF 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


Literature

The lecture will be loosely based on the two following textbooks plus additional material.

AuthorsRemzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
TitleOperating Systems: Three Easy Pieces
Freely availablebook website

AuthorsWilliam Stallings
TitleOperating Systems - Internals and Design Principles, 9th Global Edition
PublisherPearson 2017
ISBN9781292214290