Sistemi operativi e reti

Docente: Pietro Frasca

Comunicazioni

Risultati esame prova scritta appello 2 - A.A. 2016/2017

06-07-2017 16:36

Risultati esame prova scritta appello 2 - A.A. 2016/2017

Testo della prova scritta

 

La prova orale dell'esame dell'appello 2 si svolgerà Venerdì 7 Luglio 2017 alle ore 10:00 in aula 3A. Sosterranno l'esame gli studenti che hanno conseguito una votazione di almeno 18/30, nell'ordine indicato nella seguente tabella

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. 2016/2017

15-06-2017 18:34

Risultati esame prova scritta appello 1 - A.A. 2016/2017

Testo della prova scritta

 

La prova orale dell'esame dell'appello 1 si svolgerà Venerdì 16 Giugno 2017 alle ore 10:00 in aula 3A. Sosterranno l'esame gli studenti che hanno conseguito una votazione di almeno 18/30, nell'ordine indicato nella seguente tabella

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


Risultati esonero prova scritta - A.A. 2016/2017

27-02-2017 20:00

Risultati esonero prova scritta - A.A. 2014-2015

 

 La prova orale dell'esonero di Sistemi operativi e reti si svolgerà nei seguenti giorni:

- Lunedì 27  febbraio 2017 alle ore 10:00 in aula 3A;

- Martedì 28 febbraio alle ore 10:00 in aula 7;

- Mercoledì 1 marzo alle ore 10:00 in aula 3A.

 

Gli  studenti che hanno conseguito una votazione di almeno 18/30 sosterranno la prova orale secondo la seguente tabella

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 4 - A.A. 2015/2016

26-02-2017 19:28

Risultati esame prova scritta appello 4 - A.A. 2015/2016

Testo della prova scritta

 

La prova orale dell'esame dell'appello 4 si svolgerà Lunedì 27 Febbraio 2017 alle ore 10:00 in aula 3A. Sosterranno l'esame gli studenti che hanno conseguito una votazione di almeno 18/30. 


Esonero SOR A.A. 2016/2017

01-02-2017 14:07

La prova scritta dell'esonero di Sistemi operativi e reti si svolgerà il 21-02-2017 alle ore 10:00 in aula T5. La prova orale si svolgerà a partire dal 27-02-2017.

Lo studente che intende sostenere l'esonero deve prenotarsi inviando, entro l'16-02-2017, una e-mail all'indirizzo del docente: Pietro.Frasca@uniroma2.it, indicando come oggetto la frase "Esonero SOR A.A. 2016/2017" e indicando nel messaggio soltanto il proprio cognome, nome e numero di matricola nel seguente formato:

 

COGNOME NOME MATRICOLA

 

Nel riguadro "modalità d'esame" sono scritte informazioni dettagliate sullo svolgimento dell'esonero. 


Inizio lezioni Sistemi operativi e reti

02-10-2016 17:47

Le lezioni di Sistemi operativi e reti inizieranno Martedì 11 ottobre alle ore 11.00.


Lezioni

4830-05-2017

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.

4729-05-2017

Switch: autoapprendimento Confronto tra switch e router. Reti wireless. Collegamenti wireless e caratteristiche di rete. 

4626-05-2017

Invio di datagram a nodi esterni alla LAN. Ethernet. Struttura del frame Ethernet. CSMA/CD di Ethernet. Efficienza di Ethernet. Tecnologie Ethernet. Hub. Switch dello strato di collegamento. 

4523-05-2017

Controllo a ridondanza ciclica. Esempio di calcolo CRC. 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.

4419-05-2017

IGMP. Algoritmi di instradamento multicast (solo conclusioni). Esempio di applicazione multicast in Java (facoltativa). 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.

4316-05-2017

OSPF. Instradamento inter-sistema. BGP. Reti stub e reti stub multi homed. Instradamento multicast.

4212-05-2017

Algoritmi di instradamento. Algoritmi di instradamento LS. Algoritmi di instradamento DV. Confronto tra LS e DV. Instradamento gerarchico. Sistemi autonomi. Instradamento in Internet. Instradamento intra-sistema. RIP. 

4109-05-2017

Traduzione degli indirizzi di rete (NAT). UPnP (Universal Plug and Play). ICMP. IPv6. Formato del datagram IPv6. Passaggio da IPv4 a IPv6. Metodo dual-stack. Metodo del tunneling. ICMP. ICMP per IPv6.

