POLITECNICO DI BARI I FACOLTA' DI INGEGNERIA Corso di Laurea in Ingegneria delle Telecomunicazioni Corso di Laurea in Ingegneria dell’Automazione A.A. 2007-2008 Sistemi Operativi/Informatica per l’Automazione I Ing. Michele Ruta Programma di insegnamento Obiettivo del corso di Sistemi Operativi/Informatica per l’Automazione I è introdurre l’architettura tipica di un Sistema Operativo (S.O.). Verrà fatto specifico riferimento alle interfacce verso gli utenti ed alla struttura del nucleo con le relative politiche di gestione delle risorse. Oltre a ciò, si affronterà lo studio della gestione dei processi, l’analisi di concorrenza oltre che le tematiche inerenti comunicazione e sincronizzazione. A chiusura del corso verrà introdotto il concetto di blocco critico e si farà cenno ai sistemi real time. Il corso di esercitazioni prevedrà l’addestramento all’utilizzo del S.O. LINUX. Dopo una sezione introduttiva preliminare in cui verranno illustrate e caratteristiche generali del sistema (struttura del nucleo, sistema grafico, licenze), verrà operato un confronto con Microsoft Windows ed infine verranno presentati i più comuni comandi di SHELL con esempi concreti di utilizzo al calcolatore. Conoscenze Propedeutiche: • Principi della programmazione strutturata, algoritmi e strutture dati. • Principi della programmazione orientata agli oggetti. Argomenti del corso: I Parte (6 ore): struttura e funzionamento generale di un S.O. • Storia ed evoluzione dei S.O.; • Interfacce; • Modelli del nucleo. II Parte (12 ore): attività computazionali, nucleo e gestione delle risorse • Job, job-step, task; • Stati di una attività computazionale; • Nucleo e sue componenti; • Politiche di gestione delle risorse. III Parte (10 ore): gestione dei processi • Concorrenza di processi; • Cooperazione tra processi; • Blocco critico; • Comunicazione interprocesso. IV Parte (4 ore): sistemi real-time (cenni) e sistemi operativi a supporto della mobilità (cenni) • Generalità sui sistemi real-time e relativo scheduling ; • Struttura e funzionalità generali dei S.O. per ambienti e sistemi mobili. V Parte (24 ore): esercitazioni in aula • Generalità sui S.O. UNIX-like; • Architettura generale di LINUX; • Sistema grafico X-Window; • Microsoft Windows vs LINUX; • GNU GPL, garanzia del diritto d’autore per il software liberamente distribuibile; • BASH Shell. VI Parte (12 ore): esercitazioni in laboratorio • Comandi di uso generale (pwd, cd, ls, cp, mv…); • Comandi di help; • Comandi per visualizzare, scrivere e manipolare file testuali; • Ridirezione dell’input, dell’output e/o dell’error standard; • Pipeline; • Gestione dei processi; • Comandi informativi; • Comandi di filtering dell’output; • Gestione degli utenti; • Link e permessi: organizzazione del file system; • Script di shell (cenni). Testi di riferimento principali: • A. Silberschatz, P.B. Galvin, G. Gagne, Sistemi Operativi con esempi per l’uso in Java, Apogeo, giugno 2005. • D. Giacomini, Appunti di informatica libera, e-book: http://a2.pluto.it/a21.htm Ulteriori testi suggeriti: • P. Ancillotti, M. Boari, A. Ciampolini, G. Lipari, Sistemi operativi, McGraw-Hill, luglio 2004. • W. Stallings, Sistemi Operativi, Jackson libri, 2000. • D.P. Bovet, M. Cesati, Understanding the LINUX kernel - Third Edition, O’Reilly, Novembre 2005. • David I. Schwartz, Introduzione a UNIX, Apogeo Education, 2001.