Insegnamenti

Seleziona l'Anno Accademico:     2016/2017 2017/2018 2018/2019 2019/2020 2020/2021 2021/2022
Docente
GIORGIO GIACINTO (Tit.)
Periodo
Primo Semestre 
Modalità d'Erogazione
Convenzionale 
Lingua Insegnamento
INGLESE 



Informazioni aggiuntive

Corso Percorso CFU Durata(h)
[70/83]  INGEGNERIA ELETTRONICA [83/15 - Ord. 2018]  EMBEDDED ELECTRONICS 7 70
[70/91]  INGEGNERIA DELLE TECNOLOGIE PER INTERNET [91/00 - Ord. 2018]  INGEGNERIA DELLE TECNOLOGIE PER INTERNET 7 70
[70/90]  COMPUTER ENGINEERING, CYBERSECURITY AND ARTIFICIAL INTELLIGENCE [90/00 - Ord. 2018]  PERCORSO COMUNE 7 70

Obiettivi

Il corso di Sistemi Operativi ha l’obiettivo di presentare agli studenti l’organizzazione e i componenti dei moderni sistemi operativi utilizzati in diversi contesti applicativi: sistemi operativi per computer desktop o portatili, sistemi operativi utilizzati nei server in ambito industriale e all’interno delle strutture di fornitori di servizi, sistemi operativi per dispositivi mobili, sistemi operativi ‘embedded’, per applicazioni real-time e per dispositivi IoT. Saranno inoltre trattati gli aspetti di base delle tecniche di virtualizzazione e del cloud computing. Le lezioni teoriche saranno affiancate da esercitazioni pratiche utilizzando UNIX/Linux come caso d’esempio.
Nel dettaglio, gli obiettivi formativi, declinati secondo i Descrittori di Dublino, e in accordo con gli obiettivi formativi del Corso di Laurea Magistrale in Ingegneria Elettronica, sono i seguenti.

Conoscenza e comprensione:
Lo studente, al termine del corso dovrà conoscere e comprendere:
- l’architettura (componenti e funzionalità) dei sistemi operativi attualmente usati nelle diverse categorie di sistemi;
- i meccanismi di funzionamento del sistema operativo Linux/Unix;
- le caratteristiche dei sistemi operativi per dispositivi mobili, embedded e IoT, con particolare riferimento al sistema Android;
- i meccanismi per la virtualizzazione dei sistemi e il cloud computing;
- le principali attività svolte per la progettazione e gestione di un moderno sistema operativo.

Capacità di applicare conoscenza e comprensione
Lo studente, al termine del corso, dovrà:
- saper programmare una applicazione utilizzando correttamente gli strumenti di base messi a disposizione dai sistemi operativi;
- saper usare le metodologie per configurare correttamente, anche dal punto di vista della sicurezza informatica e della privacy, un sistema operativo in base alla funzione del computer su cui è installato.

Autonomia di giudizio
Lo studente, al termine del corso, dovrà saper selezionare il sistema operativo più idoneo per una data applicazione in base ai requisiti operativi richiesti.

Abilità comunicative
Lo studente, al termine del corso, dovrà essere capace di illustrare in modo organico l’interdipendenza dei diversi moduli che compongono un sistema operativo, e il loro legame con l’architettura hardware sul quale vengono eseguiti.

Capacità di apprendimento
L’evoluzione dei dispositivi mobili, e ultimamente di quelli per dispositivi IoT, richiede una elevata capacità di aggiornamento autonomo. Il corso metterà gli studenti in condizioni di poter comprendere autonomamente la documentazione tecnica resa disponibile dalle comunità di sviluppatori di sistemi operativi e dalle principali aziende produttrici di software, con particolare riferimento ai sistemi open source basati su Linux.

Prerequisiti

Sono prerequisiti necessari la conoscenza delle architetture dei calcolatori elettronici e la capacità di saper scrivere dei programmi di media complessità utilizzando il linguaggio di programmazione C, linguaggio sviluppato e usato per la programmazione di sistemi UNIX/Linux. Queste conoscenze, abilità e competenze sono di solito acquisite durante i corsi di laurea di primo livello.

Contenuti

