- Reti e Sistemi Operativi (blended)
- Introduzione
Syllabus del corso
Obiettivi
Alla fine del corso lo studente conoscerà e saprà usare le principali astrazioni e i principali servizi offerti dai moderni sistemi operativi, ed avrà acquisito conoscenze di base relative alle architetture ed alle tecniche implementative dei moderni sistemi operativi. Inoltre, avrà acquisito le conoscenze fondamentali per comprendere l’architettura e i protocolli principali delle reti di telecomunicazioni basate sullo stack TCP/IP.
Contenuti sintetici
Sistemi operativi: struttura e servizi; Processi e thread: i servizi; Gestione della memoria: i servizi; File system: i servizi; Interfaccia e struttura del kernel; Processi e thread: la struttura; Gestione della memoria: La struttura; Introduzione alle Reti e a Internet, Strato di Applicazione, Strato di Trasporto, Strato di Rete - Piano dei Dati, Strato di Rete - Piano di Controllo, Strato di Collegamento e Reti Locali.
Programma esteso
Sistemi operativi
1: Sistemi operativi: struttura e servizi:
- Struttura dei sistemi operativi
- Servizi dei sistemi operativi
2: Processi e thread: i servizi
- Processi e loro gestione
- Comunicazione fra processi
- Thread e programmazione multithreading
3: Gestione della memoria: i servizi
- Spazi di indirizzamento virtuali
- L'API POSIX mmap
4: File system: i servizi
- File e attributi
- Struttura della directory
5: Interfaccia e struttura del kernel
- API e chiamate di sistema
- Struttura del kernel
- Politiche e meccanismi
6: Processi e thread: la struttura
- Multiprogrammazione e multitasking
- Implementazione dei processi
- Implementazione dei thread
- Principali algoritmi di scheduling della CPU (in ordine di arrivo, per brevità, round-robin, con priorità)
- Code multilivello con retroazione
7: Gestione della memoria: la struttura:
- Allocazione contigua
- Paginazione
- Swapping
- Memoria virtuale
- Grado di multiprogrammazione
- Allocazione e sostituzione pagine
- Thrashing
Reti
8: Introduzione alle Reti di Calcolatori e Internet:
- Architettura delle reti
- Definizione di protocollo
- La commutazione di pacchetto
- Architettura a strati e incapsulamento
9: Strato di Applicazione:
- Domain Name System (DNS)
10: Strato di Trasporto:
- Protocollo UDP
- Principi del trasferimento dati affidabile (Stop-and-Wait, Go-Back-N, Selective Repeat)
- Protocollo TCP
11: Strato di Rete - Piano dei Dati:
- Architettura di un Router
- Protocollo IPv4 e Indirizzamento IPv4
- Network Address Translation (NAT)
12: Strato di Rete - Piano di Controllo:
- Algoritmi di Instradamento (Link State, Distance Vector)
- Instradamento Interno ai Sistemi Autonomi (OSPF)
- Instradamento tra Sistemi Autonomi (BGP)
- Internet Control Message Protocol (ICMP)
13: Strato di Collegamento e Reti Locali:
- Servizi offerti
- Protocolli di Accesso Multiplo (Protocolli ad Accesso Casuale, Protocolli a Rotazione)
- Architettura di uno Switch
- Protocollo Ethernet
- Indirizzi a Livello di Collegamento e Address Resolution Protocol (ARP)
Prerequisiti
Conoscenze informatiche acquiste nei corsi di Architettura degli Elaboratori, Programmazione 1 e Programmazione 2
Modalità didattica
Il corso è in blended e-learning. Le lezioni verranno erogate in aula, le esercitazioni verranno erogate in e-learning e saranno comprensive di video-esercitazioni, esercizi, test di autovalutazione e tutoraggio on-line.
La composizione oraria del corso sarà la seguente:
Sistemi operativi
16 ore (2 cfu) di lezione in presenza (didattica erogativa);
20 ore (2 cfu) di esercitazione e supporto agli studenti in remoto asincrone (didattica erogativa e interattiva).
Reti
16 ore (2 cfu) di lezione in presenza (didattica erogativa);
20 ore (2 cfu) di esercitazione e supporto agli studenti in remoto asincrone (didattica erogativa e interattiva).
Il corso verrà erogato in lingua italiana.
Materiale didattico
A. Silberschatz, P. Galvin, G. Gagne, "Sistemi Operativi - concetti ed esempi", 10ma Edizione, Pearson, ISBN: 978-88-9190-455-3.
J. Kurose, K. Ross, "Reti di Calcolatori e Internet", 8va Edizione, Pearson, ISBN: 978-88-9191-600-6.
Slides delle lezioni, esercizi ed altri materiali disponibili on-line.
Periodo di erogazione dell'insegnamento
Secondo anno, primo semestre.
Modalità di verifica del profitto e valutazione
La verifica dell'apprendimento comprende una prova scritta, con la possibilità di prove intermedie parziali (in itinere).
Le prove in itinere sono due e si tengono a metà ed alla fine del corso. È necessario superarle entrambe per passare l'esame. Nel caso in cui una delle due prove in itinere non sia stata superata o non sia stata sostenuta, è possibile recuperarla nella prima sessione d'esame, purchè l'altra prova sia stata positivamente superata. Il superamento di una sola delle due prove in itinere non dà luogo ad alcun bonus per le successive prove d’esame completo.
Le prove comprendono sia domande a risposta chiusa sia domande a risposta aperta, in cui viene chiesta una argomentazione ragionata relativa ad uno degli argomenti del corso.
Gli studenti verranno valutati sul grado di comprensione dei concetti esposti durante il corso, e sulla capacità di applicare un certo insieme di analisi quantitative.
Orario di ricevimento
Prof. Braione: su appuntamento via email.
Prof. Savi: su appuntamento via email.
Aims
The student shall learn what are the main abstractions and services that a modern operating system offers, how to use them, and the basic concepts about the architectures and implementation strategies of modern operating systems. Moreover, the student will acquire knowledge about the fundamental architecture and protocols of TCP/IP telecommunication networks.
Contents
Operating systems: Structure and services; Processes and threads: Services; Memory management: services; File system: services; Interface and structure of the kernel; Processes and threads: Structure; Memory management: Structure; Introduction to Networks and the Internet, Application Layer, Transport Layer, Network Layer - Data Plane, Network Layer - Control Plane, Link Layer and Local Area Networks.
Detailed program
Operating Systems
1: Operating systems: Structure and services:
- Structure of operating systems
- Services offered by operating systems
2: Processes and threads: Services:
- Processes and their management
- Interprocess communication
- Threads and multithreading programming
3: Memory management: Services:
- Virtual address spaces
- The POSIX API mmap
4: File systems: Services:
- Files and attributes
- Directory structures
5: Interface and structure of the kernel:
- API and system calls
- Structure of the kernel
- Politics and mechanisms
6: Processes and threads: Structure:
- Multiprogramming and multitasking
- Implementation of processes
- Implementation of threads
- Main CPU scheduling algorithms (first-come first-served, shortest job first, round-robin, priority)
- Multilevel queues with feedback
7: Memory management: Structure:
- Contiguous allocation
- Paging
- Swapping
- Virtual memory
- Degree of multiprogramming
- Page allocation and substitution
- Thrashing
Networks
8: Introduction to Computer Networks and the Internet:
- Network architecture
- Definition of protocol
- Packet switching
- Layered architecture and encapsulation
9: Application Layer:
- Domain Name System (DNS)
10: Transport Layer:
- UDP protocol
- Principles of reliable data transfer (Stop-and-Wait, Go-Back-N, Selective Repeat)
- TCP protocol
11: Network Layer - Data Plane:
- Router architecture
- IPv4 protocol and IPv4 addressing
- Network Address Translation (NAT)
12: Network Layer - Control Plane:
- Routing algorithms (Link State, Distance Vector)
- Interior Gateway Routing Protocols (OSPF)
- Border Gateway Protocol (BGP)
- Internet Control Message Protocol (ICMP)
13: Link Layer and Local Networks:
- Offered services
- Multiple Access Protocols (Random Access Protocols, Taking-Turns Protocols)
- Switch architecture
- Ethernet protocol
- Link Layer addresing and Address Resolution Protocol (ARP)
Prerequisites
The fundamental concepts taught in the following courses: Computer Architecture, Programming 1 and Programming 2
Teaching form
The course is in blended e-learning. Lectures will be given in classroom, exercitations will be given in e-learning and will encompass videos, exercises, self-assessment tests, and on-line tutoring.
Operating systems
16 hours (2 cfu) of lectures in presence ("didattica erogativa");
20 hours (2 cfu) of exercises and student support in remote ("didattica erogativa" and "didattica interattiva").
Networks
16 hours (2 cfu) of lectures in presence ("didattica erogativa");
20 hours (2 cfu) of exercises and student support in remote ("didattica erogativa" and "didattica interattiva").
The course will be held in Italian.
Textbook and teaching resource
A. Silberschatz, P. Galvin, G. Gagne, "Sistemi Operativi - concetti ed esempi", 10th Edition, Pearson, ISBN: 978-88-9190-455-3 (also available in English, entitled "Operating Systems Concepts", 10th Edition).
J. Kurose, K. Ross, "Reti di Calcolatori e Internet", 8va Edizione, Pearson, ISBN: 978-88-9191-600-6 (also available in English, entitled “Computer Networking: A Top-Down Approach”, 8th Edition).
Slides of lessons, exercises and other material will be available on-line.
Semester
Second year, first semester.
Assessment method
The assessment consists in a written test, with the possibility of partial intermediate tests (in itinere).
There are two in itinere tests and are held in the middle and at the end of the course. It is necessary to pass both of them to pass the exam. In the event that one of the two in itinere tests has not been passed or has not been sustained, it is possible to recover it in the first exam session, provided that the other test has been positively passed. Passing only one of the two in itinere tests does not give rise to any bonus for the subsequent full examination tests.
The tests include both multiple choice questions and open-ended questions, requiring a reasoned argument on one of the course topics.
The students will be assessed on the degree of understanding of the concepts exposed during the course, and on their capacity of applying some kinds of quantitative analyses.
Office hours
Prof. Braione: by appointment via email.
Prof. Savi: by appointment via email.
Scheda del corso
Staff
-
Pietro Braione
-
Marco Savi
-
Jacopo Maltagliati
-
Samuele Redaelli
-
Lorenzo Olearo