4005-05-2017

Indirizzamento IPv4. Indirizzamento per classe. Indirizzamento CIDR. Assegnazione di indirizzi IP. Configurazione delle interfacce di rete di host e router. DHCP.

3902-05-2017

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

3828-04-2017

Controllo del flusso. Controllo della congestione TCP. AIMD. Partenza lenta. Reazione a eventi di timeout. Prevenzione della congestione. Descrizione macroscopica del throughput TCP.

3721-04-2017

Trasferimento affidabile dei dati. Alcuni tipici scenari. Raddoppio dell'intervallo di timeout. Ritrasmissione rapida. Instaurazione della connessione TCP.

3618-04-2017

ll protocollo UDP. Struttura del segmento UDP. Checksum di UDP. 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. 

3511-04-2017

Programmazione delle socket con UDP. Esempio di applicazione C/S con UDP. Lo strato di trasporto. Multiplexing e demultiplexing nell'UDP e nel TCP.

3407-04-2017

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

3304-04-2017

Distribuzione di contenuti. Server proxy. Esempio d'uso di server proxy. Reti per la distribuzione di contenuti (CDN). Applicazioni P2P. P2P con database centralizzato e distruito. Inondazione di richieste.

3231-03-2017

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. Record DNS. Messaggi DNS.

3128-03-2017

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.

3024-03-2017

Formato del messaggio di risposta HTTP. Get condizionato. 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.

2921-03-2017

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. Applicazioni di rete. Web. Il protocollo HTTP. Formato del messaggio di richiesta HTTP.

2817-03-2017

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. Lo stack protocollare di Internet e il modello ISO OSI. Gli strati di Internet  e i servizi che forniscono.

2714-03-2017

Mezzi trasmissivi. Doppini in rame. Cavi coassiali. Fibre ottiche. Canali radio terrestri. Canali radio satellitari. Accesso alla rete Internet. Accesso residenziale, aziendale e wireless. Gli ISP e le reti dorsali di Internet. 

2610-03-2017

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-2017

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

2419-01-2017

System call per i file. Esempio di accesso diretto (random) con lseek. Protezione. Autenticazione degli utenti. I file /etc/passwd e /etc/group. Controllo di accesso alle risorse. ACL in Unix. Gestione degli errori. Breve introduzione alla shell Unix/Linux.

2317-01-2017

Il file system (Unix). Stuttura logica del file system.  La variabile di ambiente PATH. Organizzazione fisica del file system. Strutture dati del kernel per l’accesso ai file. System call per i file. 

2212-01-2017

Esempio d'uso delle variabili condition nell'implementazione del modello produttore-consumatore. Il problema dei cinque filosofi. Gestione della memoria in Unix.

2110-01-2017

Esempio di sincronizzazione con i mutex. I semafori. Le variabili condition. Esempi di sincronizzazione con le variabili condition. 

2022-12-2016

Comunicazione tra processi. Pipe. Esempio d'uso delle pipe. Chiamate di sistema per la sospensione di processi: pause, sleep e uspleep. I thread in Linux e Unix. I thread POSIX: la libreria pthread. Creazione e terminazione dei thread. 

1920-12-2016

Terminazione di processi. Sostituzione del codice. Scheduling in Unix. Interazione tra processi. Sincronizzazione. System call per l'uso di segnali. Invio di segnali tra processi. La funzione alarm. Esempio d'uso di alarm.

1815-12-2016

Allocazione a lista concatenata, a lista con FAT, a indice. Protezione di file e directory. Matrice di protezione. ACL e C-list. Storia di Unix e Linux. Architettura di Unix. Interazione con l'utente. Shell. Processi e thread. Diagramma degli stati. Immagine di un processo Unix. System call per la gestione di processi. Creazione di processi. 

1713-12-2016

Algoritmi di scheduling FCFS, SSTF e SCAN. Dischi raid. Il file system. Struttura logica del file system. Gestione della stuttura logica del file system. Il livello di accesso. Strutture dati e operazioni di accesso ai file. memory mapping. Metodi di accesso: sequenziale, diretto e ad indice. Il livello organizzazione fisica. Tecniche di allocazione dei file. Allocazione contigua.

1606-12-2016

Driver di dispositivo. Flusso di controllo durante un trasferimento tra dispositivo e processo. Gestione del timer. Gestione dei dischi. Criteri di ordinamento dei dati su disco e politiche di scheduling. Esempio di memorizzazione su due tracce contigue e su tracce e settori sparsi. 

