Comunicazione tra processi (IPC) nel sistema operativo
Che cos'è la comunicazione tra processi?
Comunicazione tra processi (IPC) viene utilizzato per lo scambio di dati tra più thread in uno o più processi o programmi. I Processi possono essere eseguiti su uno o più computer collegati da una rete. La forma completa di IPC è la comunicazione tra processi.
È un insieme di interfacce di programmazione che consentono a un programmatore di coordinare le attività tra vari processi di programma che possono essere eseguiti contemporaneamente in un sistema operativo. Ciò consente a un programma specifico di gestire molte richieste degli utenti contemporaneamente.
Poiché ogni singola richiesta dell'utente può comportare più processi in esecuzione nel sistema operativo, il processo potrebbe richiedere di comunicare tra loro. Ogni approccio al protocollo IPC presenta i propri vantaggi e limiti, quindi non è insolito che un singolo programma utilizzi tutti i metodi IPC.
Approcci per la comunicazione tra processi
Ecco alcuni metodi importanti per la comunicazione tra processi:
Pipe
Pipe è ampiamente utilizzato per la comunicazione tra due processi correlati. Questo è un metodo half-duplex, quindi il primo processo comunica con il secondo processo. Tuttavia, per ottenere un full-duplex, è necessario un altro pipe.
Passaggio del messaggio
È un meccanismo per un processo di comunicare e sincronizzare. Utilizzando il passaggio di messaggi, il processo comunica tra loro senza ricorrere a variabili condivise.
Il meccanismo IPC prevede due operazioni:
- Invia (messaggio): dimensione del messaggio fissa o variabile
- Ricevuto (messaggio)
Code di messaggi
Una coda di messaggi è un elenco collegato di messaggi archiviati all'interno del file Kernel. È identificato da un identificatore di coda di messaggi. Questo metodo offre la comunicazione tra processi singoli o multipli con capacità full-duplex.
Comunicazione diretta
In questo tipo di processo di comunicazione tra processi, è necessario nominarsi a vicenda in modo esplicito. In questo metodo, viene stabilito un collegamento tra una coppia di processi comunicanti e tra ciascuna coppia esiste un solo collegamento.
Comunicazione indiretta
La comunicazione indiretta si stabilisce solo quando i processi condividono una casella di posta comune, ogni coppia di processi condivide diversi link di comunicazione. Un link può comunicare con molti processi. Il link può essere bidirezionale o unidirezionale.
Memoria condivisa
La memoria condivisa è una memoria condivisa tra due o più processi che vengono stabiliti utilizzando la memoria condivisa tra tutti i processi. Questo tipo di memoria richiede di essere protetta l'una dall'altra sincronizzando l'accesso tra tutti i processi.
FIFO
Comunicazione tra due processi non correlati. È un metodo full-duplex, il che significa che il primo processo può comunicare con il secondo processo e può anche accadere il contrario.
Perchè l'IPC?
Ecco i motivi per utilizzare il protocollo di comunicazione interprocesso per la condivisione delle informazioni:
- Aiuta ad accelerare la modularità
- computazionale
- Separazione dei privilegi
- Convenienza
- Aiuta i sistemi operativi a comunicare tra loro e a sincronizzare le loro azioni.
Termini utilizzati nell'IPC
Di seguito sono riportati alcuni termini importanti utilizzati nell'IPC:
Semaphores: Un semaforo è una tecnica di meccanismo di segnalazione. Questo metodo del sistema operativo consente o impedisce l'accesso alla risorsa, a seconda di come è impostata.
Signals: È un metodo per comunicare tra più processi tramite segnalazione. Il processo di origine invierà un segnale riconosciuto da un numero e il processo di destinazione lo gestirà.
Suggerimento di lettura: - Che cos'è la Semaphore? Tipi binari e di conteggio con esempio
Cos'è come FIFOS e cosa è diverso da FIFOS
Come FIFO | A differenza del FIFOS |
---|---|
Segue il metodo FIFO | Metodo per estrarre messaggi urgenti specifici prima che raggiungano la parte anteriore |
FIFO esiste indipendentemente dai processi di invio e di ricezione. | Sempre pronto, quindi non è necessario aprire o chiudere. |
Consente il trasferimento di dati tra processi non correlati. | Non ci sono problemi di sincronizzazione tra apertura e chiusura. |
Sommario
- Definizione: La comunicazione tra processi viene utilizzata per lo scambio di dati tra più thread in uno o più processi o programmi.
- Pipe è ampiamente utilizzato per la comunicazione tra due processi correlati.
- Lo scambio di messaggi è un meccanismo che consente a un processo di comunicare e sincronizzarsi.
- Una coda di messaggi è un elenco collegato di messaggi archiviati nel kernel
- Il processo diretto è un tipo di processo di comunicazione tra processi, dovrebbero nominarsi reciprocamente in modo esplicito.
- La comunicazione indiretta si instaura solo quando i processi condividono una casella di posta comune; ogni coppia di processi condivide più collegamenti di comunicazione.
- La memoria condivisa è una memoria condivisa tra due o più processi stabilita utilizzando la memoria condivisa tra tutti i processi.
- Il metodo Inter Process Communication aiuta ad accelerare la modularità.
- Un semaforo è una tecnica di meccanismo di segnalazione.
- Signaling è un metodo per comunicare tra più processi tramite segnalazione.
- Come FIFO segue il metodo FIFO mentre a differenza di FIFO utilizza il metodo per estrarre messaggi urgenti specifici prima che raggiungano la parte anteriore.