informatica:sol:laboratorio15:esercitazionia:esercitazione8
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisioneRevisione precedente | |||
informatica:sol:laboratorio15:esercitazionia:esercitazione8 [03/05/2015 alle 06:49 (10 anni fa)] – Massimo Torquati | informatica:sol:laboratorio15:esercitazionia:esercitazione8 [03/05/2015 alle 06:58 (10 anni fa)] (versione attuale) – [Esercizio 1] Massimo Torquati | ||
---|---|---|---|
Linea 5: | Linea 5: | ||
===== 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 ci sia 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 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 |
+ | |||
+ | ===== Esercizio 2 ===== | ||
+ | |||
+ | N filosofi siedono ad una tavola con un piatto di spaghetti davanti ed una forchetta alla loro destra ed una alla loro sinistra. Per mangiare gli spaghetti un filosofo ha bisogno di entrambe le forchette vicine. Ogni filosofo è impegnato ininterrottamente in una sequenza di 3 attivita': | ||
+ | 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 '' | ||
+ | |||
+ | ===== Esercizio 3 ===== | ||
+ | |||
+ | Scrivere un programma C in cui si attivano M thread produttori ed N thread consumatori che condividono una coda (di lunghezza " | ||
+ |
informatica/sol/laboratorio15/esercitazionia/esercitazione8.1430635755.txt.gz · Ultima modifica: 03/05/2015 alle 06:49 (10 anni fa) da Massimo Torquati