Lompat ke isi

Komunikasi antar proses: Perbedaan antara revisi

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Konten dihapus Konten ditambahkan
Thijs!bot (bicara | kontrib)
k →‎Pranala luar: clean up
 
(16 revisi perantara oleh 14 pengguna tidak ditampilkan)
Baris 1: Baris 1:
{{rapikan|topik=teknologi informasi}}
{{rapikan|topik=teknologi informasi}}

'''Inter-Process Communication''' (IPC) atau '''Komunikasi antar proses''' adalah cara atau 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)]].
'''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|File]]
| [[Berkas komputer|Berkas]]
| Sebuah berkas yang disimpan pada disk, atau disintesis oleh peladen berkas sesuai permintaan. Dapat diakses oleh beberapa proses.
| Semua sistem operasi mendukung metode ini
| Hampir semua sistem operasi
|-
|-
| [[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.
| Semua sistem operasi
| 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.
| Semua sistem operasi yang mendukung standar POSIX
|-
|-
| [[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]]
|-
|-
|}
|}


== Implementasi ==
{{komputer-stub}}
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 (protocol)|SOAP]]
* [[Thrift (protocol)|Thrift]]
* [[TIPC]]
* [[ZeroC]] [[Internet Communications Engine]] (ICE)

== Pranala luar ==
* [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]]



[[cs:Meziprocesová komunikace]]
{{komputer-stub}}
[[de:Interprozesskommunikation]]
[[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


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:

Pranala luar

[sunting | sunting sumber]