Sistemi operativi e reti

Docente: Pietro Frasca

Comunicazioni

Data inizio lezioni

02-10-2021 09:25

Le lezioni di Sistemi operativi e reti inizieranno martedì 12/10/2021.

 


Lezioni

1425-11-2021

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

1323-11-2021

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.

1218-11-2021

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.

1116-11-2021

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

1011-11-2021

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. 

909-11-2021

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.

804-11-2021

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.

702-11-2021

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.

628-10-2021

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

526-10-2021

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.

421-10-2021

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.

319-10-2021

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. 

214-10-2021

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.

112-10-2021

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


Materiale didattico

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 accademico2021-2022
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

Di seguito sono descritte le modalità d'esame di Sistemi operativi e reti nel caso in cui si svogano online oppure in presenza.

 

Modalità d'esame on line

Per sostenere l'eame online lo studente deve seguire i seguenti passi:

1) prenotarsi su Delphi come di consueto;

2) registrarsi al Teams di Sistemi operativi e reti (se ancora non registrato);

3) partecipare alla riunione Teams alla data e all'ora di svolgimento dell'esame.

 

L'esame si svolgerà via MS Teams sottoforma di colloquio logicamente diviso in due parti. La prima parte del colloquio sarà basata su argomenti tipici di una prova scritta. In particolare, lo studente dovrà scrivere e/o spiegare il codice di un'applicazione

multi processo e/o multi thread, essere in grado di descrivere un progetto di rete intranet con relativo schema hardware e piano d'indirizzamento, rispondere ad altre domande poste sottoforma di problemi. Se lo studente supera la prima parte del colloquio, rispondendo in modo soddisfacente, passerà immediatamente a svolgere la seconda parte del colloquio che riguarda  argomenti, tipici di una prova orale.

 

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

 

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.

Per sostenere l'esonero lo studente deve prenotarsi mediante il servizio "Servizi on Line" all'indirizzo http://delphi.uniroma2.it

Il testo della prova scritta dell'esonero è composto da un gruppo di 3 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'esonero è di 1 ora.

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.

 

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