Comunicazione tra processi
Da Wikipedia, l'enciclopedia libera.
L'espressione comunicazione tra processi (in inglese Inter-Process Communication o IPC) si riferisce a tutte quelle tecnologie software il cui scopo è consentire a diversi processi di comunicare tra loro scambiandosi dati e informazioni. I processi possono risiedere sullo stesso computer o essere distribuiti su una rete. Tutti i sistemi operativi multitasking forniscono qualche meccanismo fondamentale di IPC; altri meccanismi più sofisticati o orientati a particolari tipi di sistemi software possono essere forniti da tecnologie middleware, linguaggi di programmazione o a livello applicativo, basandosi sui meccanismi forniti dal sistema operativo.
Nel caso specifico di processi distribuiti, i meccanismi di comunicazione fra processi sono in effetti protocolli di rete. Si deve notare, tuttavia, che non tutti i protocolli di rete sono meccanismi di IPC; ai livelli bassi della gerarchia ISO OSI, infatti, il concetto di processo non compare, e i protocolli si limitano a farsi carico del trasferimento di dati fra computer. L'esempio forse più noto di protocollo di rete per lo scambio di informazioni fra processi è TCP; per un esempio di IPC a livello di linguaggio di programmazione si pensi a RMI di Java. Di norma, i meccanismi di IPC per processi distribuiti permettono la comunicazione anche fra processi residenti sulla stessa macchina.
Altri esempi vari di meccanismi utilizzabili per l'IPC includono i socket Unix, le porte del Kernel Mach, il middleware CORBA, e la tecnologia Component Object Model di Microsoft.
In senso lato si può intendere come meccanismo di comunicazione fra processi anche la semplice clipboard che consente a un utente di copiare e incollare informazioni da una finestra a un altra, o l'uso di file, che un processo scrive e un altro legge; tuttavia, si parla di IPC in senso stretto solo per quei meccanismi che possono essere usati dal software senza intervento manuale umano e che non memorizzano i dati su memorie di massa.
Tabella (non esaustiva) di tecnologie e paradigmi di IPC:
Metodo | Sistemi operativi o altri ambienti in cui è disponibile |
---|---|
Segnale | Tutti i sistemi POSIX |
Pipe anonima | Tutti i sistemi POSIX e Microsoft Windows |
Pipe con nome | Tutti i sistemi POSIX e Microsoft Windows |
Scambio di messaggi (nessuna condivisione) |
Viene usata nel paradigma MPI, nell'RMI di Java, in CORBA e altri |
Memoria condivisa o File mappato in memoria (MMF) |
Tutti i sistemi POSIX e Microsoft Windows |
Coda di messaggi | Molti sistemi operativi |
Chiamata di procedura remota (RPC) | Molti sistemi operativi |
Mailbox | Molti sistemi operativi |
Socket | Tutti i sistemi operativi con supporto di rete |
[modifica] Bibliografia
- Architettura dei Sistemi di Elaborazione, volume 1 (F. Baiardi, A. Tomasi e Marco Vanneschi, 1988, Franco Angeli Edizioni, ISBN 882042746X). Fondamenti, firmware, architetture parallele . [1]
- Architettura dei Sistemi di Elaborazione, volume 2 (F. Baiardi, A. Tomasi, Marco Vanneschi, 1987, Franco Angeli Edizioni, ISBN 882042746X) Sistemi operativi, multiprocessore e distribuiti. [2]
[modifica] Collegamenti esterni
Questa voce si basa su materiale disponibile sul Free On-line Dictionary of Computing e il suo utilizzo è regolamentato dalla licenza GFDL.