Sistemi operativi e reti

Docente: Danilo Croce

Comunicazioni

Risultati esame prova scritta appello 2 A.A. 2022/2023

06-07-2023 18:13

Testo della prova scritta 

Risultati della prova scritta dell'appello 2 del 5/07/2023 -  A.A. 2022/2023

 

La prova orale del'appello 2  di Sistemi operativi e reti si svolgerà venerdì 7 luglio 2023 alle ore 10:00 in aula T7.

Sosterranno la prova orale gli studenti che hanno conseguito una votazione di almeno 18/30. 

Gli studenti che non hanno superato la prova scritta possono visionare i propri compiti e chiedere spiegazioni durante lo svolgimento della prova orale.


Risultati esame prova scritta appello 1 A.A. 2022/2023

06-07-2023 18:08

Testo della prova scritta 

Risultati della prova scritta dell'appello 1 del 21/06/2023 -  A.A. 2022/2023

 

La prova orale del'appello 1  di Sistemi operativi e reti si svolgerà venerdì 23 giugno 2023 alle ore 10:00 in aula 3PP2.

Sosterranno la prova orale gli studenti che hanno conseguito una votazione di almeno 18/30. 

Gli studenti che non hanno superato la prova scritta possono visionare i propri compiti e chiedere spiegazioni durante lo svolgimento della prova orale.


Risultati esame prova scritta appello 6 A.A. 2021/2022

16-02-2023 12:38

Testo della prova scritta 

Risultati della prova scritta dell'appello 6 del 14/02/2023 -  A.A. 2021/2022

 

La prova orale del'appello 6  di Sistemi operativi e reti si svolgerà venerdì 17 febbraio 2023 alle ore 10:00 in aula 13.

Sosterranno la prova orale gli studenti che hanno conseguito una votazione di almeno 18/30. 

Gli studenti che non hanno superato la prova scritta possono visionare i propri compiti e chiedere spiegazioni durante lo svolgimento della prova orale.


Risultati esame prova scritta appello 5 A.A. 2021/2022

26-01-2023 10:57

Testo della prova scritta 

Risultati della prova scritta dell'appello 5 del 24/01/2023 -  A.A. 2021/2022

 

La prova orale del'appello 5  di Sistemi operativi e reti si svolgerà venerdì 27 gennaio 2023 alle ore 10:00 in aula 13.

Sosterranno la prova orale gli studenti che hanno conseguito una votazione di almeno 18/30. 

Gli studenti che non hanno superato la prova scritta possono visionare i propri compiti e chiedere spiegazioni durante lo svolgimento della prova orale.


Lezioni

4808-06-2023

Reti wireless. Collegamenti wireless e caratteristiche di rete. Wi-Fi 802.11. Canali e associazioni.  Scansione attiva e passiva. Il protocollo CSMA/CA. Host nascosti: RTS e CTS. Frame IEEE 802.11. Utilizzo di IEEE 802.11 per collegamenti punto-punto. Esempio di progettazione LAN.

4706-06-2023

Ethernet. Struttura del frame Ethernet. CSMA/CD di Ethernet. Efficienza di Ethernet. Tecnologie Ethernet. Hub. Switch dello strato di collegamento. Confronto tra switch e router. Lan virtuali (VLAN).

4601-06-2023

Protocolli di accesso multiplo. Protocolli a suddivisione di canale. Protocolli di accesso casuale. CSMA e CSMA/CD. Protocolli a turno. Reti LAN. Indirizzi LAN. ARP. Invio di datagram a nodi interni alla LAN. Invio di datagram a nodi esterni alla LAN.

4530-05-2023

Lo strato di collegamento. Servizi offerti dallo strato di collegamento. Adattatori (schede di rete). Tecniche di rilevazione e correzione degli errori. Controllo di parità. Controllo di parità a due dimensioni. Somma di controllo. Controllo a ridondanza ciclica. Esempio di calcolo CRC.

4425-05-2023

