next up previous contents index return to home!
Next: Pipe con nome Up: Esercizi Previous: Segnali   Indice   Indice analitico

Pipe

Esercizio 5.5   Scrivere un programma in cui, dopo aver aperto due pipe, un processo faccia la fork di un figlio. Da questo momento in poi, ognuno dei due processi, stampa un messaggio a video, manda un dato su una pipe e si mette in atesa sull'altra. Se il programma funziona correttamente, i messaggi del padre e del figlio si devono altrnare sul video.

Esercizio 5.6   Scrivere un programma con $N$ processi concorrenti e $N-1$ pipe, fatto nel seguente modo. Il processo padre apre un pipe, forka un figlio e poi si mette in attesa di leggere un intero sulla pipe; quando lo ha ricevuto, lo stampa a video. Ognuno dei figli, tranne l'ultimo, effettua la stessa procedura: apre una pipe, forka un figlio, e si mette in attesa di leggere un intero dalla pipe; non appena riceve l'intero dalla pipe, lo riscrive sulla pipe del padre. L'ultimo figlio, l'$N$-esimo, legge il proprio pid e lo scrive sulla pipe del proprio padre.

Esercizio 5.7   Scrivere un programma che realizzi una struttura circolare con $N$ processi e $N$ pipe. Numerando i processi da $1$ a $N$, il processo i-esimo ($1 < i \leq N$) legge dalla pipe $i-1$ e scrive sulla pipe i. Il processo $i=1$ legge dalla pipe $N$ e scrive sulla pipe 1. Ognuno dei processi legge e scrive degli interi dalle pipe: i processi dispari leggono un intero, lo stampano a video, gli sommano il proprio indice $i$ e lo scrivono sulla pipe di uscita. I processi pari leggono un intero, lo stampano a video, gli sottraggono il proprio indice e lo inviano sulla pipe di uscita.

Esercizio 5.8   Scrivere un programma che stampi a video il contenuto della directory corrente, ottenuto eseguendo il comando di shell ls.

Esercizio 5.9   Scrivere un programma che legga due numeri interi dallo stdin e ne stampi a video la somma.

Scrivere un altro programma che manda in esecuzione il programma precedente, passandogli due numeri sullo standard input (utilizzare la primitiva dup2).


next up previous contents index
Next: Pipe con nome Up: Esercizi Previous: Segnali   Indice   Indice analitico
Giuseppe Lipari 2002-10-27