1501-12-2016

Gestione degli errori e delle eccezioni. Allocazione dei dispositivi e tecniche di spooling. Livello dipendente dai dispositivi. Controller di un dispositivo. Comunicazione tra processo e dispositivo. Gestione di un dispositivo mediante controllo di programma. Gestione di un dispositivo mediante interrupt. Descrittore di un dispositivo. Gestione di un dispositivo con DMA.

1429-11-2016

Rimpiazzamento delle pagine. Algoritmi di rimpiazzamento delle pagine. Algoritmo second chance. Memoria segmentata e paginata. Gestione degli spazi virtuali. Paginazione a più livelli. Gestione dell'I/O. Classificazione dei dispositivi. Struttura logica del sistema di I/O. Livello indipendente dai dispositivi. Bufferizzazione.

1324-11-2016

Protezione e condivisione con spazio virtuale segmentato. Memoria paginata. Segmentazione su richiesta. Paginazione su richiesta. Gestione del page-fault. Rimpiazzamento delle pagine. 

1222-11-2016

Partizioni variabili. Tecniche di allocazione mediante free-list: best-fit, first-fit, worst-fit. Protezione e condivisione con spazio virtuale unico. 

Tecnica delle partizioni multiple. Segmentazione.

1117-11-2016

Gestione della memoria. Creazione di un file eseguibile. Spazio virtuale unico. Rilocazione statica e dinamica. Spazio virtuale segmentato. Tecniche di gestione della memoria. Memoria partizionata. Partizioni fisse. 

1015-11-2016

Blocco critico (stallo). Rappresentazioni dello stato di allocazione delle risorse. Modelli basati su grafo e modelli basati sulle matrici. Esempi di situazioni di stallo. Stallo con risorse consumabili. Condizioni necessarie per lo stallo. Metodi per il trattamento del blocco cristico. Prevenzione statica e dinamica. Algoritmo del banchiere. Rilevamento dei blocchi critici.

910-11-2016

Semafori. Soluzione al problema della mutua esclusione con semafori. Problema della comunicazione. Soluzione al problema della comunicazione con semafori: produttore-consumatore con buffer di capacità 1. Produttore-consumatore con buffer di capacità N. Sincronizzazione dei processi con scambio di messaggi (message passing). Send e receive. Soluzione al problema della comunicazione tra processi. Comunicazione diretta e indiretta. Sincronizzazione tra processi comunicanti.

808-11-2016

Algoritmi di scheduling basati sulle priorità. Algoritmi di scheduling a code multiple. Algoritmi di scheduling real-time. Algoritmo Rate Monotonic (RM). Sincronizzazione tra processi/thread. Cooperazione e competizione. Modello ad ambiente globale. Modello ad ambiente locale. Problema della mutua esclusione. Soluzioni al problema della mutua esclusione con attesa attiva.

703-11-2016

Scheduling. Scheduling a breve termine, a medio termine e lungo termine. Comportamento dei processi: cpu burst e i/o burst. Parametri di scheduling. Principali algoritmi di scheduling. FCFS. SJF. SRTF. Round robin.

627-10-2016

Creazione e terminazione dei processi. Esempio di creazione di processo in Unix. Interazione tra i processi. Esempio di processi cooperanti: modello produttore-consumatore. Esempio di processi in competizione. Il kernel di un sistema a processi. Trasferimento tra l'ambiente del kernel e l'ambiente dei processi. Chiamate di sistema bloccanti e non bloccanti. Thread. Thread a livello utente e a livello kernel. 

525-10-2016

Gestione dei processi. Definizione di processo. Immagine di un processo. Stati di un processo. Transizioni di stato. Descrittore del processo. Code di processi. Cambio di contesto.

420-10-2016

Struttura e organizzazione software dei sistemi operativi. Struttura monolitica. Struttura stratificata. Struttura a microkernel. Struttura modulare. Struttura ibrida. Principali componenti del sistema operativo.

318-10-2016

Sistemi in tempo reale. Sistemi embedded real-time. Sistemi operativi per personal computer. Operazioni del sistema operativo. Funzionamento dual-mode. Timer. Ambienti di elaborazione. Computing tradizionale emobile. Sistemi paralleli e distribuiti. Client-server e peer-to-peer. Cloud.

213-10-2016

Struttura del sistema operativo. Sistemi operativi batch multiprogrammati. Sistemi operativi time sharing.

