ing. Salvatore Sorce, Ph.D.
Didattica
Corso di Laurea in Informatica
Sistemi Operativi - 9 C.F.U.
Anno Accademico 2018/2019
Registro delle lezioni e materiale didattico
Pagina aggiornata l'ultima volta: mercoledì 20 febbraio 2019 14.06.
Avviso nr. 8 del 20 febbraio 2019, ore 14:00 - esito prova del 20/2/2019 e verbalizzazione
Chiunque intenda prendere visione del proprio compito, dovrà mandare email al docente entro domenica 24/2 per fissare un incontro, che presumibilmente avrà luogo nella mattinata del 26/2.
L'esito della prova scritta del 20/2/2019 è disponibile qui.
La verbalizzazione per tutti coloro che hanno superato la prova avrà luogo martedì 26/2, alle ore 11:00 in aula 4.
Avviso nr. 7 del 6 febbraio 2019, ore 20:00 - esito prova del 6/2/2019
Chiunque intenda prendere visione del proprio compito, dovrà mandare email al docente entro domenica 10/2 per fissare un incontro, che presumibilmente avrà luogo nella mattinata di martedì 12/2.
L'esito della prova scritta del 6/2/2019 è disponibile qui.
Avviso nr. 6 del 23 gennaio 2019, ore 23:30 - esito prova del 23/1/2019
Chiunque intenda prendere visione del proprio compito, dovrà mandare email al docente entro venerdì 1/2 per fissare un incontro, che presumibilmente avrà luogo nella mattinata di martedì 5/2.
L'esito della prova scritta del 23/1/2019 è disponibile qui.
Avviso nr. 5 del 4 dicembre 2018, ore 21:00
La lezione di domani, mercoledì 5/12, non avrà luogo e verrà recuperata successivamente. Il corso riprenderà con la lezione di venerdì 7/12.
Avviso nr. 4 del 27 ottobre 2018, ore 20:00
Le lezioni di mercoledì 31/10 e venerdì 2/11 non avranno luogo e verranno recuperate successivamente. Il corso riprenderà con la lezione di mercoledì 7/11.
Avviso nr. 3 del 10 ottobre 2018, ore 10:00
A partire dal 10/10/2018 (COMPRESO) la lezione del mercoledì si svolgerà dalle 14 alle 17 anziché dalle 14:30 alle 17:30, sempre in Aula 4.
Avviso nr. 2 del 26 settembre 2018, ore 20:00
La lezione di venerdì 28 non avrà luogo, e verrà recuperata successivamente.
Avviso nr. 1 del 25 settembre 2018, ore 18:00
L'orario delle lezioni è così organizzato:
Mercoledì >>14:00-17:00<<, Aula 4 – Dip. Matematica e Informatica
Venerdì 10:30-14:30, Laboratorio D1, ex-Consorzio Agrario
Le lezioni avranno inizio mercoledì 26 settembre.
Gli studenti sono invitati ad iscriversi al corso tramite il Portale Studenti.
Modalità di iscrizione agli appelli
L'iscrizione agli appelli avverrà esclusivamente via web, attraverso il Portale Studenti dell'Università di Palermo (http://studenti.unipa.it).
Ricevimento
Durante il corso: il venerdì dalle 15:00 alle 16:00 presso la stanza nr. 208, via Archirafi, 34, II piano
dopo il corso: per appuntamento
Contatti
tel.: 09123862609
e.mail: | N.B.: i messaggi e-mail senza subject e/o firma verranno cestinati |
Silbershatz, Galvin, Gagne, "Sistemi Operativi: concetti ed esempi", editrice Pearson/Addison Wesley
Slides e materiale utilizzati a lezione e scaricabili on line.
Introduzione ai sistemi operativi.
Cos'è un sistema operativo. Le sue funzioni. La sua storia.
Richiami di architettura
Strutture dei SO
Gestione dei Processi in un SO
Processi, Sincronizzazione, Schedulazione, Deadlock
Gestione della Memoria
Gestione della memoria principale.
Memoria virtuale.
Gestione della memoria secondaria.
Gestione del file system.
Sistemi distribuiti
Motivazioni e definizioni
Reti: concetti di base
Rappresentazione binaria dell'informazione (cenni)
Rappresentazione e codifica di numeri e testo
Rappresentazione e codifica di segnali mono- e multi-dimensionali tempo-varianti
Programmazione concorrente mediante Message-Passing
Esempi ed esercizi con MPI
L'esame finale è composto da una prova scritta semi-strutturata.
La prova è composta da 25 domande a risposta chiusa/multipla, con tre opzioni possibili, più due domande a risposta aperta.
Ogni domanda a risposta multipla consente di attribuire 1 punto in caso di risposta corretta, oppure 0 in caso di risposta errata/non data.
Ogni domanda a risposta aperta consente di ottenere un punteggio variabile da 0 (risposta non data o completamente non pertinente) a 3 (risposta esatta, massima proprietà di linguaggio e capacità di sintesi dei concetti), con valori interi intermedi possibili per risposte di qualità giudicata tra i due estremi. La prova consente quindi di ottenere un punteggio massimo di 31, che costituisce il presupposto per ottenere il voto finale di 30 e lode.
Ulteriori dettagli sulla scheda di trasparenza dell'insegnamento, reperibile sul Portale Studenti.
Registro delle lezioni e materiale utilizzato a lezione
Lezione | Ore | Data | Argomenti | Lucidi |
1 | 3 |
mer 26/9/2018 ore 14:30-17:30 |
Presentazione del corso | Presentazione |
Rappresentazione numerica binaria dell'informazione: sistemi di numerazione e rappresentazione di quantità - codifica del testo |
Sistemi di numerazione |
|||
2 | 6 |
mer 3/10/2018 ore 14:30-17:30 |
Rappresentazione numerica binaria di grandezze fisiche monodimensionali tempo-varianti (es.: suono) | Testo e grandezze monodimensionali |
3 | 10 |
ven 5/10/2018 ore 10:30-14:30 |
Rappresentazione numerica binaria di grandezze fisiche
multidimensionali e tempo-varianti (es.: immagini e video). La compressione: tecniche non percettive (senza perdita, tipo RLE) e percettive (con perdita, tipo JPEG e derivati). |
Grandezze multidimensionali e compressione |
4 | 13 |
mer 10/10/2018 ore 14:00-17:00 |
Cos'è un sistema
operativo - Storia dei sistemi operativi (I-III generazione) -
Sistemi batch, multiprogrammazione, time sharing - Sistemi
paralleli, sistemi distribuiti. |
Slides |
5 | 17 |
ven 12/10/2018 ore 10:30-14:30 |
Richiami di architetture dei calcolatori - Interrupt - Comunicazione fra processore e dispositivi di I/O - Memoria: tipi, gerarchia, caching - Protezione hardware, modo utente e modo kernel - Strutture dei sistemi operativi, system call | |
6 | 20 |
mer 17/10/2018 ore 14:00-17:00 |
Servizi di un S.O. - system calls - sistemi a strati - tipi di kernel - macchine virtuali | Slides |
Scheduling: Rappresentazione dei processi - PCB, code | Slides | |||
7 | 24 |
ven 19/10/2018 ore 10:30-14:30 |
Scheduling: Tipi di scheduler e criteri - Scheduling della CPU - Algoritmi di scheduling: FCFS, SJF+SRTF, Round-Robin, Priorità, Multilivello | |
8 | 27 |
mer 24/10/2018 ore 14:00-17:00 |
Gestione della memoria principale: Binding, loading, linking - Allocazione contigua a partizioni fisse e dinamiche, metodi di allocazione degli spazi liberi | Slides |
9 | 31 |
ven 26/10/2018 ore 10:30-14:30 |
Principio di località - Paginazione: definizione, funzionamento,
paginazione multilivello - Segmentazione - Segmentazione paginata -
Memoria virtuale: demand paging, algoritmo di sostituzione FIFO. Algoritmi di sostituzione: MIN, LRU, Reference Bits (seconda chance), LFU, MFU - Trashing - Working set |
|
10 | 34 |
mer 7/11/2018 ore 14:00-17:00 |
LEZIONE ANNULLATA CON D.R. CAUSA CARENZA IDRICA | |
11 | 38 |
ven 9/11/2018 ore 10:30-14:30 |
Gestione della memoria secondaria: collegamento al sistema, tipi di
supporti - dischi magnetici, struttura, organizzazione, parametri
caratteristici. Scheduling del disco: algoritmi FCFS, SSTF, LOOK, C-LOOK, SCAN, C-SCAN - Gestione del disco - sistemi RAID |
Slides |
12 | 41 |
mer 21/11/2018 ore 14:00-17:00 |
Esercizi: algoritmi di sostituzione delle pagine. | |
Il file system - punto di vista dell'utente: file, attributi, protezione, metodi di accesso. Directory: strutture, struttura del disco. | Slides | |||
13 | 45 |
ven 23/11/2018 ore 10:30-14:30 |
Il file system - punto di vista del programmatore: struttura a livelli del FS, implementazioni. Metodi di allocazione: contigua, concatenata (variante con FAT), indicizzata. Gestione spazio libero. | |
Concorrenza: definizioni, cause, problemi derivanti. Race conditions - Interazione tra processi - Safety e liveness |
Slides Slides di supporto (dal testo in inglese) Portale MPI (link esterno) MPI per Windows (link esterno) |
|||
14 | 48 |
mer 28/11/2018 ore 14:00-17:00 |
Sezioni critiche: introduzione, definizioni, condizioni. Algoritmo di Dekker (dimostrazione), algoritmo di Peterson (dimostrazione). Istruzioni <test_and_set> e <swap> |
|
15 | 52 |
ven 30/11/2018 ore 10:30-14:30 |
Sezioni critiche: soluzioni in carico al sistema operativo. Semafori: implementazioni. Prove di funzionamento su problemi test: produttore/consumatore e buffer limitato. Prove di funzionamento dei semafori con problemi test: 5 filosofi e lettori/scrittori. | |
16 | 56 |
ven 7/12/2018 ore 10:30-14:30 |
Sezioni critiche: soluzioni in carico al linguaggio di
programmazione: monitor. Definizioni, implementazioni, funzioni
sulle condizioni. Cenni alle prove di soluzione ai problemi test
mediante monitor. Sezioni critiche: soluzione con message passing. |
|
17 | 59 |
mer 12/12/2018 ore 14:00-17:00 |
Gestione del deadlock: condizioni necessarie e sufficienti,
rilevamento e recupero, prevenire/evitare. Strutture dati necessarie, grafo di Holt, algoritmo del banchiere. |
Slides |
18 | 63 |
ven 14/12/2018 ore 10:30-14:30 |
MPI: funzioni di comunicazione bloccante e non bloccante, sincrona e
asincrona. Funzioni di comunicazione collettiva. Esempio: moltiplicazione di matrici righe_x_colonne. |
Slides Esercizi |
19 | 65 |
mer 19/12/2018 ore 15:00-17:00 |
MPI: esempi di comunicazione broadcast, implementazioni. Wildcards. Sincronizzazione con barrier. Implementazione del problema produttore-consumatore. Implementazione della ricerca lineare. |
Esercizi. |
20 | 69 |
ven 21/12/2018 ore 10:30-14:30 |
||
21 | 72 |
mer 9/1/2019 ore 14:00-17:00 |
Esercizi di ripasso. |