Insegnamento SISTEMI OPERATIVI
Nome del corso | Ingegneria informatica ed elettronica |
---|---|
Codice insegnamento | A003144 |
Curriculum | Ingegneria informatica |
Docente responsabile | Carla Binucci |
Docenti |
|
Ore |
|
CFU | 6 |
Regolamento | Coorte 2022 |
Erogato | Erogato nel 2024/25 |
Attività | Caratterizzante |
Ambito | Ingegneria informatica |
Settore | ING-INF/05 |
Tipo insegnamento | Obbligatorio (Required) |
Tipo attività | Attività formativa monodisciplinare |
Lingua insegnamento | ITALIANO |
Contenuti | - Strutture dei sistemi operativi. - Processi. - Scheduling della CPU. - Sincronizzazione dei processi. - Memoria centrale. Memoria virtuale. - Memoria secondaria. - File system. - Introduzione all’ambiente Linux lato utente. |
Testi di riferimento | - Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, Sistemi operativi Concetti ed esempi - 9/Ed., Pearson Education, 2014 |
Obiettivi formativi | L'obiettivo principale dell'insegnamento consiste nel fornire agli studenti le seguenti conoscenze: - Conoscenza dei concetti fondamentali alla base del funzionamento dei moderni sistemi operativi. - Conoscenze di base su Linux - lato utente. Le principali abilità saranno funzionali a: - risolvere problemi relativi alla gestione delle risorse di un calcolatore (Processore, Memoria Primaria e Secondaria) - interagire con il sistema operativo Linux a livello utente |
Prerequisiti | Al fine di comprendere appieno alcuni degli argomenti trattati nell'insegnamento, e' fortemente consigliato aver sostenuto l'esame di Fondamenti di Informatica. Diversi argomenti trattati nel modulo richiedono la conoscenza di principi di programmazione in C |
Metodi didattici | Il corso è organizzato con lezioni frontali ed esercitazioni sugli argomenti del corso. |
Altre informazioni | |
Modalità di verifica dell'apprendimento | Esame scritto di natura teorica e applicativa. - Durata: circa 120 minuti - Struttura: domande teoriche ed esercizi - Punteggio: 30/30 Obiettivo: verificare le conoscenze acquisite in merito ai concetti teorici dell'insegnamento e la capacità di applicare tali concetti a casi pratici Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa |
Programma esteso | - Introduzione: Generalità su cosa è e cosa fa un sistema operativo; strutture dei sistemi operativi. - Processi: Concetto di processo; Scheduling dei processi; operazioni sui processi, comunicazione fra processi. - Sincronizzazione dei processi: Problema della sezione critica; Hardware per la sincronizzazione; Lock mutex; Semafori; problemi tipici di sincronizzazione. - Scheduling della CPU: Concetti fondamentali; Criteri di scheduling; Algoritmi di scheduling; Scheduling per sistemi multiprocessore; Esempi di sistemi operativi. - Stallo dei processi (cenni): Modello di sistema; caratterizzazione delle situazioni di stallo. - Memoria centrale: Spazi di indirizzi logici e fisici; Avvicendamento dei processi; Allocazione contigua della memoria; Paginazione; Struttura della tabella delle pagine; Esempi di architetture. - Memoria virtuale: Paginazione su richiesta; Algoritmi di sostituzione delle pagine; Allocazione dei frame; Trashing. - Thread (cenni): Concetto di thread; Thread a livello utente e thread a livello kernel; Scheduling della cpu in presenza di thread. - Memoria secondaria: Scheduling del disco; Gestione dell’area di avvicendamento. - File system: Concetto di file; Metodi di accesso; Struttura delle directory e del disco; Protezione; Realizzazione delle directory; Metodi di allocazione: contigua, concatenata, FAT, indicizzata, i-node unix; Gestione dello spazio libero. - Introduzione a Linux: Introduzione a Linux; uso della shell e primi comandi da terminale; Principali system call per la gestione dei processi. |
Obiettivi Agenda 2030 per lo sviluppo sostenibile | 4,9 |