Advanced Operating Systems (9 CFU)
Academic Year 2019-2020
Laurea Magistrale in Computer Engineering
University of Rome Tor Vergata

Lecturer: Francesco Quaglia


NEW

27/4/2021 - The results of the examination held on 23/4/2021 are available at this link

20/4/2021 - The schedule of the teleconferences for the examination to be held on 23/4/2021 is available at this link

1/10/2020 - The results of the examination held on 18/9/2020 are available at this link

14/9/2020 - The schedule of the teleconferences for the examination to be held on 18/9/2020 is available at this link

11/9/2020 - The results of the examination held on 8/9/2020 are available at this link

3/9/2020 - The schedule of the teleconferences for the examination to be held on 8/9/2020 is available at this link

1/8/2020 - The results of the examination held on 22/7/2020 are available at this link

23/7/2020 - Autumn examinations are scheduled at 8/9/2020 and 18/9/2020. Because of the COVID-19 emergency, these examinations will be held remotely through a teleconference connection, and through the usage of question/answer Web forms.

20/7/2020 - The schedule of the teleconferences for the examination to be held on 22/7/2020 is available at this link

4/6/2020 - Summer examinations are scheduled at 16/6/2020 and 22/7/2020. Because of the COVID-19 emergency, these examinations will be held remotely through a teleconference connection, and through the usage of question/answer Web forms.

6/3/2020 - The results of the examination held on 28/2/2020 are available at this link

31/1/2020 - The results of the examination held on 24/1/2020 are available at this link

22/12/2019 - Lecturing for the academic year 2019/2020 is over

19/12/2019 - The project specification for the academic year 2019/2020 has been posted at this link.

12/12/2019 -According to institutional guidelines (based on meteo alert) the lecture to be held on 13/12/2019 has been canceled

10/12/2019 - The slides on virtual file system have been slightly updated.

8/12/2019 - The software examples on virtual file system have been updated.

6/12/2019 - A suggested homework dealing with the implementation of a device file allowing to control processes in Linux has been posted at this link.

29/11/2019 - A suggested homework deadling with the implementation of a new trap in Linux has been posted at this link.

26/11/2019 - Winter examinations will be held on January 24 2020 (morning) and on February 28 2020 (morning)

19/11/2019 - A suggested homework deadling with the implementation of a fine grain sleep service in Linux has been posted at this link.

19/11/2019 - The software examples on kernel level task management have been updated.

17/11/2019 - The slides on kernel level task management have been updated.

15/11/2019 - Seminar announcement - Speaker: Prof. Paolo Romano - Schedule: November 21 2019 (15:00-16:30 Room Archimede) - details

12/11/2019 - Solutions for the homework proposed on 6/11/2019 have been posted at this link and at this link.

6/11/2019 - A suggested homework deadling with the run-time discovery of the positioning of kernel level data structures in Linux in a "harder scenario" (less initial knowledge) has been posted at this link.

6/11/2019 - A suggested homework deadling with the implementaiton of a kernel level messagging system in Linux has been posted at this link.

30/10/2019 - The slides and software examples on kernel level memory management have been slightly updated.

27/10/2019 - A suggested homework deadling with the paging scheme in Linux has been posted at this link.

18/10/2019 - A suggested homework deadling with the run-time discovery of the positioning of kernel level data structures in Linux has been posted at this link.

18/10/2019 - The slides on kernel level programming basics have been slightly updated.

11/10/2019 - A suggested homework deadling with an alternative TLS implementation has been posted at this link.

20/9/2019 - This site has been made up and running.


Lecture schedule (starting on 23/9/2019)

Monday 9:30-11:15 Room C6
Wednesday 11:30-13:15 Room C12
Friday 11:30-13:15 Room B9

Course objectives and examination rules

The 'Advanced Operating Systems' course aims at presenting advanced design/implementation methods and techniques for modern operating systems. It will also provide insights on actual hardware operations in modern processors (including implicit and explicit parallelism) and how these impact software design approaches. The topics dealt with by the course are bound to case studies oriented to Linux systems and x86 compliant processors. A strong focus on system-level security aspects will be made, which will include the analysis of the correlation between hardware and software as well as advanced methods and techniques for system security. The course requires basic knowledge on the structure and functionalities of operating systems, and knowledge on C/ASM programming.

The lecture flow will be based on presenting concepts in combination with software/running examples. Both the slides and the software examples will be made available while delivering the course, clearly in advance to discussing them at any lecture. The slides as well as the software examples can be accessed and downloaded from links posted in a bottom section of this Web page.

The examination consists of a written test (where a set of questions will be proposed) and additionally requires the development of software sub-systems (a project) to be embedded within the Linux kernel, whose specification for the academic year 2019/2020 will be posted during the course delivery. Projects are individual and each student is supposed to finalize both parts of the examination within the same accademic year. The delivery of the software project does not need to coincide with the scheduled examination dates. Rather, students can deliver their projects at any student reception (see this link).

As for the evaluation, the first part (questions and answers) accounts for 18 points, while the project accounts for 12 points. In any case both parts of the examination have thresholds for their acceptance. The thresholds are the following ones: 11 points for the first part and 7 for the project. In the event of an exceptionally well done project and/or exceptionally well replied questions, a student who cumulates 30 points can be awarded with 'laude'.


References

Useful links (permanently on going)

IMPORTANT NOTICE

Even though the above references and links are provided, I must alert students that no unique hand-book can fully cover the presented topics (and/or the way of presenting them). Hope this will be an added value to the course, rather than a limitation. Please come to any available student reception as soon as any doubt, or the need for whathever clarification, arises.


List of planned topics (2018-2019) - interleaved schedule will drive the presentation


Slides and software

Topic Slides Sofware Examples Last Update
Hardware insights download link download link 20/9/2019
Kernel programming basics download link download link 18/10/2019
Kernel level memory management download link download link 30/10/2019
Cross ring data move download link download link 6/11/2019
Linux modules download link download link 7/11/2018
Kernel level task management download link download link 19/11/2018
Trap/interrupt architecture download link download link 1/12/2019
Virtual file system download link download link 10/12/2019
Software security download link download link 15/12/2019