Programma preliminare di Sistemi Operativi, AA 04-05

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.