Esempi di uso del BGP nelle reti stub e nelle reti stub multi homed. I-BGP. Instradamento multicast. Gruppi multicasta. IGMP. Algoritmi di instradamento multicast (solo conclusioni). Esempio di applicazione multicast in Java.

4323-05-2023

Instradamento in Internet. Instradamento intra-sistema. RIP. OSPF. Instradamento inter-sistema. BGP. Reti stub e reti stub multi homed. Funzionamento del BGP. I messaggi BGP.

4218-05-2023

IPv6. Formato del datagram IPv6. Passaggio da IPv4 a IPv6. Metodo dual-stack. Metodo del tunneling. ICMP. ICMP per IPv6. Algoritmi di instradamento. Algoritmi di instradamento LS. Algoritmi di instradamento DV. Confronto tra LS e DV.

4116-05-2023

Indirizzamento per classe. Indirizzamento CIDR. Assegnazione di indirizzi IP. Configurazione delle interfacce di rete di host e router. DHCP. Traduzione degli indirizzi di rete (NAT). UPnP (Universal Plug and Play).

4011-05-2023

Livello di rete. Reti a circuito virtuale. Reti datagram. Il protocollo IP. Formato dei datagram IPv4. Frammentazione del datagram IPv4. Indirizzamento IPv4.

3909-05-2023

Trasferimento affidabile dei dati. Alcuni tipici scenari. Raddoppio dell'intervallo di timeout. Ritrasmissione rapida. Controllo del flusso. Controllo della congestione TCP. AIMD. Partenza lenta. Reazione a eventi di timeout. Prevenzione della congestione. Calcolo semplificato del throughput TCP.

3804-05-2023

Trasporto orientato alla connessione: TCP. Struttura del segmento TCP. Numeri di sequenza e numeri di riscontro.  Esempio di numeri di sequenza e di riscontro. Stima del tempo di andata e ritorno (RTT) e timeout. Calcolo del timeout per le ritrasmissioni. Instaurazione della connessione TCP.

3702-05-2023

Programmazione delle socket con UDP. Esempio di applicazione C/S con UDP. Lo strato di trasporto. Multiplexing e demultiplexing nell'UDP e nel TCP. ll protocollo UDP. Struttura del segmento UDP. Checksum di UDP.

3627-04-2023

Confronto tra le architetture C/S e P2P. Programmazione delle socket. Programmazione delle socket con TCP. Esempio di applicazione C/S TCP in Java.

3513-04-2023

Video Internet. Streaming HTTP e DASH. Applicazioni P2P. P2P con database centralizzato e distruito. Inondazione di richieste. Tabelle hash distribuite (DHT). DHT circolare. BitTorrent (sola lettura).

3411-04-2023

Record DNS. Messaggi DNS. Distribuzione di contenuti. Server proxy. Esempio d'uso di server proxy. Reti per la distribuzione di contenuti (CDN).

3306-04-2023

Protocolli di accesso alla posta. POP3. IMAP. Posta elettronica con HTTP. DNS. Servizi forniti dal DNS. Funzionamento del DNS. DNS: database distribuiti e gerarchici. Cache DNS.

3204-04-2023

Il protocollo FTP. Modalità attiva e passiva. Comandi FTP. Posta elettronica. SMTP. Formati dei messaggi di posta e MIME. Estensioni MIME per dati non ascii. Esempi di messaggi con intestazioni MIMe. Esempi di messaggi multipart/mixed. Il messaggio ricevuto.

3130-03-2023

Get condizionale. Interazione utente-server: autorizzazione e cookie. Connessione non persistente e persistente. Connessioni non persistenti in parallelismo  e in serie. Connessione persistente senza parallelismo e con parallelismo.

3028-03-2023

Applicazioni di rete. Web. Il protocollo HTTP. Formato del messaggio di richiesta HTTP. Formato del messaggio di risposta HTTP.

2923-03-2023

