News | General Information | Syllabus | Class Schedules | Previous Years
- Written Exam Session I (01/23/2025)
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.
As a reminder, this exam session is scheduled for Thursday, January 23, 2025, from 3:45 p.m. to 4:30 p.m. CET in Aula Informatica 15, located in Via Tiburtina, 205 (map). Please 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 instead of just one. Further details on how to attend this test will be therefore communicated close to the exam's date.
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. - 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.
- 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]). For additional information, please take a look at the updated class schedule available here.
- 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). For additional information, please take a look at the updated class schedule available here.
- 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). For additional information, please take a look at the updated class schedule available here.
- IMPORTANT ANNOUNCEMENT: The classes scheduled for Tuesday, November 5, 2024 and Wednesday, November 6, 2024 have been canceled due to health issues.
- 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). For additional information, please take a look at the updated class schedule available here. In addition, as already announced, there will be no class on Wednesday, October 30.
- 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). For additional information, please take a look at the updated class schedule available here.
- 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). For additional information, please take a look at the updated class schedule available here.
- 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). For additional information, please take a look at the updated class schedule available here.
- IMPORTANT ANNOUNCEMENT: The lecture scheduled for today, Wednesday, October 2, from 4:00 p.m. to 7:00 p.m. has been officially canceled.
- 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.
- NOTICE: The very first class, scheduled for today, Tuesday, September 24, 2024, has been canceled.
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.- All the students that are willing to attend this class must subscribe ASAP to the Moodle web page of the course, as indicated below.
- Classes will start on Tuesday, September 24 2024. Students are kindly asked to refer to the class schedule at the following link.
Welcome to the System and Networking - Unit I class!
This is a second-year, first-semester course of the BSc in Applied Computer Science and Artificial Intelligence of Sapienza University of Rome.
This repository contains class material along with any useful information for the 2024-25 academic year.
- 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])
- Wednesday from 4:00 p.m. to 7:00 p.m. (Room 11 - Via Scarpa, 14 [map])
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
Please drop me a message to [email protected] 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.
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).
- Email: [email protected]
- Website: https://www.di.uniroma1.it/~tolomei
- Sapienza's Wall: https://corsidilaurea.uniroma1.it/it/users/gabrieletolomeiuniroma1it
- Office: Room 106 at the 1st floor of Building E in Viale Regina Elena, 295 (map).
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.
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. 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.
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).
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.
- Fundamentals of computer architectures
- Basics of computer programming
Written and oral exam. 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.
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:
- Operating System Concepts [Silberschatz et al.];
- Modern Operating Systems [Tanenbaum et al.];
- Operating Systems: Three Easy Pieces [Remzi] (freely available online).
Part I: Introduction
- Basic concepts
- History of operating systems
- Relationship between operating systems and hardware
- Operating systems structures
Part II: Process Management
- Processes
- CPU Scheduling
- Threads
Part III: Process Synchronization
- Synchronization Tools
- Synchronization Examples
- Deadlock
Part IV: Memory Management
- Main memory (RAM)
- Virtual memory
Part V: Storage Management
- Mass storage devices
- I/O systems
Part VI: File System
- File system interface
- File system implementation
- File system internals
Part VII: Advanced Topics
- Protection
- Security
- Distributed operating systems
- Mobile operating systems
Lecture # | Date | Topic | Material |
---|---|---|---|
Lecture 1 | 09/25/2024 | Introduction and Basic Concepts | [slides: PDF] |
Lecture 2 | 10/01/2024 | Computer Architecture and OS Structures | [slides: PDF] |
Lecture 3 | 10/08/2024 | Process Virtual Address Space and PCB | [slides: PDF] |
Lecture 4 | 10/09/2024 | Basics of OS Process Management | [slides: PDF] [code] |
Lecture 5 | 10/15/2024 | CPU Scheduling (Part I) | [slides: PDF] |
Lecture 6 | 10/16/2024 | CPU Scheduling (Part II) | [slides: PDF] |
Lecture 7 | 10/22/2024 | Threads | [slides: PDF] |
Lecture 8 | 10/23/2024 | Thread Implementation | [slides: PDF] [code] |
Lecture 9 | 10/29/2024 | Process/Thread Synchronization | [slides: PDF] |
Lecture 10 | 11/12/2024 | Synchronization Implementation (Part I) | [slides: PDF] |
Lecture 11 | 11/13/2024 | Synchronization Implementation (Part II) | [slides: PDF] [code] |
Lecture 12 | 11/19/2024 | Deadlock | [slides: PDF] |
Lecture 13 | 11/20/2024 | Exercises | [PDF] |
Lecture 14 | 11/26/2024 | Memory Management: Binding and Relocation | [slides: PDF] |
Lecture 15 | 11/27/2024 | Memory Management: Contiguous Allocation | [slides: PDF] |
Lecture 16 | 12/03/2024 | Memory Management: Paging | [slides: PDF] |
Lecture 17 | 12/04/2024 | Memory Management: Advanced Paging | [slides: PDF] |
Lecture 18 | 12/10/2024 | Virtual Memory (Part I) | [slides: PDF] |
Lecture 19 | 12/11/2024 | Virtual Memory (Part II) | [slides: PDF] |
Lecture 20 | 12/17/2024 | Mass Storage | [slides: PDF] |
Lecture 21 | 12/18/2024 | Disk Scheduling | [slides: PDF] |
Lecture 22 | 12/18/2024 | Exercises | [PDF] |
In the following, you can quickly navigate through Systems and Networking I class information and material from previous years.
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.