====== Anno Accademico 2012-13 ====== ====== Polo Didattico La Spezia ====== ===== Docente: Laura Ricci ===== ===== Orario del Corso ===== Giovedì ore 9.00-11.00, Lezione in Aula, Aula 4, Polo Marconi Giovedì ore 11.00-13.00, Laboratorio, Laboratorio 2, Polo Marconi ===== Orario di Ricevimento ===== Giovedì ore 15.00-18.00, Pisa presso il mio Studio Per qualsiasi problema potete contattarmi in qualsiasi momento via e-mail (ricci@di.unipi.it), oppure su skype (contatto: lauraemiliaricci) ===== Programma ===== **Thread Programming ** * Attivazione di threads. La classe Runnable * Pool di threads: Politiche per la Gestione dei Pool * Politiche di Saturazione * Thread che restituiscono risultati: la classe Callable * Stati di un thread, metodi Join, Interrupt * Sincronizzazione, concetto di Monitor * Metodi Synchronized, sezioni critiche, wait(), notify(), notifyall() * Programmazione Concorrente: Problemi Classici * Produttore/COnsumatore * Filosofi a Tavola: deadlock * Scrittori/Lettori: starvation * Semaphore **Gestione di indirizzi IP** * Classe InetAddress **Sockets TCP** * Le classi Socket, ServerSocket * Stream: concetti generali * Invio di dati strutturati su Stream: Stream di Oggetti * Serializzazione * Attributi Transient, Grafo dei Riferimenti * Caching di Oggetti * Versioni * Scenari di Deadlock * Implementazione di socket TCP * Stati di un Socket * Demultiplexing * Proprietà di Socket TCP: Timeout, NoDelay, Size, SoLinger, Keep-Alive **Sockets UDP** * DatagramSockets, DatagramPackets * Generazione di pacchetti UDP: Le classi ByteArrayInputStream, ByteArrayOutputStream **Multicast UDP** * Multicast Scoping * API JAva **Remote Method Invocation** * Creazione di Registry * Esportazione di oggetti remoti * Accesso Concorrente ad Oggetti remoti * RMI Callbacks ===== Modalità d'esame ===== **Progetto+Orale ** **Progetto** L'esame si svolge presso il Laboratorio del Polo Marconi, circa una settimana dopo la consegna del codice e della relazione Gli studenti che non hanno frequentato le lezioni di laboratorio (studenti lavoratori) sono pregati di mettersi in contatto con me prima dell'inizio dello svolgimento del progetto. Il prossimo progetto verra' consegnato alla fine del mese di aprile 2013. **Orale**: verte sulla discussione del progetto e in generale sugli argomenti trattati nel corso. Tutti gli studenti che consegneranno una soluzione corretta degli esercizi assegnati a lezione, entro 15 giorni dal loro assegnamento, otterranno un 'bonus' per l'esame finale ===== Progetto Finale ====== Il progetto proposto per l'anno accademico 2012/13 riguarda la realizzazione di un servizio di Storage Distribuito che prende ispirazione da Dynamo, lo Storage System di Amazon. Il materiale per il progetto è il seguente: ^ Testo del Progetto ^ Riferimenti ^ |[[http://www.di.unipi.it/~ricci/DynamoReduced1213.pdf|Reduced dynamo: DHT-based Distributed Storage System]]| [[http://www.di.unipi.it/~ricci/decandia07dynamo.pdf|Dynamo]][[http://www.di.unipi.it/~ricci/DHT.pdf|DHT: an Introduction]]| * Il progetto rimane valido fino alla fine di Aprile 2014. * Per qualsiasi problema potete inviarmi una mail (ricci@di.unipi.it) o cercarmi su skype (contatto lauraemiliaricci). * L'orale si tiene una settimana dopo la consegna del progetto. * L'orale si terrà al Polo Marconi di La Spezia fino a gennaio 2014, successivamente si terrà a Pisa. ^ Giorno ^ Argomenti ^ Lucidi ^ Materiale Integrativo ^ |21/02/2013 |MultiThreading: Attivazione ed Interruzione di Threads| | | |28/02/2013 |Thread Pooling, Gestione indirizzi IP| | | |07/03/2013 |Socket: Concetti introduttivi, Socket TCP| | | |14/03/2013 |Thread: Accesso a Risorse Condivise| | | |21/03/2013 |Socket TCP: Interazione con il Supporto| | | |28/03/2013 |Il Meccanismo della Serializzazione| | | |11/04/2013 |Socket UDP: Spedizione di Pacchetti| | | |16/04/2013 |Correzione di Esercizi alla lavagna| | | |02/05/2013 |Multicast IP, Lettori Scrittori| | | |09/05/2013 |Remote Method Invocation| | | |23/05/2013 |Consegna del Progetto, Il Meccanismo delle Callbacks| | | ===== Link ai Corsi degli anni Precedenti ===== [[informaticaapplicata:rcl:rcl10:rcl-l-2011-12]]