Titolo insegnamento in inglese: Operating Systems Laboratory
Lingua: italiano
Insegnamento:I Laboratorio di Sistemi Operativi
Anno di corso: III
CFU: 8
Semestre: 1
Docenti:
- Canale unico: Alessandra Rossi
Insegnamenti propedeutici previsti
Sistemi Operativi I, Algebra
Obiettivi Formativi
Il corso si prefigge di fornire gli strumenti e le metodologie necessarie alla gestione di sistema ed allo sviluppo di applicazioni in ambiente Unix. Al termine del corso lo studente sarà in grado di: sfruttare appieno le potenzialità di scripting per la gestione del sistema; utilizzare le interfacce di programmazione standard e delle system call al sistema Unix; progettare e realizzare programmi multi-processo e/o multi-thread; sviluppare applicazioni di rete. Inoltre, il corso si prefigge di fornire le metodologie e gli strumenti necessari per lo sviluppo di applicazioni in ambiente Android con particolare focus all'interazione tra le applicazioni ed il sistema operativo. Al termine del corso lo studente avrà appreso le problematiche relative alla creazione ed alla gestione di activity in ambienti mobile, la loro interazione con il file system presente sul dispositivo, le metodologie e gli strumenti per realizzare applicazioni multi-thread e di rete.
Contenuti
La shell di Unix: comandi e programmazione; Shell/AWK Scripting; I/O di basso livello e chiamate di sistema per la gestione l'interazione con il file system; chiamate di sistema per la gestione dei processi; chiamate di sistema per la gestione di segnali, pipe e fifo; chiamate di sistema per la creazione, gestione e sincronizzazione di thread; La comunicazione su rete. Architetture client-server; primitive di comunicazione su rete; I socket TCP ed UDP. Le chiamate di sistema per la programmazione di rete; Creazione di server concorrenti. Introduzione ai sistemi Android; Il framework Android Studio; Struttura di un progetto Android; Il ciclo di vita di una activity; Creazione e gestione di activity; Interazione con il file system; Cenni all'utilizzo di SQLite; Connessione ad Internet; Applicazioni di rete; Background processing; Multi-threading; Gestione della sincronizzazione; Servizi; Fragments; Receiver in background.
Modalità didattiche
Lezioni frontali. Esercitazioni.
Modalità di esame
L'esame si articola in prova scritta e orale.
La prova scritta è a risposta libera e con sviluppo progetti.