Quando piú processi condividono tra loro informazioni e concorrono ad uno scopo applicativo comune, si dicono cooperanti. Affinché ció sia possibile, il sistema operativo deve fornire politiche e meccanismi di comunicazione e sincronizzazione.
Ogni metodo di IPC (meccanismo di comunicazione) ha delle caratteristiche proprie, la scelta va fatta in base a:
- Quantitá di informazioni da trasmettere
- Velocitá di esecuzione
- Scalabilitá
- Semplicitá di uso
- Omogeneitá delle comunicazioni
- Integrazione nel linguaggio di programmazione
- Affidabilitá
- Sicurezza
- Protezione
Distinzione tra comunicazione
La comunicazione si distingue in:
- Comunicazione diretta: in cui i processi comunicanti conoscono l’ID l’uno dell’altro. Richiede che entrambi i processi siano attivi affinché avvenga la comunicazione.
- Comunicazione indiretta: in cui i processi sanno dove prelevare/depositare le informazioni.
Metodi diretti
Metodi per la comunicazione diretta
Memoria condivisa: é possibile condividere un’area di memoria tra processi comunicanti
si puó realizzare in due modi:
- Il SO copia la zona di memoria condivisa tra i processi comunicanti. cosí i processi comunicano pur rimanendo fisicamente separati. (spreco di memoria per la copia)
- Il SO mappa parte dello spazio di indirizzamento logico dei processi sulla stessa area di memoria fisica, che é quindi fisicamente condivisa. Questa tecnica é molto piú rapida.