PROGRAMMAZIONE DI SISTEMA
(obiettivi)
Obiettivi generali: Il corso ha un deciso orientamento applicativo ed ha lo scopo di presentare le principali tecniche di programmazione e di utilizzo dei servizi di sistema in ambiente Unix/Linux e Windows.
Obiettivi specifici: Vengono approfondite le tecniche di gestione delle risorse (file, memoria, processi, etc.) apprese in forma minimale nel corso di Sistemi Operativi I e vengono presentate tecniche di programmazione multi-thread, meccanismi di sincronizzazione, tecniche di programmazione in rete, servizi per la gestione della sicurezza. Sono presentati esempi reali di utilizzo all'interno di applicazioni di sistema.
Conoscenze e comprensione: Alla fine del corso lo studente avrà acquisito familiarità con le principali primitive che permettono di accedere i servizi messi a disposizione da un moderno sistema operativo e che sono necessarie per lo sviluppo di sofisticate applicazioni multipiattaforma. Nel contempo avrà raggiunto una migliore comprensione dei principi di funzionamento di un sistema operativo ed in generale dell'interazione tra applicazioni, librerie e servizi di sistema.
Applicazione di conoscenza e comprensione: Alla fine del corso lo studente sarà in grado di sviluppare applicazioni distribuite multipiattaforma per svolgere compiti di elevata complessità tenendo conto dei requisiti di efficienza, sicurezza ed affidabilità tipici dei servizi classici (scambio di messaggi, file, accesso remoto a risorse) e di individuare le soluzioni migliori per nuove esigenze applicative.
Capacitò di giudizio: Gli studenti svilupperanno le capacità di valutazione necessaria per scegliere tra le diverse alternative messe a disposizione da un moderno sistema operativo per l'accesso allre risorse, la sincronizzazione, il trasferimento di dati, la protezione e la sicurezza.
Capacità di comunicazione: Gli studenti impareranno a giustificare e documentare le loro scelte, con riferimento alla documentazione tecnica ed a supportare la presentazione con risultati sperimentali.
Capacità di apprendimento: La conoscenza degli aspetti generali di interazione tra applicazioni, librerie e servizi di sistema permetterà agli studenti di acquisire rapidamente confidenza con nuove tecniche e sistemi, oltre a quelli considerate nel corso, come ad esempio quelli real-time.
|