Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio16:esercitazionia:esercitazione9

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:laboratorio16:esercitazionia:esercitazione9 [26/04/2016 alle 18:42 (9 anni fa)] – creata Massimo Torquatiinformatica:sol:laboratorio16:esercitazionia:esercitazione9 [27/04/2016 alle 08:42 (9 anni fa)] (versione attuale) Massimo Torquati
Linea 1: Linea 1:
 +====== Esercitazione 9 ======
  
- +POSIX threads, gestione della mutua esclusione. Per gli esercizi proposti si richiede di realizzare un Makefile.
-Posix threads, creazione e gestione della mutua esclusione. Per gli esercizi proposti si richiede di realizzare un Makefile.+
  
 ===== Esercizio 1 ===== ===== Esercizio 1 =====
  
-Scrivere un programma C con due threads, un produttore (P) ed un consumatore (C). Il thread P genera, uno alla volta, una sequenza di numeri inserendoli in un buffer di 1 posizione condiviso con il thread C. Il thread consumatore estrae il numeri dal buffer e lo stampa sullo standard output. Se il buffer e' pieno P  attende che C consumi il dato, analogamente se il buffer e' vuoto C attende che P produca un valore da consumare.+Scrivere un programma C con due threads, un produttore (P) ed un consumatore (C). Il thread P genera, uno alla volta, una sequenza di numeri inserendoli in un buffer di 1 posizione condiviso con il thread C. Il thread consumatore estrae numeri dal buffer e li stampa sullo standard output. Se il buffer e' pieno P  attende che C consumi il dato, analogamente se il buffer e' vuoto C attende che P produca un valore da consumare.
  
 ===== Esercizio 2 ===== ===== Esercizio 2 =====
Linea 15: Linea 15:
  
 Scrivere un programma C in cui si attivano M thread produttori ed N thread consumatori che condividono una coda (di lunghezza "infinita"). Il programma accetta come argomento anche un intero N che corrisponde al numero totale di messaggi che i produttori producono concorrentemente nella coda (ogni produttore produce N/M messaggi se M divide N). I consumatori leggono i messaggi dalla coda in un ciclo infinito fino a quando non ricevono un messaggio speciale che li fa terminare. Implementare la coda concorrente, ed il protocollo di terminazione senza usare la cancellazione esplicita dei threads. Scrivere un programma C in cui si attivano M thread produttori ed N thread consumatori che condividono una coda (di lunghezza "infinita"). Il programma accetta come argomento anche un intero N che corrisponde al numero totale di messaggi che i produttori producono concorrentemente nella coda (ogni produttore produce N/M messaggi se M divide N). I consumatori leggono i messaggi dalla coda in un ciclo infinito fino a quando non ricevono un messaggio speciale che li fa terminare. Implementare la coda concorrente, ed il protocollo di terminazione senza usare la cancellazione esplicita dei threads.
 +
informatica/sol/laboratorio16/esercitazionia/esercitazione9.1461696159.txt.gz · Ultima modifica: 26/04/2016 alle 18:42 (9 anni fa) da Massimo Torquati

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki