├── README.md
├── code
├── .gitignore
├── processes.tgz
├── synchronization.tgz
└── threads.tgz
├── exams
├── .gitkeep
├── 2021-22
│ ├── .gitkeep
│ ├── 2022-01-13_grades.pdf
│ ├── 2022-01-31_grades.pdf
│ ├── 2022-06-07_grades.pdf
│ ├── 2022-06-28_grades.pdf
│ └── 2022-09-06_grades.pdf
├── 2022-23
│ ├── .gitkeep
│ ├── 2023-01-19_grades.pdf
│ ├── 2023-02-07_grades.pdf
│ ├── 2023-06-07_grades.pdf
│ ├── 2023-06-27_grades.pdf
│ ├── 2023-09-12_grades.pdf
│ └── 2023-10-19_grades.pdf
├── 2023-24
│ ├── .gitkeep
│ ├── 2024-01-23_grades.pdf
│ ├── 2024-02-13_grades.pdf
│ ├── 2024-03-25_grades.pdf
│ ├── 2024-06-04_grades.pdf
│ ├── 2024-07-02_grades.pdf
│ ├── 2024-09-19_grades.pdf
│ └── 2024-10-17_grades.pdf
└── 2024-25
│ ├── .gitkeep
│ ├── 2025-01-23_grades.pdf
│ ├── 2025-02-11_grades.pdf
│ ├── 2025-03-27_grades.pdf
│ ├── 2025-06-04_grades.pdf
│ ├── 2025-07-03_grades.pdf
│ ├── 2025-09-09_grades.pdf
│ └── 2025-10-29_grades.pdf
├── exercises
├── .gitignore
├── 2024-11-20_Questions.pdf
└── 2024-12-18_Questions.pdf
├── lectures
└── slides
│ ├── 01_Basics_and_History.pdf
│ ├── 02-03-04_Computer_Architecture_and_OS_Structures.pdf
│ ├── 02_Computer_Architecture_and_OS_Structures.pdf
│ ├── 03_Process_Virtual_Address_Space_and_PCB.pdf
│ ├── 04_Basics_of_OS_Process_Management.pdf
│ ├── 05_CPU_Scheduling_1.pdf
│ ├── 05_Process_Virtual_Address_Space_and_PCB.pdf
│ ├── 06_Basics_of_OS_Process_Management.pdf
│ ├── 06_CPU_Scheduling_2.pdf
│ ├── 07-08_Threads.pdf
│ ├── 07_CPU_Scheduling_1.pdf
│ ├── 08_CPU_Scheduling_2.pdf
│ ├── 09-10_Threads.pdf
│ ├── 09_Synchronization_Locks.pdf
│ ├── 10_Synchronization_Semaphores_Monitors.pdf
│ ├── 11-12_Deadlock.pdf
│ ├── 11_Synchronization_Locks.pdf
│ ├── 12_Synchronization_Semaphores_Monitors.pdf
│ ├── 13-14_Deadlock.pdf
│ ├── 13_Memory_Management_Binding_and_Relocation.pdf
│ ├── 14-15_Memory_Management_Allocation.pdf
│ ├── 15_Memory_Management_Binding_and_Relocation.pdf
│ ├── 16-17_Memory_Management_Allocation.pdf
│ ├── 16_Advanced_Paging.pdf
│ ├── 17-18_Virtual_Memory.pdf
│ ├── 18_Advanced_Paging.pdf
│ ├── 19-20_Virtual_Memory.pdf
│ ├── 19_Mass_Storage.pdf
│ ├── 20_Mass_Storage_Disk_Scheduling.pdf
│ ├── 21_File_System_Interface.pdf
│ ├── 21_Mass_Storage.pdf
│ ├── 22_File_System_Implementation.pdf
│ ├── 22_Mass_Storage_Disk_Scheduling.pdf
│ ├── Advanced_Paging.pdf
│ ├── Basics_of_OS_Process_Management.pdf
│ ├── CPU_Scheduling_1.pdf
│ ├── CPU_Scheduling_2.pdf
│ ├── CPU_Scheduling_Algorithms_I.pdf
│ ├── CPU_Scheduling_Algorithms_II.pdf
│ ├── CPU_Scheduling_Introduction.pdf
│ ├── Computer_Architecture_and_OS_Structures.pdf
│ ├── Deadlock.pdf
│ ├── Introduction.pdf
│ ├── Mass_Storage.pdf
│ ├── Mass_Storage_Disk_Scheduling.pdf
│ ├── Memory_Management_Allocation.pdf
│ ├── Memory_Management_Binding_and_Relocation.pdf
│ ├── Paging.pdf
│ ├── Process_Virtual_Address_Space_and_PCB.pdf
│ ├── README.md
│ ├── Synchronization.pdf
│ ├── Synchronization_Implementation.pdf
│ ├── Synchronization_Implementation_I.pdf
│ ├── Synchronization_Implementation_II.pdf
│ ├── Thread_Implementation.pdf
│ ├── Threads.pdf
│ ├── Virtual_Memory_(Part_I).pdf
│ └── Virtual_Memory_(Part_II).pdf
└── oldest
├── 2021-22.md
├── 2022-23.md
├── 2023-24.md
└── 2024-25.md
/README.md:
--------------------------------------------------------------------------------
1 | # Systems and Networking - Unit I - 2025-26
2 |
3 | [News](#News) | [General Information](#General-Information) | [Syllabus](#Syllabus) | [Class Schedules](#Class-Schedules) | [Previous Years](#Previous-Years)
4 |
5 | ## News
6 |
61 | - **IMPORTANT ANNOUNCEMENT:** The lecture scheduled for **Thursday, November 6 is canceled**.
62 | - **IMPORTANT ANNOUNCEMENT:** Classes are **suspended from Thursday, October 30 to Wednesday, November 5, inclusive**.
63 |
64 | ## General Information
65 |
66 | Welcome to the System and Networking - Unit I class!
67 |
68 | This is a second-year, first-semester course of the [BSc in Applied Computer Science and Artificial Intelligence of Sapienza University of Rome](https://corsidilaurea.uniroma1.it/it/course/33502).
69 |
70 | This repository contains class material along with any useful information for the 2025-26 academic year.
71 |
72 | ### Class Schedule
73 | - **Tuesday** from **4:00 PM** to **7:00 PM**
74 | - **Thursday** from **3:00 PM** to **5:00 PM**
75 |
76 | Both classes will take place in **Room 3 at Via De Lollis** (RM158). Please use the entrance located at Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5))
77 |
78 | ### Moodle Web Page
79 | Students must subscribe to the Moodle web page using the same credentials (username/password) to access the Wi-Fi network and Infostud services at the following link: https://elearning.uniroma1.it/course/view.php?id=20053
80 |
81 | ### Office Hours
82 | Please drop me a message to tolomei@di.uniroma1.it if you would like to arrange an in-person meeting or schedule a remote call on either Google Meet or Zoom. To issue your request, kindly specify "_SN-I 2025-26: Meeting_" in the subject of your message.
83 | In-person meetings will be held in my office, which is located in Room 106 on the 1st floor of Building E in Viale Regina Elena 295 ([map](https://goo.gl/maps/5dSuQbvaeqXePV9y6)).
84 |
85 | ### Contacts
86 | - Email: tolomei@di.uniroma1.it
87 | - Website: https://www.di.uniroma1.it/~tolomei
88 | - Sapienza's Wall: https://corsidilaurea.uniroma1.it/it/users/gabrieletolomeiuniroma1it
89 | - Office: Room 106 at the 1st floor of Building E in Viale Regina Elena, 295 ([map](https://goo.gl/maps/5dSuQbvaeqXePV9y6)).
90 |
91 | ### Description and Goals
92 | The _Operating System_ (OS) is the key component of any modern computing device. Moreover, it very well represents a fundamental concept at the heart of any Computer Science curriculum, namely _abstraction_.
93 |
94 | More specifically, by virtualizing the physical resources of a computer system, the OS allows programmers to develop software applications without worrying about the nitty-gritty of the hardware. Decoupling the software from the hardware guarantees more flexibility for the system developer as well as greater usability for the end user.
95 | It is therefore essential for any Computer Science student to have the ability to comprehend how to effectively and efficiently design and exploit the main functionalities of a highly complex software system, such as a modern operating system.
96 |
97 | To this end, we will deeply discuss the key responsibilities of so-called general-purpose OSs (i.e., those typically installed on our PCs and laptops). Amongst those responsibilities are: CPU scheduling, process/thread synchronization, memory management, and file systems, just to name a few. In addition, we will explore how OSs should adapt to resource-limited mobile devices (i.e., tablets and smartphones).
98 |
99 | All the concepts introduced are totally covered by the lecture materials provided during the course and will be treated independently of a specific operating system implementation. However, many examples will be taken from popular OSs available on the market, like UNIX/Linux, Windows, macOS, Android, iOS, etc.
100 |
101 | ### Prerequisites
102 | - Fundamentals of computer architectures
103 | - Basics of computer programming
104 |
105 | ### Exams
106 | To pass the exam, a **mandatory written test** is required, consisting of a **Moodle multiple-choice quiz** lasting **45 minutes**, which will take place in the laboratory.
107 | The outcome of the written test determines the following conditions:
108 |
109 | | Written Score | Outcome | Oral Exam |
110 | |---------------|---------|-----------|
111 | | **[15, 17]** | Admitted to oral exam | **Mandatory** |
112 | | **≥ 18** | Sufficient | **Optional** (the student can confirm the grade or take an additional oral exam) |
113 | | **< 15** | Not passed | -- |
114 |
115 | **Note:**
116 | *(a)* With a score in the range **[15, 17]**, the oral exam is **required** to pass the exam.
117 | *(b)* With a score **≥18**, the oral exam is an **optional choice for the student**.
118 | *(c)* With a score **<15**, the exam is **not passed**, and the written test must be retaken in a subsequent session.
119 |
120 | In cases *(a)* and *(b)*, it is always possible to **decline** the grade obtained in the written test. Even in this case, the written test must be retaken in a subsequent session.
121 |
122 | ### Recommended Textbooks
123 | Although they are **not** mandatory to pass the exam successfully, the following textbooks are really useful to anyone who wants to dig deeper into the subjects addressed in this course:
124 | - _Operating System Concepts_ [Silberschatz _et al._];
125 | - _Modern Operating Systems_ [Tanenbaum _et al._];
126 | - _Operating Systems: Three Easy Pieces_ [Remzi] (freely available online).
127 |
128 |
129 |
130 | ## Syllabus
131 | **Part I: Introduction**
132 | - Basic concepts
133 | - History of operating systems
134 | - Relationship between operating systems and hardware
135 | - Operating systems structures
136 |
137 | **Part II: Process Management**
138 | - Processes
139 | - CPU Scheduling
140 | - Threads
141 |
142 | **Part III: Process Synchronization**
143 | - Synchronization Tools
144 | - Synchronization Examples
145 | - Deadlock
146 |
147 | **Part IV: Memory Management**
148 | - Main memory (RAM)
149 | - Virtual memory
150 |
151 | **Part V: Storage Management**
152 | - Mass storage devices
153 | - I/O systems
154 |
155 | **Part VI: File System**
156 | - File system interface
157 | - File system implementation
158 | - File system internals
159 |
160 | **Part VII: Advanced Topics(?)**
161 | - Protection
162 | - Security
163 | - Distributed operating systems
164 | - Mobile operating systems
165 |
166 |
167 |
168 | ## Class Schedules
169 |
170 | | Lecture \# | Date | Topic | Material |
171 | |------------|------|-----------------------------------------------|----------------|
172 | | Lecture 1 | 09/23/2025 | Introduction and Basic Concepts | [slides: PDF] |
173 | | Lecture 2 | 09/25/2025 | Computer Architecture and OS Structures | [slides: PDF]|
174 | | Lecture 3 | 09/30/2025 | Process Virtual Address Space and PCB | [slides: PDF]|
175 | | Lecture 4 | 10/02/2025 | Basics of OS Process Management | [slides: PDF] |
176 | | Lecture 5 | 10/07/2025 | The Process Lifecycle | [slides: PDF] [code]|
177 | | Lecture 6 | 10/09/2025 | Introduction to CPU Scheduling | [slides: PDF]|
178 | | Lecture 7 | 10/14/2025 | CPU Scheduling Algorithms (Part I) | [slides: PDF]|
179 | | Lecture 8 | 10/16/2025 | CPU Scheduling Algorithms (Part II) | [slides: PDF]|
180 | | Lecture 9 | 10/21/2025 | Threads: Basics and Implementation | [slides: PDF] [code]|
181 | | Lecture 10 | 10/23/2025 | Process/Thread Synchronization | [slides: PDF]|
182 | | Lecture 11 | 10/28/2025 | Implementing Synchronization | [slides: PDF] [code]|
183 |
196 |
197 | ## Previous Years
198 | In the following, you can quickly navigate through Systems and Networking I class information and material from previous years.
199 |
200 | **NOTE:** _The folder containing the class material is unique and it is subject to changes and/or updates; as such, there may be differences between the content displayed on this website and what has been shown in class in the past._
201 |
202 | - [2024-25](./oldest/2024-25.md)
203 | - [2023-24](./oldest/2023-24.md)
204 | - [2022-23](./oldest/2022-23.md)
205 | - [2021-22](./oldest/2021-22.md)
206 |
--------------------------------------------------------------------------------
/code/.gitignore:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/code/processes.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/code/processes.tgz
--------------------------------------------------------------------------------
/code/synchronization.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/code/synchronization.tgz
--------------------------------------------------------------------------------
/code/threads.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/code/threads.tgz
--------------------------------------------------------------------------------
/exams/.gitkeep:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/exams/2021-22/.gitkeep:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/exams/2021-22/2022-01-13_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2021-22/2022-01-13_grades.pdf
--------------------------------------------------------------------------------
/exams/2021-22/2022-01-31_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2021-22/2022-01-31_grades.pdf
--------------------------------------------------------------------------------
/exams/2021-22/2022-06-07_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2021-22/2022-06-07_grades.pdf
--------------------------------------------------------------------------------
/exams/2021-22/2022-06-28_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2021-22/2022-06-28_grades.pdf
--------------------------------------------------------------------------------
/exams/2021-22/2022-09-06_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2021-22/2022-09-06_grades.pdf
--------------------------------------------------------------------------------
/exams/2022-23/.gitkeep:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/exams/2022-23/2023-01-19_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2022-23/2023-01-19_grades.pdf
--------------------------------------------------------------------------------
/exams/2022-23/2023-02-07_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2022-23/2023-02-07_grades.pdf
--------------------------------------------------------------------------------
/exams/2022-23/2023-06-07_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2022-23/2023-06-07_grades.pdf
--------------------------------------------------------------------------------
/exams/2022-23/2023-06-27_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2022-23/2023-06-27_grades.pdf
--------------------------------------------------------------------------------
/exams/2022-23/2023-09-12_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2022-23/2023-09-12_grades.pdf
--------------------------------------------------------------------------------
/exams/2022-23/2023-10-19_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2022-23/2023-10-19_grades.pdf
--------------------------------------------------------------------------------
/exams/2023-24/.gitkeep:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/exams/2023-24/2024-01-23_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2023-24/2024-01-23_grades.pdf
--------------------------------------------------------------------------------
/exams/2023-24/2024-02-13_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2023-24/2024-02-13_grades.pdf
--------------------------------------------------------------------------------
/exams/2023-24/2024-03-25_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2023-24/2024-03-25_grades.pdf
--------------------------------------------------------------------------------
/exams/2023-24/2024-06-04_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2023-24/2024-06-04_grades.pdf
--------------------------------------------------------------------------------
/exams/2023-24/2024-07-02_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2023-24/2024-07-02_grades.pdf
--------------------------------------------------------------------------------
/exams/2023-24/2024-09-19_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2023-24/2024-09-19_grades.pdf
--------------------------------------------------------------------------------
/exams/2023-24/2024-10-17_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2023-24/2024-10-17_grades.pdf
--------------------------------------------------------------------------------
/exams/2024-25/.gitkeep:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/exams/2024-25/2025-01-23_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2024-25/2025-01-23_grades.pdf
--------------------------------------------------------------------------------
/exams/2024-25/2025-02-11_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2024-25/2025-02-11_grades.pdf
--------------------------------------------------------------------------------
/exams/2024-25/2025-03-27_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2024-25/2025-03-27_grades.pdf
--------------------------------------------------------------------------------
/exams/2024-25/2025-06-04_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2024-25/2025-06-04_grades.pdf
--------------------------------------------------------------------------------
/exams/2024-25/2025-07-03_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2024-25/2025-07-03_grades.pdf
--------------------------------------------------------------------------------
/exams/2024-25/2025-09-09_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2024-25/2025-09-09_grades.pdf
--------------------------------------------------------------------------------
/exams/2024-25/2025-10-29_grades.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exams/2024-25/2025-10-29_grades.pdf
--------------------------------------------------------------------------------
/exercises/.gitignore:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/exercises/2024-11-20_Questions.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exercises/2024-11-20_Questions.pdf
--------------------------------------------------------------------------------
/exercises/2024-12-18_Questions.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/exercises/2024-12-18_Questions.pdf
--------------------------------------------------------------------------------
/lectures/slides/01_Basics_and_History.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/01_Basics_and_History.pdf
--------------------------------------------------------------------------------
/lectures/slides/02-03-04_Computer_Architecture_and_OS_Structures.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/02-03-04_Computer_Architecture_and_OS_Structures.pdf
--------------------------------------------------------------------------------
/lectures/slides/02_Computer_Architecture_and_OS_Structures.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/02_Computer_Architecture_and_OS_Structures.pdf
--------------------------------------------------------------------------------
/lectures/slides/03_Process_Virtual_Address_Space_and_PCB.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/03_Process_Virtual_Address_Space_and_PCB.pdf
--------------------------------------------------------------------------------
/lectures/slides/04_Basics_of_OS_Process_Management.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/04_Basics_of_OS_Process_Management.pdf
--------------------------------------------------------------------------------
/lectures/slides/05_CPU_Scheduling_1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/05_CPU_Scheduling_1.pdf
--------------------------------------------------------------------------------
/lectures/slides/05_Process_Virtual_Address_Space_and_PCB.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/05_Process_Virtual_Address_Space_and_PCB.pdf
--------------------------------------------------------------------------------
/lectures/slides/06_Basics_of_OS_Process_Management.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/06_Basics_of_OS_Process_Management.pdf
--------------------------------------------------------------------------------
/lectures/slides/06_CPU_Scheduling_2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/06_CPU_Scheduling_2.pdf
--------------------------------------------------------------------------------
/lectures/slides/07-08_Threads.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/07-08_Threads.pdf
--------------------------------------------------------------------------------
/lectures/slides/07_CPU_Scheduling_1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/07_CPU_Scheduling_1.pdf
--------------------------------------------------------------------------------
/lectures/slides/08_CPU_Scheduling_2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/08_CPU_Scheduling_2.pdf
--------------------------------------------------------------------------------
/lectures/slides/09-10_Threads.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/09-10_Threads.pdf
--------------------------------------------------------------------------------
/lectures/slides/09_Synchronization_Locks.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/09_Synchronization_Locks.pdf
--------------------------------------------------------------------------------
/lectures/slides/10_Synchronization_Semaphores_Monitors.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/10_Synchronization_Semaphores_Monitors.pdf
--------------------------------------------------------------------------------
/lectures/slides/11-12_Deadlock.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/11-12_Deadlock.pdf
--------------------------------------------------------------------------------
/lectures/slides/11_Synchronization_Locks.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/11_Synchronization_Locks.pdf
--------------------------------------------------------------------------------
/lectures/slides/12_Synchronization_Semaphores_Monitors.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/12_Synchronization_Semaphores_Monitors.pdf
--------------------------------------------------------------------------------
/lectures/slides/13-14_Deadlock.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/13-14_Deadlock.pdf
--------------------------------------------------------------------------------
/lectures/slides/13_Memory_Management_Binding_and_Relocation.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/13_Memory_Management_Binding_and_Relocation.pdf
--------------------------------------------------------------------------------
/lectures/slides/14-15_Memory_Management_Allocation.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/14-15_Memory_Management_Allocation.pdf
--------------------------------------------------------------------------------
/lectures/slides/15_Memory_Management_Binding_and_Relocation.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/15_Memory_Management_Binding_and_Relocation.pdf
--------------------------------------------------------------------------------
/lectures/slides/16-17_Memory_Management_Allocation.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/16-17_Memory_Management_Allocation.pdf
--------------------------------------------------------------------------------
/lectures/slides/16_Advanced_Paging.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/16_Advanced_Paging.pdf
--------------------------------------------------------------------------------
/lectures/slides/17-18_Virtual_Memory.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/17-18_Virtual_Memory.pdf
--------------------------------------------------------------------------------
/lectures/slides/18_Advanced_Paging.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/18_Advanced_Paging.pdf
--------------------------------------------------------------------------------
/lectures/slides/19-20_Virtual_Memory.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/19-20_Virtual_Memory.pdf
--------------------------------------------------------------------------------
/lectures/slides/19_Mass_Storage.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/19_Mass_Storage.pdf
--------------------------------------------------------------------------------
/lectures/slides/20_Mass_Storage_Disk_Scheduling.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/20_Mass_Storage_Disk_Scheduling.pdf
--------------------------------------------------------------------------------
/lectures/slides/21_File_System_Interface.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/21_File_System_Interface.pdf
--------------------------------------------------------------------------------
/lectures/slides/21_Mass_Storage.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/21_Mass_Storage.pdf
--------------------------------------------------------------------------------
/lectures/slides/22_File_System_Implementation.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/22_File_System_Implementation.pdf
--------------------------------------------------------------------------------
/lectures/slides/22_Mass_Storage_Disk_Scheduling.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/22_Mass_Storage_Disk_Scheduling.pdf
--------------------------------------------------------------------------------
/lectures/slides/Advanced_Paging.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Advanced_Paging.pdf
--------------------------------------------------------------------------------
/lectures/slides/Basics_of_OS_Process_Management.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Basics_of_OS_Process_Management.pdf
--------------------------------------------------------------------------------
/lectures/slides/CPU_Scheduling_1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/CPU_Scheduling_1.pdf
--------------------------------------------------------------------------------
/lectures/slides/CPU_Scheduling_2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/CPU_Scheduling_2.pdf
--------------------------------------------------------------------------------
/lectures/slides/CPU_Scheduling_Algorithms_I.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/CPU_Scheduling_Algorithms_I.pdf
--------------------------------------------------------------------------------
/lectures/slides/CPU_Scheduling_Algorithms_II.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/CPU_Scheduling_Algorithms_II.pdf
--------------------------------------------------------------------------------
/lectures/slides/CPU_Scheduling_Introduction.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/CPU_Scheduling_Introduction.pdf
--------------------------------------------------------------------------------
/lectures/slides/Computer_Architecture_and_OS_Structures.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Computer_Architecture_and_OS_Structures.pdf
--------------------------------------------------------------------------------
/lectures/slides/Deadlock.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Deadlock.pdf
--------------------------------------------------------------------------------
/lectures/slides/Introduction.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Introduction.pdf
--------------------------------------------------------------------------------
/lectures/slides/Mass_Storage.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Mass_Storage.pdf
--------------------------------------------------------------------------------
/lectures/slides/Mass_Storage_Disk_Scheduling.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Mass_Storage_Disk_Scheduling.pdf
--------------------------------------------------------------------------------
/lectures/slides/Memory_Management_Allocation.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Memory_Management_Allocation.pdf
--------------------------------------------------------------------------------
/lectures/slides/Memory_Management_Binding_and_Relocation.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Memory_Management_Binding_and_Relocation.pdf
--------------------------------------------------------------------------------
/lectures/slides/Paging.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Paging.pdf
--------------------------------------------------------------------------------
/lectures/slides/Process_Virtual_Address_Space_and_PCB.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Process_Virtual_Address_Space_and_PCB.pdf
--------------------------------------------------------------------------------
/lectures/slides/README.md:
--------------------------------------------------------------------------------
1 | # This folder contains all the class material presented during each class.
2 |
--------------------------------------------------------------------------------
/lectures/slides/Synchronization.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Synchronization.pdf
--------------------------------------------------------------------------------
/lectures/slides/Synchronization_Implementation.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Synchronization_Implementation.pdf
--------------------------------------------------------------------------------
/lectures/slides/Synchronization_Implementation_I.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Synchronization_Implementation_I.pdf
--------------------------------------------------------------------------------
/lectures/slides/Synchronization_Implementation_II.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Synchronization_Implementation_II.pdf
--------------------------------------------------------------------------------
/lectures/slides/Thread_Implementation.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Thread_Implementation.pdf
--------------------------------------------------------------------------------
/lectures/slides/Threads.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Threads.pdf
--------------------------------------------------------------------------------
/lectures/slides/Virtual_Memory_(Part_I).pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Virtual_Memory_(Part_I).pdf
--------------------------------------------------------------------------------
/lectures/slides/Virtual_Memory_(Part_II).pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gtolomei/systems-and-networking/442e4cd764db830c009459ff19c5d470c99d7f34/lectures/slides/Virtual_Memory_(Part_II).pdf
--------------------------------------------------------------------------------
/oldest/2021-22.md:
--------------------------------------------------------------------------------
1 | # Systems and Networking - Unit I (2021-2022)
2 |
3 | [News](#News) | [General Information](#General-Information) | [Syllabus](#Syllabus) | [Class Schedules](#Class-Schedules) |
4 |
5 | ## News
6 | - **Written Exam Session V (09/06/2022) - Grades:** The outcomes of the test are available at the following link.
7 | - **Written Exam Session IV (06/28/2022) - Grades:** The outcomes of the test are available at the following link.
8 | - **Written Exam Session III (06/07/2022) - Grades:** The outcomes of the test are available at the following link.
9 | - **Written Exam Summer Sessions III-IV-V (06/07/2022-06/28/2022-09/06/2022):** Registrations to the third, fourth, and fifth written exam sessions are now open!
10 | Please, log in to your institutional Google account and fill the Google Form(s) corresponding to the session(s) you are planning to attend, as follows.
11 | - **Session III:** This session is scheduled for **Tuesday, June 7, 2022,** **from 3:30 p.m. to 4:30 p.m. CEST** in **Aula Informatica 15**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). Here is the corresponding Google Form, which closes on **Sunday, June 5, 2022, at 11:59 p.m. CEST**.
12 | - **Session IV:** This session is scheduled for **Tuesday, June 28, 2022,** **from 3:30 p.m. to 4:30 p.m. CEST** in **Aula Informatica 15**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). Here is the corresponding Google Form, which closes on **Sunday, June 26, 2022, at 11:59 p.m. CEST**.
13 | - **Session V:** This session is scheduled for **Tuesday, September 6, 2022,** **from 3:30 p.m. to 4:30 p.m. CEST** in **Aula Informatica 15**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). Here is the corresponding Google Form, which closes on **Sunday, September 4, 2022, at 11:59 p.m. CEST**.
14 | **GENTLE REMAINDER:** Only students who manifest their willingness to participate before the poll(s) deadline will be allowed to attend the corresponding exam. If you change your mind and don't want to participate in any of the exam sessions anymore, please update your answer on the form(s) accordingly, as this will significantly help me with the organization of the test.
15 | **NOTE:** _Students who are sure they will not attend any of these exam sessions **should not** fill these forms! Besides, everyone can decide to opt-in by the closing date of each poll._
16 | - **Written Exam Session II (01/31/2022) - Grades:** The outcomes of the test are available at the following link.
17 | - **Written Exam Session II (01/31/2022):** This session will take place **exclusively online from remote**. There will be **two separate rounds**: the first one is scheduled **from 3:00 p.m. to 4:00 p.m. CET**; the second round, instead, will (tentatively) **start at 5:00 p.m. until 6:00 p.m. CET**.
18 | - **Written Exam Session II (01/31/2022):** Registrations to the first written exam session are now open via Google Form at the following link. You must log in to your institutional Google account to access the form. Please, notice that this poll closes on **Wednesday, January 26, 2022 at 11:59 p.m. CET**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, please update your answer on the form accordingly, as this will significantly help me with the organization of the test.
19 | As a reminder, this exam session is scheduled for **Monday, January 31, 2022, from 3:30 p.m. to 4:30 p.m. CET** in **Aula Informatica 15**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)).
20 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill this form! Besides, everyone can decide to opt-in by the closing date of this poll._
21 | - **Written Exam Session I (01/13/2022) - Grades:** The outcomes of the test are available at the following link.
22 | - **Written Exam Session I (01/13/2022):** Registrations to the first written exam session are now open via Google Form at the following link. You must log in to your institutional Google account to access the form. Please, notice that this poll closes on **Tuesday, January 11, 2022, at 11:59 p.m. CET**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, please update your answer on the form accordingly, as this will significantly help me with the organization of the test.
23 | As a reminder, this exam session is scheduled for **Thursday, January 13, 2022, from 2:00 p.m. to 3:00 p.m. CET** in **Aula Informatica 17**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)).
24 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill this form! Besides, everyone can decide to opt-in by the closing date of this poll._
25 | - **Exam Dates**: The exam calendar is available at the following link.
26 | **Please, notice that there will not be any entry on Infostud associated with "Systems and Networking - Unit I".** Still, to make all our lives easier, I will circulate an **informal registration form** where you can express your intention to attend a specific exam session, amongst those listed in the calendar above.
27 | - All the students that are willing to attend this class (either in-person or remotely) **must subscribe ASAP** to the Moodle web page of the course, as indicated [below](#Moodle-Web-Page).
28 | - Classes will start on **Wednesday, September 29 at 11:00AM**. Students are kindly asked to refer to the class schedule at the following [link](https://acsai.di.uniroma1.it/#schedule). For any further information on how to attend classes, please keep an eye on the dedicated [web page](https://www.uniroma1.it/en/notizia/covid-19-phase-3-person-and-online-classes-exams-and-graduation-sessions).
29 |
30 | ## General Information
31 |
32 | Welcome to the System and Networking - Unit I class!
33 |
34 | This is a second-year, first-semester course of the [BSc in Applied Computer Science and Artificial Intelligence of Sapienza University of Rome](https://acsai.di.uniroma1.it/).
35 |
36 | This repository contains class material along with any useful information for the 2021-2022 academic year.
37 |
38 | ### Class Schedule
39 | - **Wednesday** from **11:00AM** to **1:00PM**
40 | - **Thursday** from **8:00AM** to **11:00AM**
41 |
42 | ### How to Attend Classes
43 | According to the guidelines provided by Sapienza University to contrast the COVID-19 pandemic, the course will be held **both** in-person and remotely. For any further information, students must refer to the official documentation available on the [Sapienza website](https://www.uniroma1.it/en/notizia/covid-19-phase-3-person-and-online-classes-exams-and-graduation-sessions).
44 |
45 | #### Attending Classes in Person: Room 2L - Via del Castro Laurenziano 7a ([map](https://goo.gl/maps/1x9rrSjsiieq41At6))
46 | Students who are willing to attend classes in presence must issue their request through the [Prodigit Sapienza](https://prodigit.uniroma1.it/) online booking system, according to the rules established (please, see [here](https://www.uniroma1.it/en/notizia/covid-19-phase-3-person-and-online-classes-exams-and-graduation-sessions)).
47 |
48 | #### Attending Classes Remotely: Zoom
49 | Students who are willing to attend classes remotely online will **need to register** to the dedicated Zoom conference, using the following link: https://uniroma1.zoom.us/meeting/register/tZMkcuqurDMtE90QEvSpAXG4QJuMjvxIGZrs
50 |
51 | ### Moodle Web Page
52 | Students must subscribe to the Moodle web page using the same credentials (username/password) to access Wi-Fi network and Infostud services, at the following link: https://elearning.uniroma1.it/course/view.php?id=13817
53 |
54 | ### Office Hours
55 | - Please, drop me a message to tolomei@di.uniroma1.it if you like to arrange an in-person meeting or schedule a remote call either on Google Meet or Zoom.
56 | In-person meetings will be held in my office, which is located in Room 106 at the 1st floor of Building E in viale Regina Elena 295 ([map](https://goo.gl/maps/5dSuQbvaeqXePV9y6)).
57 |
58 | ### Contacts
59 | - Email: tolomei@di.uniroma1.it
60 | - Website: https://www.di.uniroma1.it/~tolomei
61 | - Bacheca Sapienza: https://corsidilaurea.uniroma1.it/it/users/gabrieletolomeiuniroma1it
62 |
63 | ### Description and Goals
64 | The _Operating System_ (OS) is the key component of any modern computing device. Moreover, it very well represents a fundamental concept at the heart of any Computer Science curriculum, namely _abstraction_.
65 |
66 | More specifically, by virtualizing the physical resources of a computer system, OS allows programmers to develop software applications without worrying about the nitty-gritty of the hardware. Decoupling the software from the hardware guarantees more flexibility for the system developer as well as greater usability for the end user.
67 | It is therefore essential for any Computer Science student to have the ability to comprehend how to effectively and efficiently design and exploit the main functionalities of a highly complex software system, such as a modern operating system.
68 |
69 | To this end, we will deeply discuss the key responsibilities of so-called general purpose OSs (i.e., those typically installed on our PCs and laptops). Amongst those responsibilities are: CPU scheduling, process/thread synchronization, memory management, file systems, just to name a few. In addition, we will explore how OSs should adapt to resource-limited mobile devices (i.e., tablets and smartphones).
70 |
71 | All the concepts introduced are totally covered by the lecture materials provided during the course, and will be treated independently from a specific operating system implementation. However, many examples will be taken from popular OSs available on the market like UNIX/Linux, Windows, macOS, Android, iOS, etc.
72 |
73 | ### Prerequisites
74 | - Fundamentals of computer architectures
75 | - Basics of computer programming
76 |
77 |
78 | ### Exams
79 | Written and oral exam.
80 | Written exam consists of a Moodle quiz containing **20 multiple-answer questions**. Each correct answer accounts for 3 points, each wrong answer subtracts 1 point, whilst no answer gives no points. The quiz is successfully passed if the overall score is **greater than or equal to 15/30**. Those who obtain a score ranging between 15/30 and 17/30 must take a mandatory oral exam; instead, those who passed the quiz with a score of 18/30 or higher can decide to accept this as their final score or to take an additional oral exam.
81 |
82 | ### Recommended Textbooks
83 | Despite they are not mandatory for successfully pass the exam, the following textbooks are really useful to anyone who wants to dig deeper into the subjects addressed in this course:
84 | - _Operating System Concepts_ [Silberschatz _et al._];
85 | - _Modern Operating Systems_ [Tanenbaum _et al._];
86 | - _Operating Systems: Three Easy Pieces_ [Remzi] (freely available online).
87 |
88 |
89 |
90 | ## Syllabus
91 | **Part I: Introduction**
92 | - Basic concepts
93 | - History of operating systems
94 | - Relationship between operating systems and hardware
95 | - Operating systems structures
96 |
97 | **Part II: Process Management**
98 | - Processes
99 | - CPU Scheduling
100 | - Threads
101 |
102 | **Part III: Process Synchronization**
103 | - Synchronization Tools
104 | - Synchronization Examples
105 | - Deadlock
106 |
107 | **Part IV: Memory Management**
108 | - Main memory (RAM)
109 | - Virtual memory
110 |
111 | **Part V: Storage Management**
112 | - Mass storage devices
113 | - I/O systems
114 |
115 | **Part VI: File System**
116 | - File system interface
117 | - File system implementation
118 | - File system internals
119 |
120 |
125 |
126 |
127 |
128 | ## Class Schedules
129 |
130 | | Lecture \# | Date | Topic | Material |
131 | |------------|------|-----------------------------------------------|----------------|
132 | | Lecture 1 | 09/29/2021 | Basics and History of Operating Systems | [slides: PDF] |
133 | | Lecture 2 | 09/30/2021 | Computer Architecture and OS Structures | [slides: PDF]|
134 | | Lecture 3 | 10/06/2021 | Process Virtual Address Space and PCB | [slides: PDF]|
135 | | Lecture 4 | 10/07/2021 | Basics of OS Process Management | [slides: PDF] [code]|
136 | | Lecture 5 | 10/13/2021 | CPU Scheduling (1 of 2) | [slides: PDF]|
137 | | Lecture 6 | 10/14/2021 | CPU Scheduling (2 of 2) | [slides: PDF]|
138 | | Lectures 7 & 8 | 10/20/2021-10/21/2021 | Threads | [slides: PDF] [code]|
139 | | Lecture 9 | 10/27/2021 | Process/Thread Synchronization (Locks) | [slides: PDF]|
140 | | Lecture 10 | 10/28/2021 | Process/Thread Synchronization (Semaphores and Monitors) | [slides: PDF] [code]|
141 | | Lectures 11 & 12 | 11/03/2021-11/04/2021 | Deadlock | [slides: PDF]|
142 | | Lecture 13 | 11/10/2021 | Memory Management: Binding and Relocation | [slides: PDF] |
143 | | Lectures 14 & 15 | 11/11/2021-11/17/2021 | Memory Management: Contiguous Allocation and Paging | [slides: PDF] |
144 | | Lectures 16 | 11/18/2021 | Advanced Paging | [slides: PDF] |
145 | | Lectures 17 & 18 | 11/24/2021 - 11/25/2021 | Virtual Memory | [slides: PDF] |
146 | | Lecture 19 | 12/01/2021 | Mass Storage | [slides: PDF] |
147 | | Lecture 20 | 12/02/2021 | Disk Scheduling | [slides: PDF] |
148 | | Lecture 21 | 12/09/2021 | File System Interface | [slides: PDF] |
149 | | Lecture 22 | 12/15/2021 | File System Implementation | [slides: PDF] |
150 | | Lezioni 22 - 23 - 24 | 16/12/2020 - 21/12/2020 - 23/12/2020 | Esercitazioni | |
151 |
--------------------------------------------------------------------------------
/oldest/2022-23.md:
--------------------------------------------------------------------------------
1 | # Systems and Networking - Unit I - 2022-23
2 |
3 | [News](#News) | [General Information](#General-Information) | [Syllabus](#Syllabus) | [Class Schedules](#Class-Schedules) | [Previous Years](#Previous-Years)
4 |
5 | ## News
6 |
7 | - **Written Exam Extra Session (10/19/2023) - Grades**
8 | The outcomes of the test are available at the following link.
9 | - **Written Exam Session V (09/12/2023) - Grades**
10 | The outcomes of the test are available at the following link.
11 | - **Written Exam Session V (09/12/2023)**
12 | Registrations to the first written exam session are now open via Google Form at the following link. You must log in to your institutional Google account to access the form. Please, notice that this poll closes on **Sunday, September 10, 2023, at 11:59 p.m. CEST**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, please update your answer on the form accordingly, as this will significantly help me with the organization of the test.
13 | As a reminder, this exam session is scheduled for **Tuesday, September 12, 2023, from 3:30 p.m. to 4:30 p.m. CEST** in **Aula Informatica 17**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). However, notice that the time schedule above is **_tentative_**, and slight changes might occur if needed. For example, if the number of participants exceeds the room's capacity, there will be two consecutive rounds. Further details on how to attend this test will be therefore communicated close to the exam's date.
14 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill out this form! Besides, everyone can decide to opt in by the closing date of this poll._
15 | - **Oral Exam Session IV**
16 | The oral exam will take place remotely on a one-day session: **Thursday, 29 June, at 11:00 a.m. CEST**. Please refer to the instructions sent via the Moodle forum for further information.
17 | - **Written Exam Session IV (06/27/2023) - Grades**
18 | The outcomes of the test are available at the following link.
19 | - **Written Exam Session IV (06/27/2023)**
20 | Registrations to the first written exam session are now open via Google Form at the following link. You must log in to your institutional Google account to access the form. Please, notice that this poll closes on **Sunday, June 25, 2023, at 11:59 p.m. CEST**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, please update your answer on the form accordingly, as this will significantly help me with the organization of the test.
21 | As a reminder, this exam session is scheduled for **Tuesday, June 27, 2023, from 3:30 p.m. to 4:30 p.m. CEST** in **Aula Informatica 17**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). However, notice that the time schedule above is **_tentative_**, and slight changes might occur if needed. For example, if the number of participants exceeds the room's capacity, there will be two consecutive rounds. Further details on how to attend this test will be therefore communicated close to the exam's date.
22 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill out this form! Besides, everyone can decide to opt in by the closing date of this poll._
23 | - **Oral Exam Session III**
24 | The oral exam will take place remotely on a one-day session: **Monday, 12 June, at 10:30 a.m. CEST**. Please refer to the instructions sent via the Moodle forum for further information.
25 | - **Written Exam Session III (06/07/2023) - Grades**
26 | The outcomes of the test are available at the following link.
27 | - **Written Exam Session III (06/07/2023)**
28 | Registrations to the first written exam session are now open via Google Form at the following link. You must log in to your institutional Google account to access the form. Please, notice that this poll closes on **Sunday, June 4, 2023, at 11:59 p.m. CEST**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, please update your answer on the form accordingly, as this will significantly help me with the organization of the test.
29 | As a reminder, this exam session is scheduled for **Wednesday, June 7, 2023, from 3:30 p.m. to 4:30 p.m. CEST** in **Aula Informatica 17**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). However, notice that the time schedule above is **_tentative_**, and slight changes might occur if needed. For example, if the number of participants exceeds the room's capacity, there will be two consecutive rounds. Further details on how to attend this test will be therefore communicated close to the exam's date.
30 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill out this form! Besides, everyone can decide to opt in by the closing date of this poll._
31 | - **Oral Exam Session II**
32 | The oral exam will take place remotely on a one-day session: **Friday, 10 February, at 9:00 a.m. CET**. Please refer to the instructions sent via the Moodle forum for further information.
33 | - **Written Exam Session II (02/07/2023) - Grades**
34 | The outcomes of the test are available at the following link.
35 | - **Oral Exam Session I**
36 | The oral exam will take place remotely on a two-day session: **Wednesday, 25, and Thursday, 26 January**. Both sessions are expected to start at **9:30 a.m. CET**. Please refer to the instructions sent via the Moodle forum for further information.
37 | - **Written Exam Session I (01/19/2023) - Grades**
38 | The outcomes of the test are available at the following link.
39 | - **Exam Simulations Review on 01/12/2023**
40 | The review of the exam simulations will take place on **Thursday, January 12, 2023, exclusively from remote** via Zoom from **9:30 a.m.**. To join this meeting, please follow the instructions provided in the message sent to you via the Moodle forum.
41 | - **Remote-only Class on 12/07/2022**
42 | Our next class will take place on **Wednesday, December 7, 2022, exclusively from remote** via Zoom at the usual time, i.e., from **1:00 p.m. to 4:00 p.m**. To join this meeting, please follow the instructions provided in the message sent to you via the Moodle forum.
43 | - **Written Exam Session II (02/07/2023)**
44 | Registrations to the first written exam session are now open via Google Form at the following link. You must log in to your institutional Google account to access the form. Please, notice that this poll closes on **Friday, February 3, 2023, at 11:59 p.m. CET**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, please update your answer on the form accordingly, as this will significantly help me with the organization of the test.
45 | As a reminder, this exam session is scheduled for **Tuesday, February 7, 2023, from 4:00 p.m. to 5:00 p.m. CET** in **Aula Informatica 16**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). However, notice that the time schedule above is **_tentative_**, and slight changes might occur if needed. For example, if the number of participants exceeds the room's capacity, there will be two consecutive rounds. Further details on how to attend this test will be therefore communicated close to the exam's date.
46 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill out this form! Besides, everyone can decide to opt in by the closing date of this poll._
47 | - **Written Exam Session I (01/19/2023)**
48 | Registrations to the first written exam session are now open via Google Form at the following link. You must log in to your institutional Google account to access the form. Please, notice that this poll closes on **Sunday, January 15, 2023, at 11:59 p.m. CET**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, please update your answer on the form accordingly, as this will significantly help me with the organization of the test.
49 | As a reminder, this exam session is scheduled for **Thursday, January 19, 2023, from 4:00 p.m. to 5:00 p.m. CET** in **Aula Informatica 16**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). However, notice that the time schedule above is **_tentative_**, and slight changes might occur if needed. For example, if the number of participants exceeds the room's capacity, there will be two consecutive rounds. Further details on how to attend this test will be therefore communicated close to the exam's date.
50 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill out this form! Besides, everyone can decide to opt in by the closing date of this poll._
51 | - **Exam Dates**
52 | The exam calendar is available at the following link.
53 | **Please, notice that there will not be any entry on Infostud associated with "Systems and Networking - Unit I".** Still, to make all our lives easier, I will circulate an **informal registration form** where you can express your intention to attend a specific exam session, amongst those listed in the calendar above.
54 | - All the students that are willing to attend this class **must subscribe ASAP** to the Moodle web page of the course, as indicated [below](#Moodle-Web-Page). In addition, we remind students to fill out the dedicated [Google Form](https://forms.gle/TZYecGadZ6CDFhQj7) as specified [below](#How-to-Attend-Classes).
55 | - Classes will start on **Wednesday, September 28 2022**. Students are kindly asked to refer to the class schedule at the following [link](https://corsidilaurea.uniroma1.it/cdlcontroller-orari-cdl/2022/30786).
56 |
57 | ## General Information
58 |
59 | Welcome to the System and Networking - Unit I class!
60 |
61 | This is a second-year, first-semester course of the [BSc in Applied Computer Science and Artificial Intelligence of Sapienza University of Rome](https://acsai.di.uniroma1.it/).
62 |
63 | This repository contains class material along with any useful information for the 2022-23 academic year.
64 |
65 | ### Class Schedule
66 | - **Wednesday** from **1:00 p.m.** to **4:00 p.m.** (Room 2L - Via del Castro Laurenziano, 7 [[map](https://goo.gl/maps/1x9rrSjsiieq41At6)])
67 | - **Thursday** from **8:00 a.m.** to **10:00 a.m.** (Room 2L - Via del Castro Laurenziano, 7 [[map](https://goo.gl/maps/1x9rrSjsiieq41At6)])
68 |
69 | ### How to Attend Classes
70 | As indicated by the latest rules provided by Sapienza, to prevent and contain the spread of COVID-19 infection, a "lightweight" contact tracing tool has been developed via a dedicated Google Form that can be filled anytime (before, during, or after classes).
71 |
72 | This will help keep students and the entire Sapienza community safe. Therefore, we kindly ask students willing to attend classes in person to fill out the proper form that can be found at this [link](https://forms.gle/TZYecGadZ6CDFhQj7).
73 |
74 | We thank all the students for their collaboration.
75 |
76 | ### Moodle Web Page
77 | Students must subscribe to the Moodle web page using the same credentials (username/password) to access Wi-Fi network and Infostud services, at the following link: https://elearning.uniroma1.it/course/view.php?id=15524
78 |
79 | ### Office Hours
80 | Please, drop me a message to tolomei@di.uniroma1.it if you like to arrange an in-person meeting or schedule a remote call either on Google Meet or Zoom. To issue your request, kindly specify "_SN-I 2022-23: Meeting_" in the subject of your message.
81 | In-person meetings will be held in my office, which is located in Room 106 at the 1st floor of Building E in Viale Regina Elena 295 ([map](https://goo.gl/maps/5dSuQbvaeqXePV9y6)).
82 |
83 | ### Contacts
84 | - Email: tolomei@di.uniroma1.it
85 | - Website: https://www.di.uniroma1.it/~tolomei
86 | - Bacheca Sapienza: https://corsidilaurea.uniroma1.it/it/users/gabrieletolomeiuniroma1it
87 | - Office: Room 106 at the 1st floor of Building E in Viale Regina Elena, 295 ([map](https://goo.gl/maps/5dSuQbvaeqXePV9y6)).
88 |
89 | ### Description and Goals
90 | The _Operating System_ (OS) is the key component of any modern computing device. Moreover, it very well represents a fundamental concept at the heart of any Computer Science curriculum, namely _abstraction_.
91 |
92 | More specifically, by virtualizing the physical resources of a computer system, OS allows programmers to develop software applications without worrying about the nitty-gritty of the hardware. Decoupling the software from the hardware guarantees more flexibility for the system developer as well as greater usability for the end user.
93 | It is therefore essential for any Computer Science student to have the ability to comprehend how to effectively and efficiently design and exploit the main functionalities of a highly complex software system, such as a modern operating system.
94 |
95 | To this end, we will deeply discuss the key responsibilities of so-called general purpose OSs (i.e., those typically installed on our PCs and laptops). Amongst those responsibilities are: CPU scheduling, process/thread synchronization, memory management, file systems, just to name a few. In addition, we will explore how OSs should adapt to resource-limited mobile devices (i.e., tablets and smartphones).
96 |
97 | All the concepts introduced are totally covered by the lecture materials provided during the course, and will be treated independently from a specific operating system implementation. However, many examples will be taken from popular OSs available on the market like UNIX/Linux, Windows, macOS, Android, iOS, etc.
98 |
99 | ### Prerequisites
100 | - Fundamentals of computer architectures
101 | - Basics of computer programming
102 |
103 | ### Exams
104 | Written and oral exam.
105 | Written exam consists of a Moodle quiz containing **20 multiple-answer questions**. Each correct answer accounts for 3 points, each wrong answer subtracts 1 point, whilst no answer gives no points. The quiz is successfully passed if the overall score is **greater than or equal to 15/30**. Those who obtain a score ranging between 15/30 and 17/30 must take a mandatory oral exam; instead, those who passed the quiz with a score of 18/30 or higher can decide to accept this as their final score or to take an additional oral exam.
106 |
107 | ### Recommended Textbooks
108 | Despite they are **not** mandatory for successfully pass the exam, the following textbooks are really useful to anyone who wants to dig deeper into the subjects addressed in this course:
109 | - _Operating System Concepts_ [Silberschatz _et al._];
110 | - _Modern Operating Systems_ [Tanenbaum _et al._];
111 | - _Operating Systems: Three Easy Pieces_ [Remzi] (freely available online).
112 |
113 |
114 |
115 | ## Syllabus
116 | **Part I: Introduction**
117 | - Basic concepts
118 | - History of operating systems
119 | - Relationship between operating systems and hardware
120 | - Operating systems structures
121 |
122 | **Part II: Process Management**
123 | - Processes
124 | - CPU Scheduling
125 | - Threads
126 |
127 | **Part III: Process Synchronization**
128 | - Synchronization Tools
129 | - Synchronization Examples
130 | - Deadlock
131 |
132 | **Part IV: Memory Management**
133 | - Main memory (RAM)
134 | - Virtual memory
135 |
136 | **Part V: Storage Management**
137 | - Mass storage devices
138 | - I/O systems
139 |
140 | **Part VI: File System**
141 | - File system interface
142 | - File system implementation
143 | - File system internals
144 |
145 | **Part VII: Advanced Topics**
146 | - Protection
147 | - Security
148 | - Distributed operating systems
149 | - Mobile operating systems
150 |
151 |
152 |
153 | ## Class Schedules
154 |
155 | | Lecture \# | Date | Topic | Material |
156 | |------------|------|-----------------------------------------------|----------------|
157 | | Lecture 1 | 09/28/2022 | Basics and History of Operating Systems | [slides: PDF] |
158 | | Lecture 2 | 09/29/2022 | Computer Architecture and OS Structures (Part I) | [slides: PDF]|
159 | | Lecture 3 | 10/05/2022 | Computer Architecture and OS Structures (Part II) | [slides: PDF]|
160 | | Lecture 4 | 10/06/2022 | Computer Architecture and OS Structures (Part III) | [slides: PDF]|
161 | | Lecture 5 | 10/12/2022 | Process Virtual Address Space and PCB | [slides: PDF]|
162 | | Lecture 6 | 10/13/2022 | Basics of OS Process Management (Part I) | [slides: PDF] [code]|
163 | | Lecture 7 | 10/19/2022 | Basics of OS Process Management (Part II) | [slides: PDF]|
164 | | Lecture 8 | 10/20/2022 | CPU Scheduling (Part I) | [slides: PDF]|
165 | | Lecture 9 | 10/26/2022 | CPU Scheduling (Part II) | [slides: PDF]|
166 | | Lecture 10 | 10/27/2022 | CPU Scheduling (Part III) | [slides: PDF]|
167 | | Lecture 11 | 11/02/2022 | Threads (Part I) | [slides: PDF] |
168 | | Lecture 12 | 11/03/2022 | Threads (Part II) | [slides: PDF] [code]|
169 | | Lectures 13-14 | 11/09/2022-11/10/2022 | Process/Thread Synchronization (Locks) | [slides: PDF]|
170 | | Lectures 15-16 | 11/16/2022-11/17/2022 | Process/Thread Synchronization (Semaphores and Monitors) | [slides: PDF] [code]|
171 | | Lectures 17-18 | 11/23/2022-11/24/2022 | Deadlock | [slides: PDF]|
172 | | Lecture 19 | 11/30/2022 | Memory Management: Binding and Relocation | [slides: PDF] |
173 | | Lecture 20 | 12/01/2022 | Memory Management: Contiguous Allocation and Paging | [slides: PDF] |
174 | | Lecture 21 | 12/07/2022 | Memory Management: Advanced Paging (Segmentation) | [slides: PDF] |
175 | | Lectures 22-23-24 | 12/07/2022 - 12/14/2022 - 12/15/2022 | Virtual Memory and Page Replacement | [slides: PDF] |
176 | | Lecture 25 | 12/21/2022 | Mass Storage | [slides: PDF] |
177 | | Lecture 26 | 12/21/2022 - 12/22/2022 | Disk Scheduling | [slides: PDF] |
178 |
--------------------------------------------------------------------------------
/oldest/2023-24.md:
--------------------------------------------------------------------------------
1 | # Systems and Networking - Unit I - 2023-24
2 |
3 | [News](#News) | [General Information](#General-Information) | [Syllabus](#Syllabus) | [Class Schedules](#Class-Schedules)
4 | ## News
5 | - **Oral Exam Extra Session**
6 | The oral exam will take place in person in my office on **Tuesday, October 22, at 12:00 p.m. CEST**. Please refer to the instructions sent via the Moodle forum for more information.
7 | - **Written Exam Extra Session (10/17/2024) - Grades**
8 | The results of the test are available at the following link.
9 | - **Written Exam Extra Session (10/17/2024)**
10 | Registrations to the _**extra**_ written exam session are now open via Google Form at the following link. **Before you can register for this extra session, you must issue an appropriate request to certify that you are entitled to attend it**. Then, as usual, you'll need to log in to your institutional Google account so you can access the form. Just so you know, this poll closes on **Tuesday, October 15, 2024, at 11:59 p.m.**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, **_please update your answer on the form accordingly_**, as this will significantly help me with the organization of the test.
11 | This exam session is scheduled for **Thursday, October 17, 2024,** ~**from 10:00 a.m. to 11:00 a.m.**~ **from 2:00 p.m. to 3:00 p.m.** and will take place in **Aula Informatica 16**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). However, notice that the time schedule above is **_tentative_**, and slight changes might occur if needed. Further details on how to attend this test will be therefore communicated close to the exam's date.
12 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill out this form! Besides, everyone can decide to opt in by the closing date of this poll._
13 | - **Written Exam Session V (09/19/2024) - Grades**
14 | The results of the test are available at the following link.
15 | - **Written Exam Session V (09/19/2024)**
16 | Registrations to the fifth written exam session are now open via Google Form at the following link. You'll need to log in to your institutional Google account so you can access the form. Just so you know, this poll closes on **Sunday, September 15, 2024, at 11:59 p.m. CEST**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, **_please update your answer on the form accordingly_**, as this will significantly help me with the organization of the test.
17 | As a reminder, this exam session is scheduled for **Thursday, September 19, 2024, from 2:00 to 3:00 p.m.** in **Aula Informatica 15**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)).
18 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill out this form! Besides, everyone can decide to opt in by the closing date of this poll._
19 | - **Oral Exam Session IV**
20 | The oral exam will take place remotely on **Monday, July 8, at 10:30 a.m. CEST (_tentatively_)**. Please refer to the instructions sent via the Moodle forum for more information.
21 | - **Written Exam Session IV (07/02/2024) - Grades**
22 | The results of the test are available at the following link.
23 | - **Written Exam Session IV (07/02/2024)**
24 | Registrations to the fourth written exam session are now open via Google Form at the following link. You'll need to log in to your institutional Google account so you can access the form. Just so you know, this poll closes on **Friday, June 28, 2024, at 11:59 p.m. CEST**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, **_please update your answer on the form accordingly_**, as this will significantly help me with the organization of the test.
25 | As a reminder, this exam session is scheduled for **Tuesday, July 2, 2024** in **Aula Informatica 15**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). Depending on the number of participants, the exam might be split into two consecutive rounds. More accurate details on the exact schedule will be therefore communicated close to the exam's date.
26 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill out this form! Besides, everyone can decide to opt in by the closing date of this poll._
27 | - **Oral Exam Session III**
28 | The oral exam will take place remotely on **Monday, June 10, at 2:30 p.m. CEST**. Please refer to the instructions sent via the Moodle forum for more information.
29 | - **Written Exam Session III (06/04/2024) - Grades**
30 | The results of the test are available at the following link.
31 | - **Written Exam Session III (06/04/2024)**
32 | Registrations to the third written exam session are now open via Google Form at the following link. You'll need to log in to your institutional Google account so you can access the form. Just so you know, this poll closes on **Friday, May 31, 2024, at 11:59 p.m. CEST**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, **_please update your answer on the form accordingly_**, as this will significantly help me with the organization of the test.
33 | As a reminder, this exam session is scheduled for **Tuesday, June 4, 2024** in **Aula Informatica 15**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). Depending on the number of participants, the exam might be split into two consecutive rounds. More accurate details on the exact schedule will be therefore communicated close to the exam's date.
34 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill out this form! Besides, everyone can decide to opt in by the closing date of this poll._
35 | - **Oral Exam Extra Session**
36 | The extraordinary oral exam will take place remotely on **Thursday, March 28**. Please refer to the instructions sent via the Moodle forum for more information.
37 | - **Written Exam Extra Session (03/25/2024) - Grades**
38 | The results of the test are available at the following link.
39 | - **Written Exam Extra Session (03/25/2024)**
40 | Registrations to the _**extra**_ written exam session are now open via Google Form at the following link. **Before you can register for this extra session, you must issue an appropriate request to certify that you are entitled to attend it**. Then, as usual, you'll need to log in to your institutional Google account so you can access the form. Just so you know, this poll closes on **Friday, March 22, 2024, at 11:59 p.m. CET**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, **_please update your answer on the form accordingly_**, as this will significantly help me with the organization of the test.
41 | This exam session is scheduled for **Monday, March 25, 2024,** **from 2:30 p.m. to 3:30 p.m. CET** and will take place in **Aula Informatica 15**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). However, notice that the time schedule above is **_tentative_**, and slight changes might occur if needed. Further details on how to attend this test will be therefore communicated close to the exam's date.
42 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill out this form! Besides, everyone can decide to opt in by the closing date of this poll._
43 | - **Oral Exam Session II**
44 | The oral exam will take place remotely on **Monday, February 19, at 2:00 p.m. CET**. Please refer to the instructions sent via the Moodle forum for more information.
45 | - **Written Exam Session II (02/13/2024) - Grades**
46 | The results of the test are available at the following link.
47 | - **Written Exam Session II (02/13/2024)**
48 | Registrations to the second written exam session are now open via Google Form at the following link. You'll need to log in to your institutional Google account so you can access the form. Just so you know, this poll closes on **Friday, February 9, 2024, at 11:59 p.m. CET**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, **_please update your answer on the form accordingly_**, as this will significantly help me with the organization of the test.
49 | As a reminder, this exam session is scheduled for **Tuesday, February 13, 2024**, in **two separate rounds**, the first one **from 3:00 p.m. to 4:00 p.m. CET** and the second one **from 4:15 p.m. to 5:15 p.m. CET**. Please refer to the message on the Moodle forum to know which of the two groups you have been assigned to. Both rounds will take place in **Aula Informatica 15**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). However, notice that the time schedule above is **_tentative_**, and slight changes might occur if needed. For example, if the number of participants exceeds the room's capacity, two consecutive rounds will occur. Further details on how to attend this test will be therefore communicated close to the exam's date.
50 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill out this form! Besides, everyone can decide to opt in by the closing date of this poll._
51 | - **Oral Exam Session I**
52 | The oral exam will take place remotely on a two-day session: **Monday, January 29, at 2:30 p.m. CET** and **Tuesday, January 30, at 9:00 a.m. CET**. Please refer to the instructions sent via the Moodle forum for more information.
53 | - **Written Exam Session I (01/23/2024) - Grades**
54 | The results of the test are available at the following link.
55 | - **Written Exam Session I (01/23/2024)**
56 | Registrations to the first written exam session are now open via Google Form at the following link. You'll need to log in to your institutional Google account so you can access the form. Just so you know, this poll closes on **Friday, January 19, 2024, at 11:59 p.m. CET**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, **_please update your answer on the form accordingly_**, as this will significantly help me with the organization of the test.
57 | As a reminder, this exam session is scheduled for **Tuesday, January 23, 2024**, in **two separate rounds**, the first one **from 4:00 p.m. to 5:00 p.m. CET** and the second one **from 5:15 p.m. to 6:15 p.m. CET**. Please refer to the message on the Moodle forum to know which of the two groups you have been assigned to. Both rounds will take place in **Aula Informatica 15**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). However, notice that the time schedule above is **_tentative_**, and slight changes might occur if needed. For example, if the number of participants exceeds the room's capacity, two consecutive rounds will occur. Further details on how to attend this test will be therefore communicated close to the exam's date.
58 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill out this form! Besides, everyone can decide to opt in by the closing date of this poll._
59 | - **Written Exam Dates**
60 | The exam calendar is available at the following link.
61 | **Please, notice that there will not be any entry on Infostud associated with "Systems and Networking - Unit I".** Still, to make all our lives easier, I will circulate an **informal registration form** where you can express your intention to attend a specific exam session, amongst those listed in the calendar above.
62 | - **ANNOUNCEMENT:** Different from what was previously announced, our class will **regularly take place on Wednesday, December 6, from 2:00 p.m. to 5:00 p.m.** Apologize for the confusion.
63 | - **ANNOUNCEMENT:** The upcoming lecture scheduled for **Thursday, November 2, from 8:00 a.m. to 10:00 a.m.** will be held remotely via Zoom. For more information, please take a look at the message sent on the Moodle forum.
64 | - All the students that are willing to attend this class **must subscribe ASAP** to the Moodle web page of the course, as indicated [below](#Moodle-Web-Page).
65 | - Classes will start on **Wednesday, October 4 2023**. Students are kindly asked to refer to the class schedule at the following [link](https://docs.google.com/spreadsheets/d/e/2PACX-1vSxKYKEawJii_pfprJlr9oZtVy1FTEdyzDl0ucK7eofw5wNJqSc857nSylwYwP9kG7gqToPRwF1_Zd3/pubhtml).
66 |
67 | ## General Information
68 |
69 | Welcome to the System and Networking - Unit I class!
70 |
71 | This is a second-year, first-semester course of the [BSc in Applied Computer Science and Artificial Intelligence of Sapienza University of Rome](https://acsai.di.uniroma1.it/).
72 |
73 | This repository contains class material along with any useful information for the 2023-24 academic year.
74 |
75 | ### Class Schedule
76 | - **Wednesday** from **2:00 p.m.** to **5:00 p.m.** (Room 1L - Via del Castro Laurenziano, 7 [[map](https://goo.gl/maps/1x9rrSjsiieq41At6)])
77 | - **Thursday** from **8:00 a.m.** to **10:00 a.m.** (Room 2L - Via del Castro Laurenziano, 7 [[map](https://goo.gl/maps/1x9rrSjsiieq41At6)])
78 |
79 | ### Moodle Web Page
80 | Students must subscribe to the Moodle web page using the same credentials (username/password) to access Wi-Fi network and Infostud services, at the following link: https://elearning.uniroma1.it/course/view.php?id=16988
81 |
82 | ### Office Hours
83 | Please, drop me a message to tolomei@di.uniroma1.it if you like to arrange an in-person meeting or schedule a remote call either on Google Meet or Zoom. To issue your request, kindly specify "_SN-I 2023-24: Meeting_" in the subject of your message.
84 | In-person meetings will be held in my office, which is located in Room 106 on the 1st floor of Building E in Viale Regina Elena 295 ([map](https://goo.gl/maps/5dSuQbvaeqXePV9y6)).
85 |
86 | ### Contacts
87 | - Email: tolomei@di.uniroma1.it
88 | - Website: https://www.di.uniroma1.it/~tolomei
89 | - Sapienza's Wall: https://corsidilaurea.uniroma1.it/it/users/gabrieletolomeiuniroma1it
90 | - Office: Room 106 at the 1st floor of Building E in Viale Regina Elena, 295 ([map](https://goo.gl/maps/5dSuQbvaeqXePV9y6)).
91 |
92 | ### Description and Goals
93 | The _Operating System_ (OS) is the key component of any modern computing device. Moreover, it very well represents a fundamental concept at the heart of any Computer Science curriculum, namely _abstraction_.
94 |
95 | More specifically, by virtualizing the physical resources of a computer system, OS allows programmers to develop software applications without worrying about the nitty-gritty of the hardware. Decoupling the software from the hardware guarantees more flexibility for the system developer as well as greater usability for the end user.
96 | It is therefore essential for any Computer Science student to have the ability to comprehend how to effectively and efficiently design and exploit the main functionalities of a highly complex software system, such as a modern operating system.
97 |
98 | To this end, we will deeply discuss the key responsibilities of so-called general-purpose OSs (i.e., those typically installed on our PCs and laptops). Amongst those responsibilities are: CPU scheduling, process/thread synchronization, memory management, and file systems, just to name a few. In addition, we will explore how OSs should adapt to resource-limited mobile devices (i.e., tablets and smartphones).
99 |
100 | All the concepts introduced are totally covered by the lecture materials provided during the course and will be treated independently from a specific operating system implementation. However, many examples will be taken from popular OSs available on the market like UNIX/Linux, Windows, macOS, Android, iOS, etc.
101 |
102 | ### Prerequisites
103 | - Fundamentals of computer architectures
104 | - Basics of computer programming
105 |
106 | ### Exams
107 | Written and oral exam.
108 | The written exam consists of a Moodle quiz containing **20 multiple-answer questions**. Each correct answer accounts for 3 points, each wrong answer subtracts 1 point, whilst no answer gives no points. The quiz is successfully passed if the overall score is **greater than or equal to 15/30**. Those who obtain a score ranging between 15/30 and 17/30 must take a mandatory oral exam; instead, those who passed the quiz with a score of 18/30 or higher can decide to accept this as their final score or to take an additional oral exam.
109 |
110 | ### Recommended Textbooks
111 | Despite they are **not** mandatory to pass the exam successfully, the following textbooks are really useful to anyone who wants to dig deeper into the subjects addressed in this course:
112 | - _Operating System Concepts_ [Silberschatz _et al._];
113 | - _Modern Operating Systems_ [Tanenbaum _et al._];
114 | - _Operating Systems: Three Easy Pieces_ [Remzi] (freely available online).
115 |
116 |
117 |
118 | ## Syllabus
119 | **Part I: Introduction**
120 | - Basic concepts
121 | - History of operating systems
122 | - Relationship between operating systems and hardware
123 | - Operating systems structures
124 |
125 | **Part II: Process Management**
126 | - Processes
127 | - CPU Scheduling
128 | - Threads
129 |
130 | **Part III: Process Synchronization**
131 | - Synchronization Tools
132 | - Synchronization Examples
133 | - Deadlock
134 |
135 | **Part IV: Memory Management**
136 | - Main memory (RAM)
137 | - Virtual memory
138 |
139 | **Part V: Storage Management**
140 | - Mass storage devices
141 | - I/O systems
142 |
143 |
155 |
156 |
157 |
158 | ## Class Schedules
159 |
160 | | Lecture \# | Date | Topic | Material |
161 | |------------|------|-----------------------------------------------|----------------|
162 | | Lectures 1-2 | 10/04/2023-10/05/2023 | Introduction and Basic Concepts | [slides: PDF] |
163 | | Lecture 3 | 10/11/2023 | Computer Architecture and OS Structures | [slides: PDF]|
164 | | Lecture 4 | 10/12/2023 | Process Virtual Address Space and PCB | [slides: PDF]|
165 | | Lectures 5-6 | 10/18/2023-10/19/2023 | Basics of OS Process Management | [slides: PDF] [code]|
166 | | Lecture 7 | 10/25/2023 | CPU Scheduling (Part I) | [slides: PDF]|
167 | | Lecture 8 | 10/26/2023 | CPU Scheduling (Part II) | [slides: PDF]|
168 | | Lecture 9 | 11/02/2023 | Threads | [slides: PDF]|
169 | | Lecture 10 | 11/08/2023 | Thread Implementation | [slides: PDF] [code]|
170 | | Lecture 11 | 11/09/2023 | Process/Thread Synchronization | [slides: PDF]|
171 | | Lectures 12-13 | 11/15/2023-11/16/2023 | Synchronization Implementation | [slides: PDF] [code]|
172 | | Lectures 14-15 | 11/22/2023-11/23/2023 | Deadlock | [slides: PDF]|
173 | | Lecture 16 | 11/29/2023 | Memory Management: Binding and Relocation | [slides: PDF] |
174 | | Lecture 17 | 11/30/2023 | Memory Management: Contiguous Allocation | [slides: PDF] |
175 | | Lecture 18 | 12/06/2023 | Memory Management: Paging | [slides: PDF] |
176 | | Lecture 19 | 12/07/2023 | Memory Management: Advanced Paging | [slides: PDF] |
177 | | Lectures 20-21 | 12/13/2023-12/14/2023 | Virtual Memory (Part I) | [slides: PDF] |
178 | | Lecture 22 | 12/20/2023 | Virtual Memory (Part II) | [slides: PDF] |
179 | | Lecture 23 | 12/20/2023 | Mass Storage | [slides: PDF] |
180 | | Lecture 24 | 12/21/2023 | Disk Scheduling | [slides: PDF] |
181 |
--------------------------------------------------------------------------------
/oldest/2024-25.md:
--------------------------------------------------------------------------------
1 | # Systems and Networking - Unit I - 2024-25
2 |
3 | [News](#News) | [General Information](#General-Information) | [Syllabus](#Syllabus) | [Class Schedules](#Class-Schedules) | [Previous Years](#Previous-Years)
4 |
5 | ## News
6 | - **Written Exam Extra Session (10/29/2025) - Grades**
7 | The results of the test are available at the following link.
8 | - **Written Exam Extra Session (10/29/2025)**
9 | The written extra session is scheduled for **Wednesday, October 29, 2025, at ~10:00~ 9:30 a.m.** and will take place in **Laboratorio Colossus**, located in Via Salaria, 113 ([map](https://maps.app.goo.gl/rsyaLFf7boJZDawDA)). ~However, notice that the time schedule above is **_tentative_**, and slight changes might occur if needed.~
10 | I remind you that **only eligible students who submit their request within the deadlines set by the academic office will be allowed to register for this exam**. For organizational reasons, **no exceptions will be made**.
11 | Registrations to this extra exam session are now open via Google Form at the following link. You'll need to log in to your institutional Google account to access the form. Just so you know, this poll closes on **Sunday, October 26, 2025, at 11:59 p.m. CET**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, **_please update your answer on the form accordingly_**, as this will significantly help me with the organization of the test.
12 | - **Written Exam Session V (09/09/2025) - Grades**
13 | The results of the test are available at the following link.
14 | - **Written Exam Session V (09/09/2025)**
15 | Registrations to the fifth written exam session are now open via Google Form at the following link. You'll need to log in to your institutional Google account so you can access the form. Just so you know, this poll closes on **Friday, September 5, 2025, at 11:59 p.m. CEST**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, **_please update your answer on the form accordingly_**, as this will significantly help me with the organization of the test.
16 | As a reminder, this exam session is scheduled for **Tuesday, September 9, 2025, at 2:30 p.m.** in **Aula Informatica 15**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). ~Depending on the number of participants, the exam might be split into two consecutive rounds. More accurate details on the exact schedule will be communicated close to the exam date.~
17 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill out this form! Besides, everyone can decide to opt in by the closing date of this poll._
18 | - **Oral Exam Session IV**
19 | The oral exam will take place on **Monday, July 7, at 11:00 a.m. CEST**. Please refer to the instructions sent via the Moodle forum for more information.
20 | - **Written Exam Session IV (07/03/2025) - Grades**
21 | The results of the test are available at the following link.
22 | - **Written Exam Session IV (07/03/2025)**
23 | Registrations to the fourth written exam session are now open via Google Form at the following link. You'll need to log in to your institutional Google account so you can access the form. Just so you know, this poll closes on **Monday, June 30, 2025, at 11:59 p.m. CEST**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, **_please update your answer on the form accordingly_**, as this will significantly help me with the organization of the test.
24 | As a reminder, this exam session is scheduled for **Thursday, July 3, 2025, at 3:30 p.m.** in **Aula Informatica 15**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). ~Depending on the number of participants, the exam might be split into two consecutive rounds. More accurate details on the exact schedule will be communicated close to the exam date.~
25 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill out this form! Besides, everyone can decide to opt in by the closing date of this poll._
26 | - **Oral Exam Session III**
27 | The oral exam will take place on **Monday, June 9, at 2:30 p.m. CEST**. Please refer to the instructions sent via the Moodle forum for more information.
28 | - **Written Exam Session III (06/04/2025) - Grades**
29 | The results of the test are available at the following link.
30 | - **Written Exam Session III (06/04/2025)**
31 | Registrations to the third written exam session are now open via Google Form at the following link. You'll need to log in to your institutional Google account so you can access the form. Just so you know, this poll closes on **Saturday, May 31, 2025, at 11:59 p.m. CEST**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, **_please update your answer on the form accordingly_**, as this will significantly help me with the organization of the test.
32 | As a reminder, this exam session is scheduled for **Wednesday, June 4, 2025, at 3:45 p.m.** in **Aula Informatica 15**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). ~Depending on the number of participants, the exam might be split into two consecutive rounds. More accurate details on the exact schedule will be communicated close to the exam date.~
33 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill out this form! Besides, everyone can decide to opt in by the closing date of this poll._
34 | - **Oral Exam Extra Session**
35 | The oral exam will take place on **Monday, March 31, at 4:00 p.m. CEST**. Please refer to the instructions sent via the Moodle forum for more information.
36 | - **Written Exam Extra Session (03/27/2025) - Grades**
37 | The results of the test are available at the following link.
38 | - **Written Exam Extra Session (03/27/2025)**
39 | The written extra session is scheduled for **Thursday, March 27, 2025, at 10:00 a.m.** and will take place in **Laboratorio Colossus**, located in Via Salaria, 113 ([map](https://maps.app.goo.gl/rsyaLFf7boJZDawDA)). However, notice that the time schedule above is **_tentative_**, and slight changes might occur if needed.
40 | I remind you that **only eligible students who submit their request within the deadlines set by the academic office will be allowed to register for this exam**. For organizational reasons, **no exceptions will be made**.
41 | Registrations to this extra exam session are now open via Google Form at the following link. You'll need to log in to your institutional Google account to access the form. Just so you know, this poll closes on **Sunday, March 23, 2025, at 11:59 p.m. CET**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, **_please update your answer on the form accordingly_**, as this will significantly help me with the organization of the test.
42 | - **Oral Exam Session II**
43 | The oral exam will take place on a two-day session: **Monday, February 17, at 9:30 a.m. CET** and **Wednesday, February 19, at 9:30 a.m. CET**. Please refer to the instructions sent via the Moodle forum for more information.
44 | - **Written Exam Session II (02/11/2025) - Grades**
45 | The results of the test are available at the following link.
46 | - **Written Exam Session II (02/11/2025)**
47 | Registrations to the second written exam session are now open via Google Form at the following link. You'll need to log in to your institutional Google account to access the form. Just so you know, this poll closes on **Friday, February 7, 2025, at 11:59 p.m. CET**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, **_please update your answer on the form accordingly_**, as this will significantly help me with the organization of the test.
48 | This exam session is scheduled for **Tuesday, February 11, 2025** in **Aula Informatica 15**, on **two distinct rounds**: the first one will take place **from 2:00 p.m. to 2:45 p.m. CET**, while the second one is **from 3:00 p.m. to 3:45 p.m. CET**. Both rounds will be held in **Aula Informatica 15**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). Please note that the time schedule above is **_tentative_**, and slight changes might occur if needed.
49 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill out this form! Besides, everyone can decide to opt in by the closing date of this poll._
50 | - **Oral Exam Session I**
51 | The oral exam will take place on a two-day session: **Tuesday, January 28, at 9:00 a.m. CET** and **Thursday, January 30, at 9:00 a.m. CET**. Please refer to the instructions sent via the Moodle forum for more information.
52 | - **Written Exam Session I (01/23/2025) - Grades**
53 | The results of the test are available at the following link.
54 | - **Written Exam Session I (01/23/2025)**
55 | Registrations to the first written exam session are now open via Google Form at the following link. You'll need to log in to your institutional Google account to access the form. Just so you know, this poll closes on **Sunday, January 19, 2025, at 11:59 p.m. CET**; only students who manifest their willingness to participate by that time will be allowed to attend the exam. If you change your mind and don't want to participate in this exam session anymore, **_please update your answer on the form accordingly_**, as this will significantly help me with the organization of the test.
56 | This exam session is scheduled for **Thursday, January 23, 2025**, on **two distinct rounds**: the first one will take place **from 1:30 p.m. to 2:15 p.m. CET**, while the second one is **from 2:30 p.m. to 3:15 p.m. CET**. Both rounds will be held in **Aula Informatica 15**, located in Via Tiburtina, 205 ([map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)). Please note that the time schedule above is **_tentative_**, and slight changes might occur if needed.
57 | **NOTE:** _Students who are sure they will not attend this exam session **should not** fill out this form! Besides, everyone can decide to opt in by the closing date of this poll._
58 | - **IMPORTANT ANNOUNCEMENT:** Those who did not complete the OPIS questionnaires in class are strongly encouraged to do so as soon as possible, using the following code: **GXY5HX0R**.
59 | - **IMPORTANT ANNOUNCEMENT:** The class scheduled for **Tuesday, November 26, 2024**, will finally take place in **Room 4**, located at Via De Lollis (the actual entrance is located at Via Tiburtina, 205 [[map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)]). For additional information, please take a look at the updated class schedule available [here](https://docs.google.com/spreadsheets/d/e/2PACX-1vSZOo9l-8p4dZZzSSjE3S3jV2nEawAlF_fDx4U36ps06ebJseGYnFrTClKs2hLLDuLMzblqm7mLryg1/pubhtml?gid=641890795&single=true&urp=gmail_link).
60 | - **IMPORTANT ANNOUNCEMENT:** The class scheduled for **Tuesday, November 19, 2024**, will exceptionally take place in **Room 101**, located in Building "D" at Viale Regina Elena, 295 ([map](https://maps.app.goo.gl/wdRtn9U5srXhzhAL6)). For additional information, please take a look at the updated class schedule available [here](https://docs.google.com/spreadsheets/d/e/2PACX-1vSZOo9l-8p4dZZzSSjE3S3jV2nEawAlF_fDx4U36ps06ebJseGYnFrTClKs2hLLDuLMzblqm7mLryg1/pubhtml?gid=557113853&single=true&urp=gmail_link).
61 | - **IMPORTANT ANNOUNCEMENT:** The class scheduled for **Tuesday, November 12, 2024**, will exceptionally take place in **Room 101**, located in Building "D" at Viale Regina Elena, 295 ([map](https://maps.app.goo.gl/wdRtn9U5srXhzhAL6)). For additional information, please take a look at the updated class schedule available [here](https://docs.google.com/spreadsheets/d/e/2PACX-1vSZOo9l-8p4dZZzSSjE3S3jV2nEawAlF_fDx4U36ps06ebJseGYnFrTClKs2hLLDuLMzblqm7mLryg1/pubhtml?gid=1151745624&single=true&urp=gmail_link).
62 | - **IMPORTANT ANNOUNCEMENT:** The classes scheduled for **Tuesday, November 5, 2024** and **Wednesday, November 6, 2024** have been canceled due to health issues.
63 | - **IMPORTANT ANNOUNCEMENT:** The class scheduled for **Tuesday, October 29, 2024**, will exceptionally take place in **Room A2 "Luigi Capozzi"**, located in Via Caserta, 6 ([map](https://maps.app.goo.gl/LJKWniPbsoiKST9i7)). For additional information, please take a look at the updated class schedule available [here](https://docs.google.com/spreadsheets/d/e/2PACX-1vSZOo9l-8p4dZZzSSjE3S3jV2nEawAlF_fDx4U36ps06ebJseGYnFrTClKs2hLLDuLMzblqm7mLryg1/pubhtml?gid=1756491652&single=true&urp=gmail_link). In addition, as already announced, **there will be _no_ class on Wednesday, October 30**.
64 | - **IMPORTANT ANNOUNCEMENT:** The class scheduled for **Tuesday, October 22, 2024**, will exceptionally take place in **Room A2 "Luigi Capozzi"**, located in Via Caserta, 6 ([map](https://maps.app.goo.gl/LJKWniPbsoiKST9i7)). For additional information, please take a look at the updated class schedule available [here](https://docs.google.com/spreadsheets/d/e/2PACX-1vSZOo9l-8p4dZZzSSjE3S3jV2nEawAlF_fDx4U36ps06ebJseGYnFrTClKs2hLLDuLMzblqm7mLryg1/pubhtml?gid=2076434169&single=true&urp=gmail_link).
65 | - **IMPORTANT ANNOUNCEMENT:** The class scheduled for **Tuesday, October 15, 2024**, will exceptionally take place in **Room 101**, located in Building "D" at Viale Regina Elena, 295 ([map](https://maps.app.goo.gl/wdRtn9U5srXhzhAL6)). For additional information, please take a look at the updated class schedule available [here](https://docs.google.com/spreadsheets/d/e/2PACX-1vSZOo9l-8p4dZZzSSjE3S3jV2nEawAlF_fDx4U36ps06ebJseGYnFrTClKs2hLLDuLMzblqm7mLryg1/pubhtml?gid=1093460107&single=true&urp=gmail_link).
66 | - **IMPORTANT ANNOUNCEMENT:** The class scheduled for **Tuesday, October 8, 2024**, will exceptionally take place in **Room 101**, located in Building "D" at Viale Regina Elena, 295 ([map](https://maps.app.goo.gl/wdRtn9U5srXhzhAL6)). For additional information, please take a look at the updated class schedule available [here](https://drive.google.com/file/d/1-10DLoZg4rfd-Ek7kJsL7uNA9t3j65bq/view).
67 | - **IMPORTANT ANNOUNCEMENT:** The lecture scheduled for today, **Wednesday, October 2, from 4:00 p.m. to 7:00 p.m.** has been officially **canceled**.
68 | - **IMPORTANT ANNOUNCEMENT:** The **two lectures** scheduled for **Tuesday, October 1, from 5:00 p.m. to 7:00 p.m.** and **Wednesday, October 2, from 4:00 p.m. to 7:00 p.m.** will be **both** held remotely via Zoom. For more information, please take a look at the message sent on the Moodle forum.
69 | - **NOTICE:** The very first class, scheduled for today, Tuesday, September 24, 2024, **has been canceled**.
70 | - ~**NOTICE:** The very first class, scheduled for Tuesday, September 24, 2024, will exceptionally take place in **Room A "Pietro Benedetti"**. For additional information, please take a look at the first-week class schedule available [here](https://drive.google.com/file/d/1QODiZffviVD7sYEAIrCu0CUFOKmlMBTK/view).~
71 | - All the students that are willing to attend this class **must subscribe ASAP** to the Moodle web page of the course, as indicated [below](#Moodle-Web-Page).
72 | - Classes will start on **Tuesday, September 24 2024**. Students are kindly asked to refer to the class schedule at the following [link](https://drive.google.com/file/d/12Y7wLp7DojoBtLqm7fA3TE4R9x4w-J_9/view).
73 |
74 | ## General Information
75 |
76 | Welcome to the System and Networking - Unit I class!
77 |
78 | This is a second-year, first-semester course of the [BSc in Applied Computer Science and Artificial Intelligence of Sapienza University of Rome](https://acsai.di.uniroma1.it/).
79 |
80 | This repository contains class material along with any useful information for the 2024-25 academic year.
81 |
82 | ### Class Schedule
83 | ~- **Tuesday** from **5:00 p.m.** to **7:00 p.m.** (Room 3 - Via De Lollis using the entrance located at Via Tiburtina, 205 [[map](https://goo.gl/maps/TgnJCWDfx2VQRo4u5)])~
84 | - **Wednesday** from **4:00 p.m.** to **7:00 p.m.** (Room 11 - Via Scarpa, 14 [[map](https://maps.app.goo.gl/kzwU5jQY5PDxiRK99)])
85 |
86 | ### Moodle Web Page
87 | Students must subscribe to the Moodle web page using the same credentials (username/password) to access the Wi-Fi network and Infostud services at the following link: https://elearning.uniroma1.it/course/view.php?id=18520
88 |
89 | ### Office Hours
90 | Please drop me a message to tolomei@di.uniroma1.it if you would like to arrange an in-person meeting or schedule a remote call either Google Meet or Zoom. To issue your request, kindly specify "_SN-I 2024-25: Meeting_" in the subject of your message.
91 | In-person meetings will be held in my office, which is located in Room 106 on the 1st floor of Building E in Viale Regina Elena 295 ([map](https://goo.gl/maps/5dSuQbvaeqXePV9y6)).
92 |
93 | ### Contacts
94 | - Email: tolomei@di.uniroma1.it
95 | - Website: https://www.di.uniroma1.it/~tolomei
96 | - Sapienza's Wall: https://corsidilaurea.uniroma1.it/it/users/gabrieletolomeiuniroma1it
97 | - Office: Room 106 at the 1st floor of Building E in Viale Regina Elena, 295 ([map](https://goo.gl/maps/5dSuQbvaeqXePV9y6)).
98 |
99 | ### Description and Goals
100 | The _Operating System_ (OS) is the key component of any modern computing device. Moreover, it very well represents a fundamental concept at the heart of any Computer Science curriculum, namely _abstraction_.
101 |
102 | More specifically, by virtualizing the physical resources of a computer system, OS allows programmers to develop software applications without worrying about the nitty-gritty of the hardware. Decoupling the software from the hardware guarantees more flexibility for the system developer as well as greater usability for the end user.
103 | It is therefore essential for any Computer Science student to have the ability to comprehend how to effectively and efficiently design and exploit the main functionalities of a highly complex software system, such as a modern operating system.
104 |
105 | To this end, we will deeply discuss the key responsibilities of so-called general-purpose OSs (i.e., those typically installed on our PCs and laptops). Amongst those responsibilities are: CPU scheduling, process/thread synchronization, memory management, and file systems, just to name a few. In addition, we will explore how OSs should adapt to resource-limited mobile devices (i.e., tablets and smartphones).
106 |
107 | All the concepts introduced are totally covered by the lecture materials provided during the course and will be treated independently from a specific operating system implementation. However, many examples will be taken from popular OSs available on the market like UNIX/Linux, Windows, macOS, Android, iOS, etc.
108 |
109 | ### Prerequisites
110 | - Fundamentals of computer architectures
111 | - Basics of computer programming
112 |
113 | ### Exams
114 | Written and oral exam.
115 | The written exam consists of a Moodle quiz containing **20 multiple-answer questions**. Each correct answer accounts for 3 points, each wrong answer subtracts 1 point, whilst no answer gives no points. The quiz is successfully passed if the overall score is **greater than or equal to 15/30**. Those who obtain a score ranging between 15/30 and 17/30 must take a mandatory oral exam; instead, those who passed the quiz with a score of 18/30 or higher can decide to accept this as their final score or to take an additional oral exam.
116 |
117 | ### Recommended Textbooks
118 | Despite they are **not** mandatory to pass the exam successfully, the following textbooks are really useful to anyone who wants to dig deeper into the subjects addressed in this course:
119 | - _Operating System Concepts_ [Silberschatz _et al._];
120 | - _Modern Operating Systems_ [Tanenbaum _et al._];
121 | - _Operating Systems: Three Easy Pieces_ [Remzi] (freely available online).
122 |
123 |
124 |
125 | ## Syllabus
126 | **Part I: Introduction**
127 | - Basic concepts
128 | - History of operating systems
129 | - Relationship between operating systems and hardware
130 | - Operating systems structures
131 |
132 | **Part II: Process Management**
133 | - Processes
134 | - CPU Scheduling
135 | - Threads
136 |
137 | **Part III: Process Synchronization**
138 | - Synchronization Tools
139 | - Synchronization Examples
140 | - Deadlock
141 |
142 | **Part IV: Memory Management**
143 | - Main memory (RAM)
144 | - Virtual memory
145 |
146 | **Part V: Storage Management**
147 | - Mass storage devices
148 | - I/O systems
149 |
150 | **Part VI: File System**
151 | - File system interface
152 | - File system implementation
153 | - File system internals
154 |
155 | **Part VII: Advanced Topics**
156 | - Protection
157 | - Security
158 | - Distributed operating systems
159 | - Mobile operating systems
160 |
161 |
162 |
163 | ## Class Schedules
164 |
165 | | Lecture \# | Date | Topic | Material |
166 | |------------|------|-----------------------------------------------|----------------|
167 | | Lecture 1 | 09/25/2024 | Introduction and Basic Concepts | [slides: PDF] |
168 | | Lecture 2 | 10/01/2024 | Computer Architecture and OS Structures | [slides: PDF]|
169 | | Lecture 3 | 10/08/2024 | Process Virtual Address Space and PCB | [slides: PDF]|
170 | | Lecture 4 | 10/09/2024 | Basics of OS Process Management | [slides: PDF] [code]|
171 | | Lecture 5 | 10/15/2024 | CPU Scheduling (Part I) | [slides: PDF]|
172 | | Lecture 6 | 10/16/2024 | CPU Scheduling (Part II) | [slides: PDF]|
173 | | Lecture 7 | 10/22/2024 | Threads | [slides: PDF]|
174 | | Lecture 8 | 10/23/2024 | Thread Implementation | [slides: PDF] [code]|
175 | | Lecture 9 | 10/29/2024 | Process/Thread Synchronization | [slides: PDF]|
176 | | Lecture 10 | 11/12/2024 | Synchronization Implementation (Part I) | [slides: PDF]|
177 | | Lecture 11 | 11/13/2024 | Synchronization Implementation (Part II) | [slides: PDF] [code]|
178 | | Lecture 12 | 11/19/2024 | Deadlock | [slides: PDF]|
179 | | Lecture 13 | 11/20/2024 | Exercises | [PDF] |
180 | | Lecture 14 | 11/26/2024 | Memory Management: Binding and Relocation | [slides: PDF] |
181 | | Lecture 15 | 11/27/2024 | Memory Management: Contiguous Allocation | [slides: PDF] |
182 | | Lecture 16 | 12/03/2024 | Memory Management: Paging | [slides: PDF] |
183 | | Lecture 17 | 12/04/2024 | Memory Management: Advanced Paging | [slides: PDF] |
184 | | Lecture 18 | 12/10/2024 | Virtual Memory (Part I) | [slides: PDF] |
185 | | Lecture 19 | 12/11/2024 | Virtual Memory (Part II) | [slides: PDF] |
186 | | Lecture 20 | 12/17/2024 | Mass Storage | [slides: PDF] |
187 | | Lecture 21 | 12/18/2024 | Disk Scheduling | [slides: PDF] |
188 | | Lecture 22 | 12/18/2024 | Exercises | [PDF] |
189 |
--------------------------------------------------------------------------------