I Livelli di Internet e i servizi che forniscono. Livello di applicazione. Architetture e protocolli dello strato di applicazione Indirizzamento dei processi. Processi di comunicazione nella rete. Servizi formiti dai protocolli di trasporto alle applicazioni. Requisiti di servizio delle applicazioni. Servizi forniti dai protocolli di trasporto.

2816-03-2023

Gli ISP e le reti dorsali di Internet. Ritardi e perdite nelle reti a commutazione di pacchetto. Tipi di ritardo: trasmissione, propagazione, elaborazione, coda. Ritardo totale. Ritardo da host a host. Ritardi e percorsi in Internet. Traceroute e tracert. Perdita di pacchetti. Intensità del traffico. Gli strati di Internet  e i servizi che forniscono. Lo stack protocollare di Internet e il modello ISO OSI.

2714-03-2023

Mezzi trasmissivi. Doppini in rame. Cavi coassiali. Fibre ottiche. Canali radio terrestri. Canali radio satellitari. Accesso alla rete Internet. Accesso residenziale, aziendale e wireless.

2609-03-2023

La sezione interna della rete (nucleo). Commutazione di circuito. Multiplazione (multiplexing) nelle reti a commutazione di circuito. FDM e TDM. Commutazione di pacchetto. Confronto tra commutazione di circuito e commutazione di pacchetto. Frammentazione del messaggio. Reti a commutazione di pacchetto datagram. 

2507-03-2023

Internet. Descrizione dei servizi. Definizione di protocollo di rete. Applicazioni client/server. Servizi senza connessione e orientati alla connessione. 

2412-01-2023

Allocazione dei dispositivi e tecniche di spooling. Livello dipendente dai dispositivi (driver). Controller di un dispositivo. Funzionamento del dispositivo. Comunicazione tra processo e dispositivo. Gestione di un dispositivo mediante controllo di programma. Gestione di un dispositivo mediante interruzione. Descrittore di un dispositivo. La struttura dati del descrittore di dispositivo. Gestione di un dispositivo con DMA. Driver di un dispositivo. Flusso di controllo durante un trasferimento. 

2310-01-2023

Protezione di file e directory. Protezione in Unix. Gestione dell’I/O. Classificazione dei dispositivi. Struttura logica del sottosistema di I/O. Livello indipendente dai dispositivi. Bufferizzazione. Gestione degli errori e delle eccezioni.

2222-12-2022

Organizzazione fisica del file system Unix. Strutture dati del kernel per l’accesso ai file. System call per i file: open, close, read, write, lseek. Esempi di SC dei file. 

2120-12-2022

Il livello organizzazione fisica. Tecniche di allocazione dei file. Allocazione contigua, a lista concatenata, a indice. Il livello dispositivo virtuale. Il file system nei sistemi Unix-like. Struttura logica del file system. 

2015-12-2022

Scheduling del disco. Algoritmi FCFS, SSFT e SCAN. Tecnologia dischi RAID.  Il file system. La struttura logica del file system. File e directory. Gestione della struttura logica del file system. l livello di accesso al file system. Strutture dati e operazioni di accesso ai fileMetodi di accesso. Accesso sequenziale. Accesso diretto. Accesso a indice.

1913-12-2022

Memoria segmentata e paginata. Gestione degli spazi virtuali. Paginazione a più livelli. Algoritmi di sostituzione delle pagine. Algoritmo seconda scelta. Gestione della memoria nei sistemi Unix. Gestione della memoria secondaria. Dischi e SSD. Organizzazione fisica dei dischi. Criteri di ordinamento dei dati su disco e politiche di scheduling. Esempio memorizzazione di dati su disco.

1806-12-2022

Memoria paginata. Memoria virtuale. Segmentazione su richiesta. Paginazione su richiesta. Rimpiazzamento delle pagine.

1701-12-2022

Protezione e condivisione di informazioni con spazio virtuale unico. Partizioni multiple. Memoria segmentata. Memoria paginata.

1629-11-2022

