Komunikasi antar proses: Perbedaan antara revisi
k bot Menambah: el:Διαδιεργασιακή επικοινωνία |
k →Pranala luar: clean up |
||
(11 revisi perantara oleh 9 pengguna tidak ditampilkan) | |||
Baris 1: | Baris 1: | ||
{{rapikan|topik=teknologi informasi}} |
{{rapikan|topik=teknologi informasi}} |
||
''' |
'''Komunikasi antarproses''' (bahasa Inggris: '''''Inter-Process Communication''''', biasa disebut IPC) adalah mekanisme pertukaran data antara satu [[Proses (komputer)|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 [[UNIX Socket|Socket dalam sistem operasi keluarga UNIX]], [[RISC OS|message dalam sistem operasi RISC OS]], [[Port (Mach)|port]] dalam [[sistem operasi]] [[Mach Kernel|Mach]], [[Named Pipe]] dalam [[OS/2]], [[Dynamic Data Exchange|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|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]]. |
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 == |
|||
Beberapa jenis IPC yang disediakan oleh sistem operasi dapat disatukan dalam tabel berikut |
|||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Metode |
! Metode |
||
! Penjelasan Singkat |
|||
! Sistem Operasi/Lingkungan |
! Sistem Operasi/Lingkungan |
||
|- |
|- |
||
| [[Berkas| |
| [[Berkas komputer|Berkas]] |
||
| Sebuah berkas yang disimpan pada disk, atau disintesis oleh peladen berkas sesuai permintaan. Dapat diakses oleh beberapa proses. |
|||
⚫ | |||
⚫ | |||
|- |
|- |
||
| [[Sinyal (komunikasi antar proses)|Sinyal]] |
|||
| [[Signal]] |
|||
| 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 jaringan komputer|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. |
|||
⚫ | |||
|- |
|- |
||
| [[Pipe]] |
| [[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]] |
| Semua sistem operasi yang mendukung standar [[POSIX]] |
||
|- |
|- |
||
| [[Named pipe]] |
| [[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]] |
| Semua sistem operasi yang mendukung standar [[POSIX]] |
||
|- |
|- |
||
| [[Shared memory]] |
| [[Shared memory]] |
||
| Beberapa proces diberi akses pada blok [[Memori (komputer)|memori]] yang sama, tempat sebuah bufer terletak bersama untuk proses-proses berkomunisaki satu sama lain. |
|||
| Semua sistem operasi yang mendukung standar [[POSIX]] |
| Semua sistem operasi yang mendukung standar [[POSIX]] |
||
|- |
|- |
||
| [[Message passing]] |
| [[Message passing]] |
||
| Memungkinkan beberapa program untuk berkomunikasi menggunakan ''message queue'' dan/atau saluran yang tidak diatur sistem operasi. |
|||
| Digunakan dalam paradigma [[Message Passing Interface|Message Passing Interface (MPI)]], [[Java RMI]], [[CORBA]], atau lainnya |
| Digunakan dalam paradigma [[Message Passing Interface|Message Passing Interface (MPI)]], [[Java RMI]], [[CORBA]], atau lainnya |
||
|- |
|- |
||
| [[Memory map]] |
| [[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. |
| Semua sistem operasi yang mendukung standar POSIX; Mungkin dapat menyebabkan kondisi kompetisi (''race condition'') jika sebuah berkas sementara (''temporary file'') digunakan. |
||
|- |
|- |
||
| [[Message queue]] |
| [[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 |
| Kebanyakan sistem operasi |
||
|- |
|- |
||
| [[Mailbox]] |
| [[Mailbox]] |
||
| |
|||
| Beberapa sistem operasi |
| Beberapa sistem operasi |
||
|- |
|- |
||
| [[Mailslot]] |
| [[Mailslot]] |
||
| |
|||
| [[Windows NT]], [[IBM OS/2]] |
| [[Windows NT]], [[IBM OS/2]] |
||
|- |
|- |
||
Baris 43: | Baris 64: | ||
== Implementasi == |
== Implementasi == |
||
Ada beberapa |
Ada beberapa [[antarmuka pemrograman aplikasi]] yang memungkinkan untuk digunakan untuk IPC. Beberapa platform yang tidak tergantung antarmuka tersebut termasuk berikut ini: |
||
* [[Anonymous pipe]] dan [[ |
* [[Anonymous pipe]] dan [[Named pipe]] |
||
* [[Common Object Request Broker Architecture]] (CORBA) |
* [[Common Object Request Broker Architecture]] (CORBA) |
||
* [[Freedesktop.org]] [[D-Bus]] |
* [[Freedesktop.org]] [[D-Bus]] |
||
Baris 59: | Baris 80: | ||
== Pranala luar == |
== Pranala luar == |
||
* [http://www.freedesktop.org/wiki/Software/dbus |
* [http://www.freedesktop.org/wiki/Software/dbus Situs resmi] [[D-Bus]] |
||
⚫ | |||
[[Kategori:Teknologi sistem operasi]] |
[[Kategori:Teknologi sistem operasi]] |
||
[[Kategori:Komputasi terdistribusi]] |
[[Kategori:Komputasi terdistribusi]] |
||
[[Kategori:Istilah teknologi informasi dalam bahasa Inggris]] |
|||
[[ca:Comunicació entre processos]] |
|||
⚫ | |||
[[cs:Meziprocesová komunikace]] |
|||
[[de:Interprozesskommunikation]] |
|||
[[el:Διαδιεργασιακή επικοινωνία]] |
|||
[[en:Inter-process communication]] |
|||
[[es:Comunicación entre procesos]] |
|||
[[fi:Prosessien välinen kommunikaatio]] |
|||
[[fr:Communication inter-processus]] |
|||
[[it:Comunicazione tra processi]] |
|||
[[ja:プロセス間通信]] |
|||
[[ko:프로세스 간 통신]] |
|||
[[nl:Interprocescommunicatie]] |
|||
[[pl:Komunikacja międzyprocesowa]] |
|||
[[pt:Comunicação entre processos]] |
|||
[[ru:Межпроцессное взаимодействие]] |
|||
[[sh:Međuprocesna komunikacija]] |
|||
[[sk:Komunikácia medzi procesmi]] |
|||
[[sr:Међупроцесна комуникација]] |
|||
[[sv:Interprocesskommunikation]] |
|||
[[uk:Взаємодія між процесами]] |
|||
[[zh:行程間通訊]] |
Revisi terkini sejak 5 Januari 2023 20.23
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]