Sistemi operativi e reti

Docente: Pietro Frasca

Comunicazioni

Risultati prova scritta esonero 2 - A.A. 2017/2018

19-02-2018 17:49

Risultati esonero 2 prova scritta - A.A. 2017/2018

 

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

- Martedì 20  febbraio 2018 alle ore 14:00 in aula 3A;

- Mercoledì 21 febbraio 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 6 - A.A. 2016/2017

19-02-2018 17:40

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

Testo della prova scritta

 

La prova orale dell'esame dell'appello 6 si svolgerà Martedì 20 Febbraio 2018 alle ore 10:00 in aula 3A. Sosterranno l'esame 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. 2016/2017

01-02-2018 16:04

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

Testo della prova scritta

 

La prova orale dell'esame dell'appello 5 si svolgerà venerdì 2 febbraio 2018 alle ore 10:00 in aula 3A. Sosterranno l'esame gli studenti che hanno conseguito una votazione di almeno 18/30. 


Risultati prova scritta esonero 1 - A.A. 2017/2018

01-02-2018 16:02

Risultati prova scritta esonero 1- A.A. 2017/2018

Testo della prova scritta

 

La prova orale dell'esonero 1 si svolgerà venerdì 2 febbraio 2018 alle ore 10:00 in aula 3A. Sosterranno l'esame gli studenti che hanno conseguito una votazione di almeno 18/30. 


Esonero Sistemi operativi e reti A.A. 2017/2018

23-01-2018 14:55

L'esonero di sistemi operativi e reti a.a. 2017/2018 si svolgerà in due appelli mutualmente esclusivi.

Le date e le aule  delle prove scritte dell'esonero sono le seguenti:

 

- appello 1: 30/01/2018 ore 10:00 aula 6PP2

- appello 2: 16/02/2018 ore 10:00 aula 6PP2

 

Lo studente che intende sostenere l'esonero in uno dei due appelli deve prenotarsi inviando, entro il 26/01/2018 per il primo appello e entro 12/02/2018 per il secondo, una e-mail all'indirizzo del docente: Pietro.Frasca@uniroma2.it, indicando come oggetto la frase "Esonero SOR A.A. 2017/2018" e indicando nel messaggio soltanto i propri cognome, nome, numero di matricola e l'appello scelto (1 o 2) nel seguente formato:

 

 COGNOME NOME MATRICOLA APPELLO

 

Esempio:

 FRASCA PIETRO 00101 2

 

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

 


Esercitazione di Sistemi operativi e reti

19-01-2018 21:16

Come stabilito nell'ultima lezione, martedì 23 gennaio 2018 alle ore 11:00 in aula 6PP2 si svolgerà un'esercitazione per la preparazione all'esonero.


Lezioni

3312-04-2018

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

3229-03-2018

Connessione non persistente e persistente. Connessioni non persistenti in parallelismo  e in serie. Connessione persistente senza parallelismo e con parallelismo. Il protocollo FTP. Modalità attiva e passiva. Comandi FTP. Posta elettronica. SMTP. 

3127-03-2018

Formato del messaggio di risposta HTTP. Get condizionato. Interazione utente-server: autorizzazione e cookie. 

3022-03-2018

Servizi forniti dai protocolli di trasporto. Applicazioni di rete. Web. Il protocollo HTTP. Formato del messaggio di richiesta HTTP.

2920-03-2018

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

2815-03-2018

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. 

2713-03-2018

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

2608-03-2018

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.

2506-03-2018

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

2416-01-2018

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

2311-01-2018

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

2209-01-2018

Metodi di accesso. Accesso sequenziale. Accesso diretto. Accesso a indice. 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. Struttura logica del file system.

2114-12-2017

Esempio memorizzazione di dati su disco. 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. Il livello di accesso al file system. Strutture dati e operazioni di accesso ai file.

2012-12-2017

Memoria segmentata e paginata. Gestione degli spazi virtuali. Paginazione a più livelli. Algoritmi di rimpiazzamento 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.

1907-12-2017

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

1805-12-2017

Partizioni multiple. Memoria segmentata.

1730-11-2017

Rilocazione statica. Rilocazione 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. Protezione e condivisione di informazioni con spazio virtuale unico.

1628-11-2017

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. Gestione della memoria. Creazione di un file eseguibile. Organizzazione dello spazio virtuale. SPazio viruale unico (lineare). Rilocazione statica e dinamica.

1523-11-2017

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. 

1421-11-2017

Comportamento dei processi. Parametri di scheduling. Principali algoritmi di scheduling. FCFS. Shortest job first (SJF). Shortest Next Process First (SNPF). Shortest Remaining Time First (SRTF). Round Robin.

1316-11-2017

Variabili condizione (condition). Esempi di sincronizzazione tra thread: soluzione modello produttore-consumatore con variabili condition e il problema dei cinque filosofi. Scheduling della CPU. Scheduling a breve, medio e lungo termine.

1214-11-2017

System call per l'uso dei segnali. Invio di segnali tra processi. Esempi. Sincronizzazione tra thread in POSIX. Mutex. Semafori. Esempi.

1109-11-2017

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

1007-11-2017

Thread a livello kernel. Modello da uno a uno. Modello da molti a molti. I thread nello standard POSIX: la libreria pthreads. Creazione di thread. Terminazione di thread. Unione (join) di thread. Struttura di un'applicazione multithread. Esempio 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.

902-11-2017

Comunicazione con pipe. Esempio uso pipe. Comunicazione con pipe con nome. Esempio uso pipe con nome. Thread. Thread a livello utente. Modello da molti a uno.

831-10-2017

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 con code di messaggi POSIX.

726-10-2017

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

624-10-2017

Sostituzione del codice. Famiglia di funzioni exec(). Esempio con execl(). Terminazione di processi. Le funzioni exit(), wait() e waitpid(). Esempi.

517-10-2017

Descrittore del processo (PCB). Code di processi. Scheduler. Cambio di contesto. Operazioni sui processi. Creazione e terminazione dei processi.  Creazione dei processi in POSIX. Fork. Esempio Fork.

412-10-2017

Struttura e organizzazione software dei sistemi operativi. Struttura monolitica. Struttura stratificata. Struttura a microkernel. Struttura modulare. Struttura ibrida. Principali componenti del sistema operativo. Gestione dei processi. Concetto di processo. Stati di un processo. Transizioni di stato di un processo.

310-10-2017

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 e mobile. Sistemi paralleli e distribuiti. Client-server e peer-to-peer. Cloud.

205-10-2017

Sistemi a singolo processore. Sistemi multiprocessore. Cluster. Struttura del sistema operativo. Sistemi operativi batch multiprogrammati. Sistemi operativi time sharing.

103-10-2017

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


Materiale didattico

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 2

Appunti Reti di calcolatori - Lezione 1

Date esami prova orale esonero 2 - A.A. 2017/2018

Risultati prova scritta esonero 2 - A.A. 2017/2018

Testo prova scritta esonero 2 - A.A. 2017/2018

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

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

Risultati prova scritta esonero 1 - A.A. 2017/2018

Testo prova scritta esonero 1 - A.A. 2017/2018

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

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

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

Informazioni

Anno accademico2017-2018
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 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 e mezza. 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 saranno 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. 2017/2018" 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 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 15 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.