Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio15:esercitazionia:esercitazione9

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

informatica:sol:laboratorio15:esercitazionia:esercitazione9 [11/05/2015 alle 08:36 (10 anni fa)] – creata Massimo Torquatiinformatica:sol:laboratorio15:esercitazionia:esercitazione9 [11/05/2015 alle 08:42 (10 anni fa)] (versione attuale) Massimo Torquati
Linea 2: Linea 2:
  
 Socket AF_UNIX, comunicazione client-server. Server multithreaded e gestione di più connessioni utilizzando la SC ''select''. Per gli esercizi proposti si richiede di realizzare un Makefile. Socket AF_UNIX, comunicazione client-server. Server multithreaded e gestione di più connessioni utilizzando la SC ''select''. Per gli esercizi proposti si richiede di realizzare un Makefile.
 +
 +===== Esercizio 1 =====
 +
 +Realizzare in C un programma client ed un programma server. I due processi intergiscono utilizzando socket AF_UNIX. Il client apre una connessione verso il server ed invia richieste (sotto forma di stringhe) corrispondenti ad operazioni aritmetiche (es. 2+1, 3/4 + 2/7, sqrt(5) + 3.14, ...).
 +Il server accetta una stringa alla volta e per eseguire l'operazione lancia un processo che esegue la calcolatrice "bc".
 +Il messaggio di risposta del server è una stringa contenente il risultato calcolato.
 +La sequenza di operazioni termina quando il client riceve la stringa "quit" e chiude la connessione con il server. 
 +
 +===== Esercizio 2 =====
 +
 +Realizzare un programma C che implementa server che rimane sempre attivo in attesa di richieste da parte di uno o piu' processi client. Ogni client richiede al server la trasformazione di tutti i caratteri minuscoli di una stringa in caratteri maiuscoli (es. ciao –> CIAO). Per ogni nuova connessione il server lancia un thread POSIX che gestisce tutte le richieste del client e quindi termina la sua esecuzione quando il client chiude la connessione.\\
 +Per testare il programma implementare uno script bash che lancia un certo numero di client ognuno che invia una o piu' richieste al server multithreaded.\\
 +
 +Possibile estensione: invece di attivare ogni volta un nuovo thread, gestire un pool di N threads ed effettuare lo scheduling delle richieste dei client sul pool di thread.
 +
 +===== Esercizio 3 =====
 +
 +Realizzare un server analogo a quello dell'Esercizio 2, senza pero' usare i therad, ma utilizzando la chiamata di sistema ''select'' per risolvere il non determinismo fra l'accettazione di nuove connessioni da parte dei client e la lettura dei messaggi dai client gia' connessi.
  
  
informatica/sol/laboratorio15/esercitazionia/esercitazione9.1431333419.txt.gz · Ultima modifica: 11/05/2015 alle 08:36 (10 anni fa) da Massimo Torquati

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki