Università degli Studi di Napoli Federico II
Corso di Laurea in Ingegneria Informatica
Esame di Programmazione II
Prova pratica del 22/11/2012
Durata della prova: 120 minuti
Cognome………………………………. Nome………………………………....… Matr………………………
Lo studente legga attentamente il testo e produca il programma ed i casi di test necessari per dimostrarne il funzionamento. La mancata compilazione completa dell’elaborato, la compilazione con errori o l’esecuzione errata daranno luogo alla valutazione come prova non superata. Ricordarsi di indicare Cognome, Nome e matricola su questo stesso foglio, che dovrà essere in ogni caso consegnato alla Commissione. Al termine della prova lo studente dovrà far verificare il funzionamento del programma ad un membro della Commissione.
Testo della prova
Il candidato realizzi un’applicazione multithread per la prenotazione di biglietti del cinema. Il sistema implementa una politica di bilanciamento del carico (load balancing), ed è composto da 3 tipologie di entità, come illustrato in figura:
- Server, che offre il servizio prenota. Ogni Server dispone di un numero N=10 biglietti. All’arrivo di una richiesta di prenotazione si verifica la disponibilità di biglietti. Se ci sono biglietti disponibili, si attende un tempo scelto a caso tra 5 e 10 secondi, si decrementa il totale dei biglietti di un’unità e si restituisce esito true. Nel caso non ci siano più biglietti disponibili, la richiesta di prenotazione termina immediatamente con esito false. Il sistema utilizza 3 Server.
- LoadBalancer: riceve le richieste di prenotazione dei client (sottometti) e le smista verso un apposito Server invocando il servizio prenota. Il LoadBalancer possiede la lista dei Server disponibili. I Server sono gestiti secondo la politica round-robin (ogni Server è invocato a turno dal LoadBalancer ogni 3 richieste). Il LoadBalancer restituisce al Client l’esito del servizio prenota invocato sul Server selezionato.
- Client: genera T thread, ognuno dei quali, allo scadere di un tempo di t secondi (con t scelto a caso tra 1 e 3), effettua una richiesta di prenotazione. Ogni client thread genera R richieste. Si imposti T pari a 5; R pari a 10.
Il candidato realizzi la comunicazione tra le entità utilizzando le socket.
-
Programmazione II - esercizi
-
Programmazione II - esercizi (seconda parte)
-
Esercitazioni di programmazione e controllo - II modulo
-
Esercizi di Programmazione e Controllo II, Prof. Brusa e Vola