Docente
|
DOCENTE FITTIZIO
(programma)
Obiettivi formativi per il raggiungimento dei risultati di apprendimenti previsti nella scheda SUA L’insegnamento mira all’acquisizione di competenze relative all’organizzazione, funzionamento e gestione delle risorse (CPU, memoria e dispositivi) di un elaboratore elettronico. In particolare, verranno acquisite competenze sull’architettura di un sistema operativo, sulle principali funzioni svolte, sulle problematiche (politiche e meccanismi) per la progettazione di un sistema operativo e su come tali aspetti sono implementati nei sistemi operativi moderni unitamente ad aspetti legati al supporto fornito dal sistema per l’allocazione della memoria e per la comunicazione e la sincronizzazione dei processi. Eventuali criticità riscontrate (da compilare solo al secondo anno di insegnamento)
Numero totale e descrizione delle unità didattiche ** Nr. Totale: 12
Organizzazione della didattica (lezioni, laboratorio etc) didattica EROGATIVA N. 12 ORE videoLEZIONI ON-LINE (n. 2 videolezioni - unita’ didattiche - della durata di un’ora per ogni cfu)
didattica interattiva n. 12 ore lezioni in streaming (n. 2 lezioni in streaming per ogni cfu) di cui n. // da registrare e pubblicare in piattaforma ed eventuali n. // per esercitazioni in aula n. 12 forum – 2 per CFU N. // CHAT N. // WEB CONFERENCE N. // PROGETTI N. // REPOSITORY N. 6 TEST (ALMENO 1 PER CFU) CON 10 DOMANDE ASSISTENZA MEDIANTE E-MAIL
Programma del corso Introduzione Introduzione storica all'evoluzione dei sistemi operativi. Le principali famiglie di sistemi operativi attuali. Introduzione alla famiglia Unix. Il modello a strati del sistema operativo. Il nucleo e la gestione dei processi Il concetto di processo e la multiprogrammazione. Stati di un processo. Scheduling. Priorità. Gestione dei processi in modalità batch, time-sharing e real time. La gestione dei processi in Unix. I thread. La sincronizzazione: mutex, semafori e variabili condition. Il deadlock. La gestione della memoria I problemi nella gestione della memoria: rilocazione, protezione dei processi. Swapping. Caricamento dinamico. Il modello della memoria in un processo Unix. La memoria virtuale. La MMU. Paging. L'input/output e la gestione dei file Astrazione e virtualizzazione delle periferiche. I driver. Caricamento dinamico dei driver. Il file system. Partizioni e volumi. Sistemi RAID. Allocazione dello spazio su disco. Gestione dei file. Gestione delle directory. Journaling. Controllo di accesso: permessi e ACL. File system di rete. Esempi di file systems disponibili nei sistemi Unix. I permessi dei file sotto Unix. L'interfaccia utente e l'interprete dei comandi (shell) Caratteristiche generali di una shell. La shell bash. Accesso remoto e SSH. Script di shell. Variabili di ambiente. Path. Comandi per la gestione dei file. Redirezione dell'I/O. Strutture di controllo (selezione e iterazione). Pipes e processi in background. Comandi per la gestione dei processi e dei job. Il comando find. Le espressioni regolari e i comandi grep e sed. Modalità di verifiche di profitto in itinere Il grado di apprendimento degli Studenti è monitorato costantemente attraverso metodologie e strumenti di verifica. In particolare, al fine di rendere fattibile la verifica e la certificazione degli esiti formativi, il docente e il tutor terranno conto de: Il tracciamento automatico delle attività formative da parte del sistema-reporting; Il monitoraggio didattico e tecnico (a livello di quantità e qualità delle interazioni, di rispetto delle scadenze didattiche, di consegna degli elaborati previsti, ecc); Le verifiche di tipo formativo in itinere, anche per l’autovalutazione (es. test multiple choice, vero/falso, sequenza di domande con diversa difficoltà, simulazioni, mappe concettuali, elaborati, progetti di gruppo, ecc); L’esame finale di profitto, nel corso del quale si tiene conto e si valorizza il lavoro svolto in rete (attività svolte a distanza, quantità e qualità delle interazioni on line, ecc).
La valutazione in questo quadro tiene conto di più aspetti: Il risultato di un certo numero di prove intermedie (test on line, sviluppo di elaborati, ecc); La qualità e la quantità della partecipazione alle attività on line (frequenza e qualità degli interventi monitorabili attraverso la piattaforma); I risultati della prova finale.
Pertanto i dati raccolti saranno oggetto di analisi da parte del docente per l’attività di valutazione dello Studente.
Modalità di valutazione*
Obiettivi della Prova L’esame prevede lo svolgimento di una prova scritta ed una orale, valutate in 30-esimi. Per accedere all’orale occorre superare la prova scritta con un voto minimo di 18/30. Durante lo svolgimento del corso è prevista una prova scritta parziale (prova in itinere), esonerativa di una parte della prova scritta.
La prova scritta è tesa a valutare la comprensione dei principali meccanismi per la gestione dei processi, la gestione della memoria e la gestione dei file, nonché la capacità di scrivere semplici programmi in C che usano le system call per la gestione dei processi, e di scrivere script per la shell bash.
La prova orale e tesa a valutare il livello delle conoscenze teoriche, l’autonomia di analisi e giudizio, nonché le capacita espositive dell’allievo.
Il livello di valutazione minimo (18) è attribuito quando l’allievo ha una conoscenza frammentaria dei contenuti teorici e mostra una limitata capacità di applicare le conoscenze acquisite. Il livello di valutazione massimo (30) è attribuito quando l’allievo dimostra una conoscenza completa degli aspetti teorici e una notevole capacità di applicare le conoscenze per risolvere problemi simili a quelli presentati nel corso. La lode è attribuita quando l’allievo dimostra una conoscenza completa ed approfondita degli aspetti teorici, una notevole proprietà di linguaggio e una notevole capacità di elaborazione autonoma nell’applicare le conoscenze acquisite anche in contesti diversi da quelli proposti durante il corso.
Conoscenze e capacità di comprensione che consentono di elaborare e/o applicare idee originali, spesso in un contesto di ricerca (descrittore di Dublino n. 1) Conoscenze delle funzioni svolte da un sistema operativo moderno, con particolare riferimento alla gestione dei processi, della memoria, delle periferiche e dei file, e comprensione delle tecniche di base di implementazione di tali funzioni (algoritmi di scheduling, allocazione della memoria, page replacement e file system) ed interprocess communication.
Capacità di applicare conoscenza, comprensione e abilità nel risolvere i problemi (descrittore di Dublino n. 2) Comprendere cosa succede all’interno di un elaboratore durante l’esecuzione dei programmi, saper usare le system call di un sistema operativo per la sincronizzazione dei processi e la gestione della memoria. Capacità di sviluppare semplici script di shell.
(testi)
---
|