Gestione della memoria. Creazione di un file eseguibile. Organizzazione dello spazio virtuale. Spazio viruale unico (lineare). Rilocazione statica e dinamica. Organizzazione  dello spazio virtuale con modello di memoria segmentato. Memoria partizionata. Partizioni fisse. Partizioni variabili. Tecniche di allocazione mediante free list. Best-fit, First-fit e Worst-fit.

1524-11-2022

Blocco critico (stallo). Rappresentazioni dello stato di allocazione delle risorse. Modelli basati su grafo. Modelli basati su matrici. Esempio di situazione di stallo. Condizioni per lo stallo. Metodi per il trattamento dello stallo. Prevenzione statica. Prevenzione dinamica. Algoritmo del banchiere. Esempio. Rilevamento dei blocchi critici. Esempio di soluzione al problema dei cinque filosofi.

1422-11-2022

Algoritmi di scheduling real-time. Rate Nonotonic. Sheduling nei sistemi multiprocessore. Affinità del processore. Scheduling in UNIX. 

1317-11-2022

Principali algoritmi di scheduling. Shortest job first (SJF). Shortest Next Process First (SNPF). Shortest Remaining Time First (SRTF). Round Robin. Algoritmi di scheduling basati sulle priorità. Algoritmi di scheduling a code multiple. Algoritmi di scheduling real-time. Scheduling in UNIX. Blocco critico (stallo). Rappresentazioni dello stato di allocazione delle risorse. Modelli basati su grafo. Algoritmi di scheduling basati sulle priorità. Algoritmi di scheduling a code multiple.

1215-11-2022

Esempio di sincronizzazione tra thread: soluzione modello produttore-consumatore con variabili condition. Scheduling della CPU. Scheduling a breve, medio e lungo termine. Comportamento dei processi. Parametri di scheduling.

1110-11-2022

Sincronizzazione tra thread in POSIX. Mutex. Semafori. Variabili condition. Esempi.

1008-11-2022

Comunicazione e sincronizzazione tra processi/thread. Soluzione al problema della comunicazione con semafori. Soluzione al problema della comunicazione con buffer di capacità 1 e N. Interazione tra processi. Sincronizzazione con segnali. System call per l'uso dei segnali. Invio di segnali tra processi. Esempi. 

903-11-2022

I thread nello standard POSIX: la libreria pthreads. Creazione di thread. Terminazione di thread. Unione (join) di thread. Struttura di un'applicazione multithread. Esempi di un'applicazione multithread. Sincronizzazione tra processi/thread. Cooperazione e competizione tra processi/thread. Modello a memoria comune. Modello ad ambiente locale. Problema della mutua esclusione. Soluzioni al problema della mutua esclusione. Soluzione della mutua esclusione con strumenti basati su istruzioni tipo TSL. Le funzioni lock() e unlock(). Semafori. Soluzione al problema della mutua esclusione con semafori.

827-10-2022

Comunicazione tra processi con pipe. Esempio d'uso di pipe. Comunicazione con pipe con nome. Esempio d'uso di pipe con nome. Thread. Thread a livello utente. Modello da molti a uno. Thread a livello kernel. Modello da uno a uno. Modello da molti a molti.

725-10-2022

Scambio di messaggi (message passing). Comunicazione diretta e indiretta. Le funzioni send() e receive(). Comunicazione e sincronizzazione con send() e receive(). Code di messaggi. Code di messaggi POSIX. Esempi comunicazione tra processi con code di messaggi POSIX.

620-10-2022

Comunicazione tra processi. Memoria condivisa. Modello produttore-consumatore. Esempio di comunicazioni tra processi non sincronizzati. Memoria condivisa in POSIX.  Esempi applicativi.

518-10-2022

Operazioni sui processi. Creazione e terminazione dei processi.  Creazione dei processi in POSIX. Fork. Esempio Fork. Sostituzione del codice. Famiglia di funzioni exec(). Esempio con execl(). Terminazione di processi. Le funzioni exit(), wait() e waitpid(). Esempi.

413-10-2022

Principali componenti del sistema operativo. Gestione dei processi. Concetto di processo. Stati di un processo. Transizioni di stato di un processo. Descrittore del processo (PCB). Code di processi. Scheduler. Cambio di contesto.

