Abbiamo alcuni software nella nostra società che utilizza la memoria condivisa. Lo utilizza per lo streaming di dati da un processo ad altri processi. Gli zoccoli potrebbero essere usati per questo, ma dato che è uno-a-molti, dovrebbe essere creato un socket separato per ogni processo di consumo che non è veramente ottimale. Sui computer moderni che utilizzano un file condiviso probabilmente farebbero il lavoro, ma questo software è stato sviluppato a metà degli anni '90 quando i dischi erano piuttosto lenti e questo software ha requisiti di latenza piuttosto rigidi. Usa una sorta di buffer circolare in cui il processo produttore scrive i suoi dati. I semafori vengono utilizzati per la sincronizzazione in modo che altri processi non vedano i dati parzialmente aggiornati.
Nella maggior parte dei thread di software moderni sono di solito utilizzati al posto di più processi che utilizzano la memoria condivisa, però.
Per quanto riguarda i tubi, l'uso più comune per loro sono tubi di shell:
ps ax | grep java
Credo named pipe sono in gran parte sostituiti dai socket. Anche se hanno ancora i loro usi, non sono a conoscenza di nessuno di loro.
Si potrebbe anche voler leggere the relevant chapter of the Art of Unix Programming di Eric Steven Raymond. Offre una panoramica molto buona dei metodi IPC Unix e dei loro usi.
fonte
2011-01-31 10:48:43
Grazie a tutti penso che questo darà un'idea dell'uso di IPC. –
Siete i benvenuti :). – Arunmu