Proses-proses yang ingin dikomunikasikan harus memiliki sebuah cara untuk memilih satu dengan yang lain. Mereka dapat menggunakan komunikasi langsung/ tidak langsung.
a. Komunikasi 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:a. Komunikasi 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 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.
b. 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.
c. 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.
d. 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.
0 komentar
Posting Komentar