Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio17:esercitazionib:esercitazione7

Differenze

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

Link a questa pagina di confronto

Prossima revisione
Revisione precedente
informatica:sol:laboratorio17:esercitazionib:esercitazione7 [04/04/2017 alle 19:30 (8 anni fa)] – creata Massimo Torquatiinformatica:sol:laboratorio17:esercitazionib:esercitazione7 [05/04/2017 alle 10:12 (8 anni fa)] (versione attuale) Massimo Torquati
Linea 3: Linea 3:
 ===== Esercizio 1 ===== ===== Esercizio 1 =====
  
-Realizzare una shell rudimentale che legge un comando con eventuali parametri dallo standard input e ne invoca l'esecuzione utilizzando una funzione della famiglia ''exec()''. La shell deve terminare se viene digitato il comando 'exit'+Realizzare una shell **rudimentale** che legge un comando con eventuali parametri dallo standard input e ne invoca l'esecuzione utilizzando una funzione della famiglia ''exec()''. La shell deve terminare se viene digitato il comando 'exit'
 Il formato dei comandi accettati dalla shell e' molto semplice e non non prevede metacaratteri, ridirezione, pipe, etc... Il formato dei comandi accettati dalla shell e' molto semplice e non non prevede metacaratteri, ridirezione, pipe, etc...
  
Linea 15: Linea 15:
 Scrivere un programma C che attivi N thread filosofi che eseguono il ciclo descritto per 100 volte. La meditazione e la fase in cui il filosofo mangia deve essere implementata con un ritardo variabile (usare ad esempio la chiamata di sistema ''nanosleep'' e la funzione ''rand_r()''). Scrivere un programma C che attivi N thread filosofi che eseguono il ciclo descritto per 100 volte. La meditazione e la fase in cui il filosofo mangia deve essere implementata con un ritardo variabile (usare ad esempio la chiamata di sistema ''nanosleep'' e la funzione ''rand_r()'').
  
 +===== Homework ====
 +
 +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 threads ogni riga letta dal file. Il secondo threads "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). 
 +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.
  
informatica/sol/laboratorio17/esercitazionib/esercitazione7.1491334214.txt.gz · Ultima modifica: 04/04/2017 alle 19:30 (8 anni fa) da Massimo Torquati

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki