Skip to content

Latest commit

 

History

History
176 lines (149 loc) · 21.7 KB

2023-24.md

File metadata and controls

176 lines (149 loc) · 21.7 KB

Systems and Networking - Unit I - 2023-24

News | General Information | Syllabus | Class Schedules

News

  • Written Exam Extra Session (10/17/2024)
    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.
    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). 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.
    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.
  • Written Exam Session V (09/19/2024) - Grades
    The results of the test are available at the following link.
  • Written Exam Session V (09/19/2024)
    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.
    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).
    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.
  • Oral Exam Session IV
    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.
  • Written Exam Session IV (07/02/2024) - Grades
    The results of the test are available at the following link.
  • Written Exam Session IV (07/02/2024)
    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.
    As a reminder, this exam session is scheduled for Tuesday, July 2, 2024 in Aula Informatica 15, located in Via Tiburtina, 205 (map). 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.
    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.
  • Oral Exam Session III
    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.
  • Written Exam Session III (06/04/2024) - Grades
    The results of the test are available at the following link.
  • Written Exam Session III (06/04/2024)
    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.
    As a reminder, this exam session is scheduled for Tuesday, June 4, 2024 in Aula Informatica 15, located in Via Tiburtina, 205 (map). 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.
    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.
  • Oral Exam Extra Session
    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.
  • Written Exam Extra Session (03/25/2024) - Grades
    The results of the test are available at the following link.
  • Written Exam Extra Session (03/25/2024)
    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.
    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). 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.
    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.
  • Oral Exam Session II
    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.
  • Written Exam Session II (02/13/2024) - Grades
    The results of the test are available at the following link.
  • Written Exam Session II (02/13/2024)
    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.
    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). 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.
    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.
  • Oral Exam Session I
    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.
  • Written Exam Session I (01/23/2024) - Grades
    The results of the test are available at the following link.
  • Written Exam Session I (01/23/2024)
    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.
    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). 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.
    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.
  • Written Exam Dates
    The exam calendar is available at the following link.
    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.
  • 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.
  • 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.
  • 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 Wednesday, October 4 2023. Students are kindly asked to refer to the class schedule at the following link.

General Information

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 2023-24 academic year.

Class Schedule

  • Wednesday from 2:00 p.m. to 5:00 p.m. (Room 1L - Via del Castro Laurenziano, 7 [map])
  • Thursday from 8:00 a.m. to 10:00 a.m. (Room 2L - Via del Castro Laurenziano, 7 [map])

Moodle Web Page

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

Office Hours

Please, drop me a message to [email protected] 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.
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).

Contacts

Description and Goals

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.

Prerequisites

  • Fundamentals of computer architectures
  • Basics of computer programming

Exams

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.

Recommended Textbooks

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).

Syllabus

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

Class Schedules

Lecture # Date Topic Material
Lectures 1-2 10/04/2023-10/05/2023 Introduction and Basic Concepts [slides: PDF]
Lecture 3 10/11/2023 Computer Architecture and OS Structures [slides: PDF]
Lecture 4 10/12/2023 Process Virtual Address Space and PCB [slides: PDF]
Lectures 5-6 10/18/2023-10/19/2023 Basics of OS Process Management [slides: PDF] [code]
Lecture 7 10/25/2023 CPU Scheduling (Part I) [slides: PDF]
Lecture 8 10/26/2023 CPU Scheduling (Part II) [slides: PDF]
Lecture 9 11/02/2023 Threads [slides: PDF]
Lecture 10 11/08/2023 Thread Implementation [slides: PDF] [code]
Lecture 11 11/09/2023 Process/Thread Synchronization [slides: PDF]
Lectures 12-13 11/15/2023-11/16/2023 Synchronization Implementation [slides: PDF] [code]
Lectures 14-15 11/22/2023-11/24/2023 Deadlock [slides: PDF]
Lecture 16 11/29/2023 Memory Management: Binding and Relocation [slides: PDF]
Lecture 17 11/30/2023 Memory Management: Contiguous Allocation [slides: PDF]
Lecture 18 12/06/2023 Memory Management: Paging [slides: PDF]
Lecture 19 12/07/2023 Memory Management: Advanced Paging [slides: PDF]
Lectures 20-21 12/13/2023-12/14/2023 Virtual Memory (Part I) [slides: PDF]
Lecture 22 12/20/2023 Virtual Memory (Part II) [slides: PDF]
Lecture 23 12/20/2023 Mass Storage [slides: PDF]
Lecture 24 12/21/2023 Disk Scheduling [slides: PDF]