311-10-2022

Operazioni del sistema operativo. Funzionamento dual-mode. Timer. Ambienti di elaborazione. Computing tradizionale e mobile. Sistemi paralleli e distribuiti. Client-server e peer-to-peer. Cloud. Struttura e organizzazione software dei sistemi operativi. Struttura monolitica. Struttura stratificata. Struttura a microkernel. Struttura modulare. Struttura ibrida. 

206-10-2022

Sistemi a singolo processore. Sistemi multiprocessore. Cluster. Struttura del sistema operativo. Sistemi operativi batch multiprogrammati. Sistemi operativi time sharing. Sistemi in tempo reale. Sistemi embedded real-time. Sistemi operativi per personal computer.

104-10-2022

Presentazione del corso. Introduzione sui sistemi operativi. Funzionamento di un computer. Struttura della memoria. Struttura di I/O.


Materiale didattico

Risultati prova scritta appello 2 - A.A. 2022/2023

Testo prova scritta appello 2 - A.A. 2022/2023

Risultati prova scritta appello 1 - A.A. 2022/2023

Testo prova scritta appello 1 - A.A. 2022/2023

Appunti Reti di calcolatori - Lezione 24 (48)

Appunti Reti di calcolatori - Lezione 23 (47)

Appunti Reti di calcolatori - Lezione 22 (46)

Appunti Reti di calcolatori - Lezione 21 (45)

Appunti Reti di calcolatori - Lezione 20 (44)

Appunti Reti di calcolatori - Lezione 19 (43)

Appunti Reti di calcolatori - Lezione 18 (42)

Appunti Reti di calcolatori - Lezione 17 (41)

Appunti Reti di calcolatori - Lezione 16 (40)

Appunti Reti di calcolatori - Lezione 15 (39)

Appunti Reti di calcolatori - Lezione 14 (38)

Appunti Reti di calcolatori - Lezione 13 (37)

Appunti Reti di calcolatori - Lezione 12 (36)

Appunti Reti di calcolatori - Lezione 11 (35)

Appunti Reti di calcolatori - Lezione 10 (34)

Appunti Reti di calcolatori - Lezione 9 (33)

Appunti Reti di calcolatori - Lezione 8 (32)

Appunti Reti di calcolatori - Lezione 7 (31)

Appunti Reti di calcolatori - Lezione 6 (30)

Appunti Reti di calcolatori - Lezione 5 (29)

Appunti Reti di calcolatori - Lezione 4 (28)

Raccolta di esempi di system call. La raccolta contiene esempi di base sull'uso delle chiamate di sistema descritte durante il corso e molte soluzioni di problemi d'esame (programmi multiprocesso e multithread). Versione del 13-01-2021.

Appunti Reti di calcolatori - Lezione 3 (27)

Appunti Reti di calcolatori - Lezione 2 (26)

Appunti Reti di calcolatori - Lezione 1 (25)

Appunti Sistemi operativi - Lezione 24

Appunti Sistemi operativi - Lezione 23

Appunti Sistemi operativi - Lezione 22

Appunti Sistemi operativi - Lezione 21

Appunti Sistemi operativi - Lezione 20

Appunti Sistemi operativi - Lezione 19

Appunti Sistemi operativi - Lezione 18

Appunti Sistemi operativi - Lezione 17

Appunti Sistemi operativi - Lezione 16

Appunti Sistemi operativi - Lezione 15

Appunti Sistemi operativi - Lezione 14

Appunti Sistemi operativi - Lezione 13

Appunti Sistemi operativi - Lezione 12

Appunti Sistemi operativi - Lezione 11

Appunti Sistemi operativi - Lezione 10

Appunti Sistemi operativi - Lezione 9

Appunti Sistemi operativi - Lezione 8

Appunti Sistemi operativi - Lezione 7

Appunti Sistemi operativi - Lezione 6

Appunti Sistemi operativi - Lezione 5