Componenti principali di un sistema operativo ed esempi con i sistemi operativi della famiglia Linux/Unix (4 ore teoria - 2 ore esercitazione)
Processi e thread (8 ore teoria - 6 ore esercitazione)
Scheduling dei processi (2 ore teoria - 2 ore esercitazione)
Mutua esclusione, sincronizzazione e stallo dei processi (6 ore teoria - 4 ore esercitazione)
Gestione della memoria principale (6 ore teoria - 2 ore esercitazione)
File system (3 ore teoria - 1 ora esercitazione)
Gestione del sistema ingresso/uscita e dei dischi (2 ore teoria - 1 ora esercitazione)
Sicurezza dei sistemi operativi (3 ore teoria - 2 ore esercitazione)
Virtualizzazione e cloud computing (4 ore teoria - 2 ore esercitazione)
Sistemi operativi embedded e real time (3 ore teoria)
Peculiarità dei sistemi operativi per dispositivi mobili e IoT (3 ore teoria)
Caso di studio: il sistema operativo Android (4 ore esercitazione)

Metodi Didattici

Il corso è organizzato con
- lezioni frontali con supporto di presentazioni grafiche
- esercitazioni basate sul sistema operativo UNIX/Linux e Android
- esercitazioni su sistemi di virtualizzazione e cloud computing
- un seminario o visita di istruzione

Il materiale didattico è disponibile nel sito ufficiale del corso http://people.unica.it/giorgiogiacinto/didattica/insegnamenti/materiale-didattico/sistemi-operativi/

Il docente è disponibile a fornire spiegazioni e chiarimenti sia durante l'intervallo fra ore consecutive di lezione, sia durante l'orario di ricevimento, sia a mezzo posta elettronica.

Verifica dell'apprendimento

La verifica dell’apprendimento viene effettuata attraverso una prova scritta e alcune prove pratiche distribuite durante lo svolgimento del corso.
La prova scritta contiene:
- domande a risposta aperta
- esercizi numerici
- esercizi di programmazione (pseudocodice)
al fine di verificare
- le conoscenze
- le abilità
- le competenze
che coprono l’intero programma del corso. In particolare io studente dovrà mostrare di:
- conoscere e aver compreso i concetti di processo e thread;
- conoscere le tecniche per la mutua esclusione e sincronizzazione fra processi con particolare riferimento ai problemi classici che definiscono le diverse casistiche di comportamento;
- conoscere l’organizzazione della memoria principale e il funzionamento delle tecniche e algoritmi per la gestione della memoria attraverso la soluzione di alcuni problemi numerici;
- conoscere l’organizzazione della memoria di massa e il funzionamento delle tecniche e algoritmi per la gestione della memoria attraverso la soluzione di alcuni problemi numerici;
- conoscere l’organizzazione del file system;
- conoscere l’organizzazione e le tecniche di gestione del sistema di ingresso/uscita;
- conoscere gli strumenti per la virtualizzazione;
- conoscere la struttura del sistema operativo Android;
- saper descrivere le principali differenze fra sistemi operativi per diversi contesti applicativi
- conoscere le principali problematiche legate alla sicurezza dei sistemi.

Le prove pratiche saranno costituite da esercitazioni che proporranno l’utilizzo di chiamate di sistema UNIX/Linux per la creazione e comunicazione fra processi in linguaggio C, e da esercitazioni relative alla configurazione di sistemi operativi e di virtualizzazione con riferimento alla sicurezza e alle prestazioni.
A ciascun esercizio della prova scritta è assegnato un punteggio massimo. Ciascun esercizio viene valutato con un punteggio compreso fra 0 e il punteggio massimo assegnato. Il punteggio massimo viene assegnato in caso di risposta corretta, mentre viene assegnato un punteggio inferiore in presenza di errori. Errori di distrazione o dovute a incomprensioni del testo attribuibili a possibili ambiguità nel testo stesso, avranno un peso inferiore rispetto a errori concettuali chiaramente causati da una conoscenza parziale dell’argomento.

La valutazione della partecipazione alle prove pratiche avrà un valore complessivo pari a 12 punti, suddivisi fra le diverse prove proposte durante lo svolgimento del corso.

Il voto finale si ottiene come somma dei punteggi ottenuti in ciascun esercizio e dei punti relativi alla partecipazione alle prove pratiche. Il punteggio massimo è pari a 32. Chi ottiene un punteggio complessivo pari a 32 avrà il voto pari a 30 e lode.

E' possibile sostenere una prova orale integrativa.

Testi

William Stallings
Operating Systems: Internals and Design Principles, 9/E
Pearson - ©2018
ISBN 9781292214290

Altre Informazioni

Copia delle presentazioni usate a lezione e del materiale usato per le esercitazioni sarà disponibile al seguente indirizzo: https://elearning.unica.it/

Altre Informazioni

Copia delle presentazioni usate a lezione e del materiale usato per le esercitazioni sarà disponibile al seguente indirizzo: https://elearning.unica.it

Questionario e social

Condividi su: