Offerta Didattica

 

INFORMATICA

SISTEMI OPERATIVI

Classe di corso: L-31 - Scienze e tecnologie informatiche
AA: 2021/2022
Sedi: MESSINA
SSDTAFtipologiafrequenzamoduli
INF/01, ING-INF/05CaratterizzanteLiberaLibera
CFUCFU LEZCFU LABCFU ESEOREORE LEZORE LABORE ESE
128049648048
Legenda
CFU: n. crediti dell’insegnamento
CFU LEZ: n. cfu di lezione in aula
CFU LAB: n. cfu di laboratorio
CFU ESE: n. cfu di esercitazione
FREQUENZA:Libera/Obbligatoria
MODULI:SI - L'insegnamento prevede la suddivisione in moduli, NO - non sono previsti moduli
ORE: n. ore programmate
ORE LEZ: n. ore programmate di lezione in aula
ORE LAB: n. ore programmate di laboratorio
ORE ESE: n. ore programmate di esercitazione
SSD:sigla del settore scientifico disciplinare dell’insegnamento
TAF:sigla della tipologia di attività formativa
TIPOLOGIA:LEZ - lezioni frontali, ESE - esercitazioni, LAB - laboratorio

Obiettivi Formativi

L'obiettivo principale del corso è l'acquisizione delle conoscenze di base sulla struttura dei moderni Sistema Operativoi"general purpose” mettendo in evidenza i meccanismi di basso livello che rendono possibile il funzionamento multiprogrammato, distribuito e virtualizzato.

Metodi didattici

Al fine di raggiungere gli obiettivi formativi previsti, il corso si articola attraverso lezioni frontali, esercitazioni in aula, esercitazioni guidate dal docente. Tutte le attività sono svolte con supporto di slide delle lezioni. Le slide presentate sono condivise tramite la classe MS Teams dedicata.

Prerequisiti

Conoscenze di programmazione C, e di algoritmi e strutture dati avanzate. Nozioni di architetture dei calcolatori.

Verifiche dell'apprendimento

La verifica orale ha una valutazione massima di 26. L’esame prevede un progetto opzionale, a scelta dello studente. Il progetto viene discusso in sede di verifica orale ed ha una valutazione compresa tra 0 e 5. Il voto finale è dato dalla somma del voto dell’esame orale ed, eventualmente, del progetto.

Programma del Corso

