IPC (Inter-Process Communication) adalah komunikasi antar proses untuk mengirim data dari satu proses ke proses yang lain, baik antar proses dalam satu komputer maupun proses-proses dalam komputer yang berbeda. IPC dapat dilakukan dengan berbagai cara yaitu Shared memory, Pipe, Messages passing, dan sebagainya. Berikut penjelasan mengenai cara-cara tersebut.
1. Shared memory
Sistem Berbagi Memori atau yang disebut juga sebagai Shared Memory System merupakan salah satu cara komunikasi antar proses dengan cara mengalokasikan suatu alamat memori untuk dipakai berkomunikasi antar proses. Alamat dan besar alokasi memori yang digunakan biasanya ditentukan oleh pembuat program. Pada metode ini, sistem akan mengatur proses mana yang akan memakai memori pada waktu tertentu sehingga pekerjaan dapat dilakukan secara efektif.
2. Pipe
Pipe merupakan komunikasi sequensial antar proses yang saling terelasi, namun pipe memiliki kelemahan yaitu hanya bisa digunakan untuk komunikasi antar proses yang saling berhubungan, dan komunikasinya yang dilakukan adalah secara sequensial. Urutan informasi yang ada dalam sebuah pipe ada yang mirip dengan antrian queue. Jika komunikasi yang diinginkan adalah komunikasi dua arah maka kita harus membuat dua pipe, karena sebuah pipe hanya bisa digunakan untuk komunikasi satu arah saja.
3. Messages passing
Sistem berkirim pesan adalah proses komunikasi antar bagian sistem untuk membagi variabel yang dibutuhkan. Proses ini menyediakan dua operasi yaitu mengirim pesan dan menerima pesan. Ketika dua bagian sistem ingin berkomunikasi satu sama lain, yang harus dilakukan pertama kali adalah membuat sebuah link komunikasi antara keduanya. Setelah itu, kedua bagian itu dapat saling bertukar pesan melalui link komunikasi tersebut. Sistem berkirim pesan sangat penting dalam sistem operasi. Karena dapat diimplementasikan dalam banyak hal seperti pembagian memori, pembagian bus, dan melaksanakan proses yang membutuhkan pengerjaan bersama antara beberapa bagian sistem operasi.
Terdapat dua macam cara berkomunikasi antar proses, yaitu:
- Komunikasi langsung
- Komunikasi tidak langsung
Application Programming Interface
API adalah sebuah gabungan perintah dan urutan yang bisa digunakan pengembang software untuk mendesain games atau aplikasi.
API menyediakan bahan yang biasa diolah seperti perintah dasar, contohnya membuat windows atau tombol. Selain itu, API juga biasa digunakan untuk perintah lanjutan, misalnya mengaplikasikan bentuk timbul dalam sebuah poligon.
Keuntungan memprogram dengan menggunakan API adalah:
· Portabilitas. Programmer yang menggunakan API dapat menjalankan programnya dalam sistem operasi mana saja asalkan sudah ter- install API tersebut. Sedangkan system call berbeda antar sistem operasi, dengan catatan dalam implementasinya mungkin saja berbeda.
· Lebih Mudah Dimengerti. API menggunakan bahasa yang lebih terstruktur dan mudah dimengerti daripada bahasa system call. Hal ini sangat penting dalam hal editing dan pengembangan.
Ada tiga jenis Bahasa Pemrograman Java Application Programming Interface (API):
· inti resmi Java API, yang terdapat dalam JDK atau JRE, dari salah satu edisi dari Java Platform. Tiga edisi dari Java Platform adalah Java ME (Micro edition), Java SE (Standard edition), dan Java EE (Enterprise edition).
· Resmi opsional API yang dapat didownload secara terpisah. Spesifikasi API ini didefinisikan sesuai dengan Spesifikasi Jawa Request (JSR), dan kadang-kadang beberapa API ini kemudian dimasukkan dalam API inti dari platform (contoh yang paling terkenal dari jenis ini adalah swing).
· API tidak resmi, yang dikembangkan oleh pihak ketiga, tetapi tidak berkaitan dengan JSRs apapun.
Multicast communication
multicast merupakan transmisi yang dimaksudkan untuk banyak tujuan, tetapi tidak harus semua host. Oleh karena itu, multicast dikenal sebagai metode tranmisi one to many (satu kebanyak). Multicast digunakan dalam kasus-kasus tertentu, misalnya ketika sekelompok computer perlu menerima transmisi tertentu.
Alamat IP Multicast (Multicast IP Address) adalah alamat yang digunakan untuk menyampaikan satu paket kepada banyak penerima. Dalam sebuah intranet yang memiliki alamat multicast IPv4, sebuah paket yang ditujukan ke sebuah alamat multicast akan diteruskan oleh router ke subjaringan di mana terdapat host-host yang sedang berada dalam kondisi “listening” terhadap lalu lintas jaringan yang dikirimkan ke alamat multicast tersebut. Dengan cara ini, alamat multicast pun menjadi cara yang efisien untuk mengirimkan paket data dari satu sumber ke beberapa tujuan untuk beberapa jenis komunikasi. Alamat multicast didefinisikan dalam RFC 1112.
Alamat-alamat multicast IPv4 didefinisikan dalam ruang alamat kelas D, yakni 224.0.0.0/4, yang berkisar dari 224.0.0.0 hingga 239.255.255.255. Prefiks alamat 224.0.0.0/24 (dari alamat 224.0.0.0 hingga 224.0.0.255) tidak dapat digunakan karena dicadangkan untuk digunakan oleh lalu lintas multicast dalam subnet lokal.
Protokol-protokol tertentu menggunakan range alamat khusus untuk multicast. Sebagai contoh, alamat ip dalam kelas D telah direservasi untuk keperluan multicast. Jika semua host perlu menerima data video, mereka akan menggunakan alamat ip multicast yang sama. Ketika mereka menerima paket yang ditujukan ke alamat tersebut, mereka akan memprosesnya. Ingatlah bahwa system masih tetapi memiliki alamt ip mereka sendiri-mereka juga mendengarkan alamat multicast mereka.
Salah satu contohnya adalah streaming audio atau video. Misalkan banyak computer ingin menerima transmisi video pada waktu yang bersamaan. Jika data tersebut dikirimkan ke setiap computer secara individu, maka diperlukan beberapa aliran data. Jika data tersebut dikirimkan sebagai broadcast, maka tidak perlu lagi proses untuk semua system. Dengan multicast data tersebut hanya dikirim sekali, tetapi diterima oleh banyak system.
Network Virtualization
Virtualisasi jaringan (Network virtualization) adalah sebuah metodemenggabungkan sumber daya yang tersedia dalam jaringan dengan caramembagi bandwidth yang tersedia ke dalam beberapa channel, yangmasing-masing saling independen satu dengan yang yang lain, dan masing-masing yang dapat ditugasi (atau dialih-tugaskan) ke dalam beberapaserver atau perangkat secara real time. Idenya adalah bahwa virtualisasimenyembunyikan kompleksitas jaringan dengan cara membagi jaringanmenjadi bagian-bagian lebih mudah dikelola, sangat mirip dengan konsepmempartisi harddisk untuk memudahkan untuk pengelolaan file.Bisa dibilang virtualisasi berfungsi untuk menyembunyikan kerumitan dari sebuah jaringan dengan membaginya ke dalam beberapa bagian yang lebih mudah untuk dikelola.
Contoh penggunaan IPC
File descriptor adalah sebuah kunci abstrak untuk mengakses sebuah file. Biasanya digunakan untuk sistem operasi POSIX. Dalam POSIX, file descriptor adalah integer, terdapat 3 nilai integer yang mendekripsikan file descriptor, 0 untuk standard input (stdin), 1 untuk standard output (stdout), 2 untuk standard error (stderr). Dalam Pipe, file descriptor digunakan sebagai standard input-output antar proses agar proses dapat berkomunikasi satu sama lain. File descriptor yang digunakan adalah array integer dengan 2 address, 0 untuk read (stdin) dan 1 untuk write (stdout).
Sumber :thegroupsofsix.wordpress.com