Programma consuntivo di Sistemi Operativi per la robotica, AA 04-05 ---------------------------------------------week 1--------------------------------------------------------(23/2/05 - 2h) Introduzione al corso. Motivazioni. Argomenti trattati. (24/2/05 - 3h) Richiami di S.O. tradizionali: processi e thread, programmazione concorrente, tipi di thread, implementazione, thread in java, grafi di precedenza, sincronizzazione, monitor in java ---------------------------------------------week 2-------------------------------------------------------(3/3/05 - 2h) Richiami di S.O. tradizionali: mutua esclusione, determinatezza, deadlock, esempi ---------------------------------------------week 3-------------------------------------------------------(9/3/05 – 3h) Teoria statistica delle code d’attesa. Richiami delle variabili aleatorie. Definizione di funzione densità e distribuzione. Funzioni densità notevoli, Momenti statistici del primo e del secondo ordine. Distribuzioni statistiche notevoli, operazioni con i momenti, somma di (10/3/05 - 2h) medie e varianze, esempi di utilizzo delle distribuzioni esponenziali, probabilità tra guasti, MTBF ---------------------------------------------week 4-------------------------------------------------------(16/3/05 - 3h) Utilizzo delle distribuzioni stocastiche nel calcolo dei tempi di accesso ad un disco. Esempi di sistemi a coda d’attesa nei sistemi operativi. Notazione di Kendall, sistemi M/M/1 (17/3/05 - 2h) Sistemi a coda d’attesa, coda ciclica, esempio di dimensionamento di un manipolatore robotico per lo smistamento postale, sistema a coda d’attesa retroazionata, algoritmo di Buzen ---------------------------------------------week 5-------------------------------------------------------(23/3/05 - 3h) Esempio di sistema operativo a coda ciclica con disco. Principi e motivazioni dei sistemi in tempo reale, schedulazione in tempo reale ---------------------------------------------week 6-------------------------------------------------------(6/4/05 – 3h) Schedulazione in tempo reale: algoritmo di Jackson, dimostrazione della ottimalità, algoritmo di Horn, dimostrazione della ottimalità. Esempi, schedulazione in tempo reale con vincoli di pre-emption e di precedenza, algoritmo di Bratley (7/4/05 – 2h) Schedulazione in tempo reale di task periodici, algoritmo EDF e Rate monotonic, condizioni necessarie per la schedulabilità, analisi della schedulabilità. ---------------------------------------------week 7-------------------------------------------------------(13/4/05 - 3h) Schedulazione di sistemi aperiodici a priorità statica e dinamica. Algoritmo Total Bandwidth Server. Accesso a risorse condivise, algoritmo ‘priority enheritance’. Definizione e gestione dei sovraccarichi. Introduzione alla simulazione discreta. (14/4/05 –2h) Simulazione discreta: generazione di variabili aleatorie con distribuzione gaussiana e esponenziale. Generazione in C ---------------------------------------------week 8-------------------------------------------------------(20/4/05 –3h) Test di uniformità della generazione di variabili aleatorie uniformi. Test del chi quadro. Laboratorio: prove di programmazione per il test di uniformità e stima di media e varianza in Linux. Principi di simulazione discreta. Analisi dei risultati, stima intervallare. (21/4/05 –2h) Laboratorio: programmazione di problemi di simulazione discreta, simulazione EBF, RM, TBS in Linux ---------------------------------------------week 9-------------------------------------------------------(27/4/05 -3h) Programmazione di sistema Posix. Introduzione, generalità, estrazione dei limiti (massimo numero di parametri...) in run time. Errori, Gestione file, uso dei file come semafori (27/4/05 -2h) Programmazione di sistema Posix – Bufferizzazione di kernel e di livello utente. Condivisione file. Modifica descrittori file, fcntl, dup, dup2, funzioni atomiche (28/4/05 -2h) Programmazione Posix – link simbolici e hard ad un file. Tempi di un processo, identificatori, redirezione, terminazione ed esecuzione dei processi – fork e exec. Competizione di processi. Segnali. ---------------------------------------------week 10-------------------------------------------------------(11/5/05 - 3h) Programmazione di sistema Posix. IPC tramite , esempi. La funzione popen, coprocessi con Pipe. Strutture fifo, esempi. Introduzione alla programmazione thread in Posix 1003.1c (12/5/05 –2h) Programmazione multithread: creazione, attesa, caratteristiche, stato uscita, sincronizzazione, mutex, variabili condizione, semafori ---------------------------------------------week 11-------------------------------------------------------- (18/5/05 -3h) Fondamenti di robotica. Descrizioni, motivazioni e utilizzo. Componenti di un robot, problemi e soluzioni, esempi. Laboratorio:esercizi di programmazione Posix in Linux. (19/5/05 –2h) Fondamenti di robotica: robotica industriale, spazio di lavoro, robotica mobile, robotica umanoide. Architetture. Introduzione alle mappe ---------------------------------------------week 12-------------------------------------------------------(25/5/05 –3h) Finito mappe. Pianificazione di percorso: approccio carta stradale, decomposizione a celle. Diagrammi di Voronoi. Introduzione ai sensori in robotica (26/5/05 -2h) Principi di Localizzazione in robotica. Conclusione: modalità d’esame.