SISTEMI OPERATIVI E LABORATORIO
Marina Lenisa
Ivan Scagnetto
Programmazione e laboratorio
quelle di laboratorio sono tenute in laboratorio in modo da permettere agli studenti di sperimentare direttamente e di mettere in pratica le nozioni introdotte dal docente.
OBIETTIVI FORMATIVI
Conoscenza e capacità di comprensione: lo studente acquisisce conoscenze specifiche sull’architettura, il funzionamento e sui principi di progettazione di un moderno sistema operativo. Egli inoltre impara a valutare ed a scegliere l’adozione di un sistema operativo a seconda dell’ambito di utilizzo e delle caratteristiche dell’hardware.
Conoscenza e capacità di comprensione applicate: grazie all’attività di laboratorio, lo studente acquisisce specifiche capacità di applicare a casi reali le conoscenze maturate sui sistemi operativi.
Capacità trasversali/soft skills
Autonomia di giudizio: lo studente acquisisce una capacità di valutazione critica sulle tecnologie, gli algoritmi e le soluzioni che possono influire positivamente o negativamente sulle prestazioni e sul corretto funzionamento di un sistema operativo in diversi contesti applicativi.
Abilità comunicative: lo studente impara a descrivere in modo tecnicamente corretto ed usando la terminologia appropriata un sistema operativo.
Capacità di apprendimento: lo studente impara ad essere autonomo nell’espandere le proprie conoscenze sui sistemi operativi oltre le nozioni e gli esempi appresi ed analizzati durante il corso, scoprendo e sfruttando anche le connessioni con altri corsi riguardanti l’architettura dei calcolatori, le reti ed i sistemi distribuiti.
CONTENUTI
Laboratorio: il sistema Operativo UNIX: struttura, interfaccia utente, varianti (Solaris, Linux). La shell UNIX: – ruolo e varianti, – procedura di login, – organizzazione del file system, – manuale online, – la shell bash: espansione del pathname, ridirezione del I/O, pipe, job in background, il comando history, editing della linea di comando, completamento di comandi, – gli editor vi e (X)Emacs, – il comando make. Comandi principali della shell: – gestione di file, – gestione di processi, – monitoraggio della memoria, – comandi filtro: ricerca, ordinamento, editing. Shell script: – variabili, – passaggio dei parametri, – strutture di controllo, – login script. Basi di Linguaggio C. Programmazione di sistema: – controllo di processi, – file system, – comunicazione tra processi, – threads e multithreading.
TESTI DI RIFERIMENTO
Trasparenze usate in aula dal docente
A. Silberschatz, P.B. Galvin, G. Gagne, Sistemi operativi (ottava ed.). Pearson, 2009.
A. Tanenbaum, I moderni sistemi operativi (quarta ed.). Pearson (Prentice Hall), 2016.
Laboratorio:
R. Blum, C. Bresnahan. Linux Command Line and Shell Scripting Bible, 2nd Edition, Wiley, 2011.
I G. Glass, K. Ables. UNIX for Programmers and Users, Prentice Hall, 2a edizione, 1999.
I B.W. Kernighan, D.M. Ritchie. Linguaggio C, seconda edizione, 1989.
I K. Haviland, D. Gray, B. Salama. UNIX System Programming, Addison Wesley, seconda edizione, 1989.