Selasa, 16 Juni 2020

Semaphores, Shared Memory, and Message Queues


Inter Process Communication (IPC) adalah seperangkat teknik untuk pertukaran data di antara beberapa     thread dalam satu atau lebih proses. Proses tersebut dapat berjalan pada satu atau lebih komputer yang terhubung dengan jaringan. Teknik IPC dibagi menjadi metode message passing, synchronization, shared memory, dan remote procedure calls (RPC). IPC metode yang digunakan dapat bervariasi berdasarkan bandwidth dan latency komunikasi antara thread, dan jenis data yang dikomunikasikan.
Ada beberapa alasan untuk menyediakan lingkungan yang memungkinkan proses kerjasama:
* Information sharing
* Perhitungan percepatan
* Modularity
* Kenyamanan

a. Shared Memory:  memori yang dapat diakses secara bersamaan oleh beberapa program  dengan maksud untuk menyediakan komunikasi di antara mereka atau menghindari salinan yang berlebihan. Tergantung pada konteks, program dapat berjalan pada satu prosesor atau beberapa prosesor yang terpisah.
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.


b. Pipes: serangkaian proses  berantai oleh aliran standar, sehingga setiap proses output (stdout) feed secara langsung sebagai input (stdin) ke yang berikutnya. Masing-masing sambungan ini diimplementasikan oleh pipa anonim. Program filter sering digunakan dalam konfigurasi ini.
Sebuah pipa adalah teknik untuk melewati informasi dari salah satu program untuk proses lain. Tidak seperti bentuk komunikasi interprocess (IPC), sebuah pipa adalah satu-cara komunikasi saja. Pada dasarnya, sebuah pipa melewati parameter seperti output dari satu proses ke proses yang lain menerima sebagai masukan.

c. Message Queue:  merupakan metode dimana proses (atau program contoh) dapat bertukar data menggunakan atau melalui sebuah interface untuk sistem yang dikelola message queue. Sebuah pesan antrian dapat dibuat oleh satu proses dan digunakan oleh banyak proses yang membaca dan / atau menulis pesan ke antrian. Misalnya, server proses dapat membaca dan menulis pesan dari dan ke pesan antrian dibuat untuk klien proses. Jenis pesan dapat digunakan untuk menghubungkan pesan dengan klien tertentu proses meskipun semua pesan pada antrian yang sama.



d. Semaphore: sebuah variabel yang dilindungi atau tipe data abstrak yang merupakan metode klasik untuk membatasi akses ke sumber daya bersama seperti shared memory dalam suatu lingkungan pemrograman paralel.  Semaphore adalah solusi klasik untuk mencegah race condition pada dining philosopher problem, meskipun mereka tidak mencegah deadlock sumber daya.


 



Tidak ada komentar:

Posting Komentar