------------------------------------------------------------ Modulo: A000900 - SISTEMI DI VIRTUALIZZAZIONE ------------------------------------------------------------ Sistemi di I/O: Hardware di I/O, I/O memory mapped; tecniche per la gestione dei dispositivi di I/O: a controllo di programma, Polling, I/O interrupt driven e Direct Memory Access; interfaccia di I/O delle applicazioni, sottosistema I/O del kernel; Loadable Kernel Module (LKM), Linux I/O, directory /dev e /proc. Memoria di massa: struttura dei dispositivi di memorizzazione, scheduling dei dischi rigidi e di dispositivi NVM, rilevamento e correzione degli errori; connessione dei dispositivi di memorizzazione: host attached storage, network-attached storage, cloud storage, storage area network, storage array; mirroring, striping, strutture RAID, Multiple Device Administrator (mdadm) tool. Reti e sistemi distribuiti: sistemi operativi di rete e distribuiti; file system distribuiti: Network File System (NFS),Google File System (GFS) e Hadoop File System (HDFS). Macchine virtuali: trap and emulate, traduzione binaria, assistenza hardware; tipologie di virtualizzazione: hypervisor, paravirtualizzazione, virtualizzazione dell'ambiente di programmazione, emulazione. Gestione di CPU, memoria, archiviazione e dispositivi aggiuntivi per una VM. Comprensione delle applicazioni in una VM. Confronto tra hypervisor, VMware ESX, CitrixXen, Microsoft Hyper-V, altre soluzioni. Migrazione delle VM, Migrazione Cold e Live, pre-copy e post-copy. Differenza tra Container e Macchine Virtuali, Orchestrazione di VM. Container engine. Applicazioni monolitiche e orientate ai microservizi. Cloud computing, livelli di servizi: IaaS, PaaS e SaaS; Cloud pubbliche, private e ibride; Windows Azure, Google App Engine, Amazon Web Services; Cloud Operating System, scalabilità verticale ed orizzontale. Componenti architetturali di un IaaS, gestione distribuita delle infrastrutture virtuali, tecniche di schedulazione per la prenotazione anticipata di capacità, gestione della capacità per soddisfare i requisiti di SLA. Openstack. La Supply Chain Cloud, le metodologie di integrazione, un framework di integrazione sensore-cloud. ------------------------------------------------------------ Modulo: A000901 - SISTEMI OPERATIVI ------------------------------------------------------------ GENERALITA’ SUI SISTEMI OPERATIVI: sistemi monolitici, sistemi a livelli, macchine virtuali, sistemi distribuiti client-server. Definizione di Processo, Memoria Virtuale, File System, System Call, Kernel, Shell. EVOLUZIONE DEI SISTEMIOPERATIVI: dalla mono alla multiprogrammazione; il concetto di multitasking. MODELLO DI INTERAZIONE TRA CPU E DISPOSITIVI: Sistema di interruzione. Interruzioni e multiprogrammazione. Processo di interruzione. Modi di funzionamento della CPU. GESTIONE DEI PROCESSI: modello di un processo, vita di un processo, meccanismi di controllo. La Schedulazione a breve termine (di CPU), la Schedulazione a medio termine (swapping), La Schedulazione a lungo termine (dei processi): algoritmi di schedulazione (senza prelazione, con prelazione, Round Robin, con priorità, code multiple, SJF). SINCRONIZZAZIONE TRA PROCESSI: corse critiche, mutua esclusione, sospensione e risveglio, stallo, meccanismi di condivisione della memoria e scambio messaggi. Meccanismi di sincronizzazione tra processi: semafori. La Comunicazione Inter-Processo (IPC) e i suoi problemi: esempio del produttore-consumatore. La Gestione dei Processi e IPC in ambiente distribuito (accenni). I Threads: definizione, sistemi operativi multi-threaded, rapporto tra threads e processi. GESTIONE DELLA MEMORIA: partizionamento fisso, rilocazione e protezione; gestore con swapping: multiprogrammazione a partizioni variabili, squeeze (compattamento). MEMORIA VIRTUALE: definizione di spazio di indirizzamento virtuale, MMU, overlay e paginazione, Virtual Page Table a uno o più livelli. Segmentazione. GESTIONE DEI FILE: il file system (struttura gerarchica in file e directory, tipi di file system). Implementazione del file system: struttura del file system, implmentazione delle directory,metodi di allocazione, gestione dello spazio libero. LABORATORIO: La gestione dei processi. La libreria pthread. Gestione dei thread, mutex, semafori. Programmazione concorrente.

Testi di riferimento: ------------------------------------------------------------ Modulo: A000900 - SISTEMI DI VIRTUALIZZAZIONE ------------------------------------------------------------ A.Silberschatz, P.B.Galvin, G.Gagne, Operating System Concepts, Matthew Portnoy, Virtualization Essentials, 2nd Edition, John Wiley & Sons. Rajkumar Buyya, James Broberg , Andrzej M. Goscinski. CLOUD COMPUTING Principles and Paradigms, Wiley. ------------------------------------------------------------ Modulo: A000901 - SISTEMI OPERATIVI ------------------------------------------------------------ A.Silberschatz, P.B.Galvin, G.Gagne, "Sistemi operativi. Concetti ed esempi", Pearson/Addison Wesley Mark Mitchell, Jeffrey Oldham, Alex Samul, "Advanced Linux Programming" (https://richard.esplins.org/static/downloads/linux_book.pdf)

Elenco delle unità didattiche costituenti l'insegnamento

Docente: LORENZO CARNEVALE

Orario di Ricevimento - LORENZO CARNEVALE

Dato non disponibile

Docente: MARCO LUCIO SCARPA

Orario di Ricevimento - MARCO LUCIO SCARPA

GiornoOra inizioOra fineLuogo
Martedì 09:30 11:30Dipartimento di Ingegneria, Blocco B, piano 7.
Giovedì 09:30 11:30Dipartimento di Ingengeria, Blocco B, piano 7.
Note:
  • Segui Unime su:
  • istagram32x32.jpg
  • facebook
  • youtube
  • twitter
  • UnimeMobile
  • tutti