Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisioneRevisione precedente | |
informatica:sol:laboratorio20:esercitazionib:esercitazione9 [05/04/2020 alle 17:10 (5 anni fa)] – [Esercizio 3] Massimo Torquati | informatica:sol:laboratorio20:esercitazionib:esercitazione9 [16/04/2020 alle 08:36 (5 anni fa)] (versione attuale) – [Esercizio 4] Massimo Torquati |
---|
===== Esercizio 4 ==== | ===== Esercizio 4 ==== |
| |
Scrivere un programma C che implementa una //pipeline// di tre threads. Il primo thread legge una riga alla volta da un file testuale (il cui nome e' passato come argomento al programma) ed invia al secondo thread ogni riga letta dal file. Il secondo thread "tokenizza" le parole dalla riga ricevuta dal primo thread ed invia al terzo thread i token. Il terzo thread contralla quali parole sono uniche e alla fine, prima di terminare, stampa tutte le parole uniche individuate (cioe' stampa tulle le parole del file in input che compaiono una sola volta al suo interno). | Scrivere un programma C che implementa una //pipeline// di tre threads. Il primo thread legge una riga alla volta da un file testuale (il cui nome e' passato come argomento al programma) ed invia al secondo thread ogni riga letta dal file. Il secondo thread "tokenizza" le parole dalla riga ricevuta dal primo thread (considerare come separatore solo lo spazio) ed invia al terzo thread i le parole. Il terzo thread contralla quali parole sono uniche e alla fine, prima di terminare, stampa tutte le parole uniche individuate (cioe' stampa tulle le parole del file in input che compaiono una sola volta al suo interno). |
I tre stadi del pipeline devono lavorare in modo concorrente come in una "catena di montaggio", il buffer di comunicazione tra due stadi della pipeline deve essere implementata con una coda FIFO. | I tre stadi della pipeline devono lavorare in modo concorrente come in una "catena di montaggio", il buffer di comunicazione tra due stadi della pipeline deve essere implementata con una coda FIFO (la scelta se usare una coda di capacita bounded o unbounded e' lasciata allo studente). |
| |
| |