Next: Esercizio
Up: Processi
Previous: Race Conditions
prod.c e' un programma che legge due vettori da un file
ed esegue il prodotto vettoriale. Modificarlo in modo che:
- il programma legga i due vettori dal file
- genera n figli;
- il figlio i-esimo esegue la moltiplicazione tra gli i-esimi
elementi dei vettori e mette il risulato in un file chiamato risXXX
dove XXX e' il suo pid.
- il padre si sincronizza con la terminazione di ogni figlio: poi
legge il risultato della computazione del figlio i-esimo dal file
risXXX, e lo somma alla variabile sum; inoltre cancella il file
temporaneo risXXX
File necessari: prod.c, util.c,
util.h
(soluzione mprod.c).
Commento: in pratica stiamo realizzando una forma di
inter-process communication (IPC) tramite files. E' un tipo di
comunicazione molto poco ottimizzata. Vedremo nelle prossime lezioni
che lo standard POSIX e altri sistemi Unix non standard come System V,
mettono a disposizione una tutta serie di meccanismi per la
comunicazione tra processi:
- pipe
- fifo
- msg queues
- shared memory
- sockets
- ecc.
2000-10-29