Komunikasi Proses Dalam Sistem
Cara
lain untuk meningkatkan efek yang sama adalah untuk sistem operasi
yaitu untuk menyediakan alat-alat proses kooperatif untuk berkomunikasi
dengan yang lain lewat sebuah komunikasi dalam proses (IPC =
Inter-Process Communication). IPC menyediakan sebuah mekanisme untuk
mengizinkan proses-proses untuk berkomunikasi dan menyelaraskan
aksi-aksi mereka tanpa berbagi ruang alamat yang sama. IPC adalah khusus
digunakan dalam sebuah lingkungan yang terdistribusi dimana proses
komunikasi tersebut mungkin saja tetap ada dalam komputer-komputer yang
berbeda yang tersambung
dalam
sebuah jaringan. IPC adalah penyedia layanan terbaik dengan menggnakan
sebuah sistem penyampaian pesan, dan sistem-sistem pesan dapat diberikan
dalam banyak cara.
1. Sistem Penyampaian Pesan
Fungsi
dari sebuah sistem pesan adalah untuk memperbolehkan komunikasi satu
dengan yang lain tanpa perlu menggunakan pembagian data. Sebuah
fasilitas IPC menyediakan paling sedikit dua operasi yaitu kirim (pesan)
dan terima (pesan). Pesan dikirim dengan sebuah proses yang dapat
dilakukan pada ukuran pasti atau variabel. Jika hanya pesan dengan
ukuran pasti dapat dikirimkan, level sistem implementasi adalah sistem
yang sederhana. Pesan berukuran variabel menyediakan sistem implementasi
level yang lebih kompleks.
Berikut ini ada beberapa metode untuk mengimplementasikan sebuah jaringan dan operasi pengiriman/penerimaan secara logika:
· Komunikasi langsung atau tidak langsung.
· Komunikasi secara simetris/ asimetris.
· Buffer otomatis atau eksplisit.
· engiriman berdasarkan salinan atau referensi.
· Pesan berukuran pasti dan variabel.
2. Komunikasi Langsung
Proses-proses
yang ingin dikomunikasikan harus memiliki sebuah cara untuk memilih
satu dengan yang lain. Mereka dapat menggunakan komunikasi langsung/
tidak langsung.
Setiap
proses yang ingin berkomunikasi harus memiliki nama yang bersifat
eksplisit baik penerimaan atau pengirim dari komunikasi tersebut. Dalam
konteks ini, pengiriman dan penerimaan pesan secara primitive dapat
dijabarkan sebagai:
· Send (P, message) - mengirim sebuah pesan ke proses P.
· Receive (Q, message) - menerima sebuah pesan dari proses Q.
Sebuah jaringan komunikasi pada bahasan ini memiliki beberapa sifat, yaitu:
· Sebuah
jaringan yang didirikan secara otomatis diantara setiap pasang dari
proses yang ingin dikomunikasikan. Proses tersebut harus mengetahui
identitas dari semua yang ingin dikomunikasikan.
· Sebuah jaringan adalah terdiri dari penggabungan dua proses.
· Diantara setiap pesan dari proses terdapat tepat sebuah jaringan.
Pembahasan
ini memperlihatkan sebuah cara simetris dalam pemberian alamat. Oleh
karena itu, baik keduanya yaitu pengirim dan penerima proses harus
memberi nama bagi yang lain untuk berkomunikasi, hanya pengirim yang
memberikan nama bagi penerima sedangkan penerima tidak menyediakan nama
bagi pengirim. Dalam konteks ini, pengirim dan penerima secara sederhana
dapat dijabarkan sebagai:
· Send (P, message) - mengirim sebuah pesan kepada proses P.
· Receive (id, message) - menerima sebuah pesan dari semua proses. Variabel id diatur sebagai nama dari proses dengan komunikasi.
3. Komunikasi Tidak Langsung
Dengan komunikasi tidak langsung, pesan akan dikirimkan pada dan diterima dari/ melalui mailbox(kotak surat) atau terminal-terminal, sebuah mailbox dapat
dilihat secara abstrak sebagai sebuah objek didalam setiap pesan yang
dapat ditempatkan dari proses dan dari setiap pesan yang bias
dipindahkan. Setiap kotak surat
memiliki sebuah identifikasi (identitas) yang unik, sebuah proses dapat
berkomunikasi dengan beberapa proses lain melalui sebuah nomor dari mailbox yang berbeda. Dua proses dapat saling berkomunikasi apabila kedua proses tersebut sharing mailbox. Pengirim dan penerima dapat dijabarkan
sebagai:
· Send (A, message) - mengirim pesan ke mailbox A.
· Receive (A, message) - menerima pesan dari mailbox A.
Dalam masalah ini, link komunikasi mempunyai sifat sebagai berikut:
• Sebuah link dibangun diantara sepasang proses dimana kedua proses tersebut membagi mailbox.
· Sebuah link mungkin dapat berasosiasi dengan lebih dari dua proses.
· Diantara setiap pasang proses komunikasi, mungkin terdapat link yang berbeda-beda, dimana setiap link berhubungan pada satu mailbox.
Misalkan terdapat proses P1, P2 dan P3 yang semuanya share mailbox.
Proses P1 mengirim pesan ke A, ketika P2 dan P3 masing-masing
mengeksekusi sebuah kiriman dari A. Proses mana yang akan menerima pesan
yang dikirim P1? Jawabannya tergantung dari jalur yang kita pilih:
· Mengizinkan sebuah link berasosiasi dengan paling banyak 2 proses.
· Mengizinkan paling banyak satu proses pada suatu waktu untuk mengeksekusi hasil kiriman (receive operation).
· Mengizinkan
sistem untuk memilih secara mutlak proses mana yang akan menerima pesan
(apakah itu P2 atau P3 tetapi tidak keduanya, tidak akan menerima
pesan). Sistem mungkin mengidentifikasi penerima kepada pengirim.
Mailbox mungkin dapat dimiliki oleh sebuah proses atau sistem operasi. Jika mailbox dimiliki oleh proses, maka kita mendefinisikan antara pemilik (yang hanya dapat menerima pesan melalui mailbox) dan pengguna dari mailbox (yang hanya dapat mengirim pesan ke mailbox). Selama setiap mailbox mempunyai kepemilikan yang unik, maka tidak akan ada kebingungan tentang siapa yang harus menerima pesan dari mailbox. Ketika proses yang memiliki mailbox tersebut diterminasi, mailbox akan hilang. Semua proses yang mengirim pesan ke mailbox ini diberi pesan bahwa mailbox tersebut tidak lagi ada.
Dengan kata lain, mempunyai mailbox sendiri
yang independent, dan tidak melibatkan proses yang lain. Maka sistem
operasi harus memiliki mekanisme yang mengizinkan proses untuk melakukan
hal-hal dibawah ini:
· Membuat mailbox baru.
· Mengirim dan menerima pesan melalui mailbox.
· Menghapus mailbox.
Proses yang membuat mailbox pertama kali secara default akan memiliki mailbox tersebut. Untuk pertama kali, pemilik adalah satu-satunya proses yang dapat menerima pesan melalui mailbox ini. Bagaimana pun, kepemilikan dan hak menerima pesan mungkin dapat dialihkan ke proses lain melalui sistem pemanggilan.
4. Sinkronisasi
Komunikasi
antara proses membutuhkan place by calls untuk mengirim dan menerima
data primitive. Terdapat rancangan yang berbeda-beda dalam implementasi
setiap primitive. Pengiriman pesan mungkin dapat diblok (blocking) atau tidak dapat dibloking (nonblocking) - juga dikenal dengan nama sinkron atau asinkron.
· Pengiriman yang diblok: Proses pengiriman di blok sampai pesan diterima oleh proses penerima (receiving process) atau oleh mailbox.
· Pengiriman yang tidak diblok: Proses pengiriman pesan dan mengkalkulasi operasi.
· Penerimaan yang diblok: Penerima mem blok samapai pesan tersedia.
· Penerimaan yang tidak diblok: Penerima mengembalikan pesan valid atau null.
5. Buffering
Baik
komunikasi itu langsung atau tak langsung, penukaran pesan oleh proses
memerlukan antrian sementara. Pada dasarnya, terdapat tiga jalan dimana
antrian tersebut diimplementasikan:
· Kapasitas nol: antrian mempunyai panjang maksimum 0, maka link tidak dapat mempunyai penungguan pesan (message waiting). Dalam kasus ini, pengirim harus memblok sampai penerima menerima pesan.
· Kapasitas
terbatas: antrian mempunyai panjang yang telah ditentukan, paling
banyak n pesan dapat dimasukkan. Jika antrian tidak penuh ketika pesan
dikirimkan, pesan yang baru akan menimpa, dan pengirim pengirim dapat
melanjutkan eksekusi tanpa menunggu. Link mempunyai kapasitas terbatas.
· Jika link penuh, pengirim harus memblok sampai terdapat ruang pada antrian.
· Kapasitas
tak terbatas: antrian mempunyai panjang yang tak terhingga, maka, semua
pesan dapat menunggu disini. Pengirim tidak akan pernah di blok.
0 komentar:
Posting Komentar
Silahkan Tinggalkan Komentar Anda di Sini, dan di Harapkan Berkomentar Dengan Bahasa Yang Baku dan Sopan, Demi Kenyamanan Bersama Terimakasih.