====== Laboratorio di Programmazione di Rete Anno Accademico 2011-12 ====== ====== Polo Didattico La Spezia ====== ===== Docente: Laura Ricci ===== ===== Orario del Corso ===== Martedì ore 9.00-11.00, Lezione in Aula, Aula 4, Polo Marconi Martedì 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 (mandatemi una mail per il contatto) ===== 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() * Semaphore * Individuazione di Deadlock **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 * Caching di Oggetti, Reset * 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** **Remote Method Invocation** * Creazione di Registry * Gerarchie di Registry * Esportazione di oggetti remoti * RMI Callbacks * RMI: Supporto Concorrente ===== 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 ***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 dalla presentazione degli esercizi, otterranno un 'bonus' per l'esame finale ===== Progetto di Fine Corso ===== * ** {{http://www.di.unipi.it/~ricci/progettospezia1112.pdf|Mordor: Un Gioco Multiplayer Distribuito}}** Attenzione: Data Ultima Modifica, 15 maggio 2012, ore 15.30 Modalità di Consegna del Progetto * **Il Progetto è valido fino al 30 aprile 2013 ** * E' possibile consegnare il progetto in uno qualsiasi momento, escluso i periodi di vacanze (20 luglio-30 agosto, 20 dicembre-6 gennaio) * L'esame (discussione del progetto+ orale) si terrà circa una settimana dopo la data di consegna =====Registro delle lezioni:===== ^ Giorno ^ Argomenti ^ Lucidi ^ Materiale Integrativo ^ |21/02/2012 |Introduzione al corso, MultiThreading, Attivazione Threads, Interruzione Threads| | | |28/02/2012 |Thread Pooling, Gestione Indirizzi IP| | | |06/03/2012 | TCP Sockets, Stream Sockets| | | |13/03/2012 | TCP Sockets: Implementazione, Serializzazione di Oggetti| | | |20/03/2012 | Mutua Esclusione, Sincronizzazione Esplicita su Risorse Condivise| | | |27/03/2012 | UDP Sockets: DatagramSocket, DatagramPacket| | | |17/04/2012 | Correzione Esercizio Sincronizzazione Thread | |[[http://www.di.unipi.it/~ricci/17-04-12-LaboratorioInformatica.zip | Laboratorio Informatica]] [[http://www.di.unipi.it/~ricci/TalkMsg.java | TalkMsg]]| |02/05/2012 | IP Multicast, Socket Miscellanea | |[[http://www.di.unipi.it/~ricci/ipmlt_wp.pdf | Tutorial sull'Assegnazione di Indirizzi di Multicast]]| |08/05/2012 |Remote Method Invocation| | | |15/05/2012 |RMI: Meccanismo delle Callback, Presentazione del Progetto di fine Corso| | | |22/05/2012 |RMI, Multithreading: Approfondimenti| | | ===== Link ai Corsi degli anni Precedenti ===== [[informaticaapplicata:rcl:rcl10:rcl-l-2010-11]]