Komunikasi antar proses
artikel ini perlu dirapikan agar memenuhi standar Wikipedia. |
Komunikasi antarproses (bahasa Inggris: Inter-Process Communication, biasa disebut IPC) adalah mekanisme pertukaran data antara satu proses dengan proses lainnya, baik itu proses yang berada di dalam komputer yang sama, atau komputer jarak jauh yang terhubung melalui jaringan. IPC terdiri atas protokol yang menjamin sebuah respons dari sebuah permintaan. Contoh dari IPC adalah Socket dalam sistem operasi keluarga UNIX, message dalam sistem operasi RISC OS, port dalam sistem operasi Mach, Named Pipe dalam OS/2, Dynamic Data Exchange (DDE) dalam sistem operasi Windows, SPX dalam sistem operasi Novell, IAC dalam sistem operasi Apple Macintosh (khususnya AppleEvents) dan beberapa komponen perangkat lunak seperti CORBA atau Component Object Model (COM).
Meskipun IPC secara otomatis dilakukan oleh program, sebuah fungsi yang sama juga dapat dilakukan secara interaktif ketika pengguna melakukan operasi copy-cut-paste dari satu proses ke proses lainnya dengan menggunakan clipboard.
Pendekatan
[sunting | sunting sumber]Metode | Penjelasan Singkat | Sistem Operasi/Lingkungan |
---|---|---|
Berkas | Sebuah berkas yang disimpan pada disk, atau disintesis oleh peladen berkas sesuai permintaan. Dapat diakses oleh beberapa proses. | Hampir semua sistem operasi |
Sinyal | Sebuah pesan sistem yang dikirim dari suatu proses ke proses lain. Dapat digunakan sebagai metode sinkronisasi. Biasanya tidak digunakan untuk transfer data. | Hampir semua sistem operasi |
Socket | Aliran data yang dikirim melalui antarmuka jaringan, untuk proses yang berbeda pada komputer yang sama maupun pada komputer berbeda pada jaringan. Biasanya ber-orientasi byte. | Hampir semua sistem operasi |
UNIX domain socket | Mirip dengan Socket internet, tetapi seluruh komunikasi terjadi dalam kernel dan menggunakan sistem file sebagai alamat. | Semua sistem operasi yang mendukung standar POSIX |
Pipe | Sebuah saluran data satu arah. Data yang ditulis pada ujung tulis (write end) dari pipa dibufer oleh sistem operasi sampai data pada ujung baca (read end) dibaca. | Semua sistem operasi yang mendukung standar POSIX |
Named pipe | Sebuah pipe yang di-implementasi melalui sebuah file pada sistem file daripada melalui input dan output standard. Beberapa proses dapat membaca dan menulis file sebagai sebuah bufer untuk komunikasi antar proses. | Semua sistem operasi yang mendukung standar POSIX |
Shared memory | Beberapa proces diberi akses pada blok memori yang sama, tempat sebuah bufer terletak bersama untuk proses-proses berkomunisaki satu sama lain. | Semua sistem operasi yang mendukung standar POSIX |
Message passing | Memungkinkan beberapa program untuk berkomunikasi menggunakan message queue dan/atau saluran yang tidak diatur sistem operasi. | Digunakan dalam paradigma Message Passing Interface (MPI), Java RMI, CORBA, atau lainnya |
Memory map | Sebuah berkas yang dipetakan pada RAM dan dapat dimodifikasi dengan mengubah alamat-alamat memory secara langsung daripada mengeluarkan (output) ke aliran. | Semua sistem operasi yang mendukung standar POSIX; Mungkin dapat menyebabkan kondisi kompetisi (race condition) jika sebuah berkas sementara (temporary file) digunakan. |
Message queue | Aliran data mirip dengan socket, namun biasanya menjaga batas pesan (dalam maksud ukuran pesan dipatenkan sebelum pesan dikirim ke penampungan pesan dan proses yang menulis/membaca pesan layaknya berkomunikasi menggunakan suatu unit pesan). | Kebanyakan sistem operasi |
Mailbox | Beberapa sistem operasi | |
Mailslot | Windows NT, IBM OS/2 |
Implementasi
[sunting | sunting sumber]Ada beberapa antarmuka pemrograman aplikasi yang memungkinkan untuk digunakan untuk IPC. Beberapa platform yang tidak tergantung antarmuka tersebut termasuk berikut ini:
- Anonymous pipe dan Named pipe
- Common Object Request Broker Architecture (CORBA)
- Freedesktop.org D-Bus
- Distributed Computing Environment (DCE)
- Message Bus (MBUS) (dispesifikasikan di RFC 3259)
- Lightweight Communications and Marshalling (LCM)
- ONC RPC
- Unix domain socket
- XML XML-RPC atau SOAP
- Thrift
- TIPC
- ZeroC Internet Communications Engine (ICE)
Pranala luar
[sunting | sunting sumber]