View Single Post
Old 13-06-2005, 14:38   #1
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
[c] chi mi può aiutare?1 esercizio o vengo bocciato

ciao non riesco a fare questoesercizio per passare il compito all'università, se qualcuno di voi riuscisse ad aiutarmi...

Si consideri il caso di un processo sequenziale che genera, durante la sua esecuzione, un numero N + 1 di thread dei quali uno funge da server dei rimanenti N client. Si supponga che il thread server abbia la tipica struttura di loop in cui, dopo la necessaria inizializzazione, si pone in attesa di richieste dai client sulla porta Port. Ricevuta una richiesta il server la elabora e restituisce la dovuta risposta al client; successivamente il server si rimette in ascolto per una nuova richiesta.

Si realizzino gli N client come semplici thread che, dopo l'ovvia inizializzazione, attendono s secondi, col comando sleep(s), eseguono una qualche computazione e, quindi, lanciano la richiesta al server sulla porta Port per poi attendere la risposta. Si implementi tale protocollo di richiesta in modo da permettere solo un numero M < N di richieste vengano contemporaneamente evase dal server. Questo significa che la coda delle richieste pendenti non può superare M.

Dunque, un cliente dovrà negoziare col server la sua disponibilità ad accettare la richiesta inviandola alla porta Free e, soltanto in caso affermativo, la sua richiesta verrà inoltrata alla porta Port dove il client continuerà l'attesa. Altrimenti terminerà immediatamente l'esecuzione


ho 2 giorni di tempo
__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso