├── 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 | --------------------------------------------------------------------------------