Appunti Sistemi operativi - Lezione 4

Appunti Sistemi operativi - Lezione 3

Appunti Sistemi operativi - Lezione 2

Appunti Sistemi operativi - Lezione 1

Presentazione dell'insegnamento Sistemi operativi e  reti (SOR)

Informazioni

Anno accademico2022-2023
Crediti12
SettoreINF/01
Anno2
Semestre1-2
PropedeuticitàArchitettura dei sistemi di elaborazione. Programmazione dei calcolatori con laboratorio.

Programma

Parte I: Sistemi operativi (I semestre) 

  • Introduzione ai sistemi operativi.
  • Classificazione dei sistemi operativi.
  • Principali modelli strutturali.
  • Gestione dei processi.
  • Thread.
  • Sincronizzazione dei processi.
  • Gestione della memoria.
  • Gestione dell' I/O.
  • Gestione del file system.
  • I sistemi operativi Unix e Linux.
  • Casi di studio: Unix e Linux


Parte II: Reti di calcolatori (II semestre) 

  • Reti di calcolatori e Internet.
  • Strato di applicazione.
  • Strato di trasporto.
  • Strato di rete e instradamento.
  • Strato di collegamento e reti di area locale.
  • Reti wireless

Testi di riferimento

Testi di riferimento 

Sistemi Operativi, X ed., A. Silberschatz, P. Galvin, G. Gagne. Pearson. 
Reti di Calcolatori e Internet, VII ed. - Un approccio top-down - J.F. Kurose, K.W. Ross - Pearson - Addison Wesley. 

Altri libri consigliati 

Sistemi operativi, II ed. - P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari - McGraw-Hill 
I moderni Sistemi Operativi, IV ed., A. S. Tanenbaum. Pearson - Prentice Hall. 
Sistemi operativi, D. M. Dhamdhere, McGraw-Hill. 
Reti di Calcolatori e Internet, B. A. Forouzan, McGraw-Hill.


Ricevimento studenti

Il docente è a disposizione per il "ricevimento studenti" al termine delle lezioni, alle ore 12:45 del martedì e giovedì, o per appuntamento da concordare via email (pietro.frasca@uniroma2.it).


Modalità di esame

Modalità d'esame in presenza

L'esame di Sistemi operativi e reti consiste in una prova scritta e in una prova orale. Il testo della prova scritta è suddiviso in due partm ciascuna delle quali è composta da un gruppo di 3 domande. Le domande della prima parte riguardano argomenti di Sistemi operativi, mentre le domande della seconda parte sono relative ad argomenti di Reti di calcolatori. Le domande sono del tipo a risposta aperta o sottoforma di problemi. Per la parte Sistemi operativi una delle domande consiste nello sviluppo di un breve programma in linguaggio C basato sulle system call POSIX studiate durante il corso. 
La durata dell'esame è di 2 ore. Durante lo svolgimento della prova scritta è vietato l'uso di libri e/o appunti di qualsiasi genere. 

Per sostenere la prova orale è necessario aver superato la prova scritta con una votazione di almeno 18/30. 

Per sostenere l'esame è obbligatorio prenotarsi mediante il servizio "Servizi on Line" all'indirizzo http://delphi.uniroma2.it

 

Appelli d'esame

Sono previsti i seguenti appelli d'esame:

appello 1 sessione estiva (giugno)

appello 2 sessione estiva (giugno/luglio)

appello 3 sessione autunnale (settembre)

appello 4 sessione autunnale (settembre)

appello 5 sessione invernale (gennaio/febbraio)

appello 6 sessione invernale (febbraio)

 

NOTA: gli appelli delle sessioni autunnale e invernale  di Sistemi operativi e reti sono mutualmente esclusivi. Pertanto, uno studente può sostenerne al più uno a sua scelta.

 

Materiale didattico utile per l'esame

Una raccolta di testi di esame relativi agli a.a. passati e vari esempi di programmi sulle system call POSIX e sulla programmazione delle socket saranno disponibili nell'area "materiale didattico".