Welcome to the Moodle's page of Systems and Networking - Unit I 2021-22!


Class Schedule

  • Wednesday from 11:00AM to 1:00PM
  • Thursday from 8:00AM to 11:00AM


How to Attend Classes

According to the guidelines provided by Sapienza University to contrast the COVID-19 pandemic, the course will be held both in presence and remotely. For any further information, students must refer to the official documentation available on the Sapienza website.


  • Attending Classes in Person: Room 2L - Via del Castro Laurenziano 7a
Students who are willing to attend classes in presence must issue their request through the Prodigit Sapienza online booking system, according to the rules established (please, see here).

  • Attending Classes Remotely: Zoom

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


Course website: Click here


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, 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. 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 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:

  • Operating System Concepts [Silberschatz et al.];
  • Modern Operating Systems [Tanenbaum et al.];
  • Operating Systems: Three Easy Pieces [Remzi] (freely available online).