111-10-2016

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


Materiale didattico

Date esami prova orale Appello 1 - A.A. 2016/2017

Risultati esame prova scritta appello 2 - A.A. 2016/2017

Testo esame prova scritta appello 2 - A.A. 2016/2017

Date esami prova orale Appello 1 - A.A. 2016/2017

Testo esame prova scritta appello 1 - A.A. 2016/2017

Risultati esame prova scritta appello 1 - A.A. 2016/2017

Appunti Reti di calcolatori - Lezione 24

Appunti Reti di calcolatori - Lezione 23

Appunti Reti di calcolatori - Lezione 22

Appunti Reti di calcolatori - Lezione 21

Appunti Reti di calcolatori - Lezione 20

Appunti Reti di calcolatori - Lezione 19

Appunti Reti di calcolatori - Lezione 18

Appunti Reti di calcolatori - Lezione 17

Appunti Reti di calcolatori - Lezione 16

Appunti Reti di calcolatori - Lezione 15

Appunti Reti di calcolatori - Lezione 14

Appunti Reti di calcolatori - Lezione 13

Appunti Reti di calcolatori - Lezione 12

Appunti Reti di calcolatori - Lezione 11

Appunti Reti di calcolatori - Lezione 10

Appunti Reti di calcolatori - Lezione 9

Appunti Reti di calcolatori - Lezione 8

Appunti Reti di calcolatori - Lezione 7

Appunti Reti di calcolatori - Lezione 6

Appunti Reti di calcolatori - Lezione 5

Appunti Reti di calcolatori - Lezione 4

Appunti Reti di calcolatori - Lezione 3

Appunti Reti di calcolatori - Lezione 2

Appunti Reti di calcolatori - Lezione 1

Date esami prova orale ESONERO - A.A. 2016/2017

Risultati prova scritta ESONERO - A.A. 2016/2017

Testo esame prova scritta appello 4 - A.A. 2015/2016

Risultati esame prova scritta appello 4 - A.A. 2015/2016

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

Raccolta di testi d'esame di Sistemi operativi e reti

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

Informazioni

Anno accademico2016-2017
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, II ed. - P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari - McGraw-Hill 
Reti di Calcolatori e Internet, VI ed. - Un approccio top-down - J.F. Kurose, K.W. Ross - Pearson - Addison Wesley. 

Libri consigliati per approfondimenti 
Sistemi Operativi, IX ed., A. Silberschatz, P. Galvin, G. Gagne. Pearson. 
I moderni Sistemi Operativi, III 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

Stanza docente (0103) - Martedì ore 14.00 - 15.00. 
Per appuntamento via email.


Modalità di esame

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 4-5 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 3 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. Inoltre, lo studente può svolgere una tesina facoltativa consistente nella realizzazione di un'applicazione in java basata sulla programmazione delle socket o di un'applicazione multi-thread scritta in C.
La tesina deve essere consegnata, via e-mail, almeno una settimana prima della data della prova orale. La realizzazione della tesina consente di migliorare la votazione di 1,2 o 3 punti. 
Per sostenere l'esame è obbligatorio prenotarsi mediante il servizio "Servizi on Line" all'indirizzo http://delphi.uniroma2.it
Una raccolta di testi di esame relativi agli a.a. passati e vari esempi di programmi sulle system call POSIX e sulla programmazione dei socket sono disponibili nell'area "materiale didattico".

 

Esonero

Gli studenti possono sostenere, nel solo appello invernale, l'esonero di Sistemi operativi e reti che consiste in una prova scritta e in una prova orale basate sugli argomenti della prima parte del corso (Sistemi operativi).

Lo studente che supera l'esonero deve sostenere la restante parte di SOR entro l'anno accademico corrente.

Lo studente che intende sostenere l'esonero deve prenotarsi inviando una e-mail all'indirizzo del docente: Pietro.Frasca@uniroma2.it, indicando come oggetto la frase "Esonero SOR A.A. 2016/2017" e indicando nel messaggio il proprio cognome, nome e numero di matricola.
Il testo della prova scritta dell'esonero è composto da un gruppo di 4-5 domande. Le domande sono del tipo a risposta aperta o sottoforma di problemi. Una delle domande consiste nello sviluppo di un breve programma in linguaggio C basato sulle system call POSIX studiate durante il corso.

La durata della prova scritta dell'esame parziale è di 1 ora e 30 minuti.

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.