Implementasi Interprocess Communication pada Windows 2000

Interprocces Comunication (IPC)

Interprocces Comunication (IPC) adalah mekanisme yang digunakan oleh program dan proses multi-user. IPC memungkinkan bersamaan menjalankan tugas untuk berkomunikasi di antara mereka pada komputer lokal atau antara komputer lokal dan komputer remote.

Mekanisme IPC digunakan untuk mendukung proses didistribusikan. Aplikasi yang membagi proses antara jaringan komputer disebut aplikasi terdistribusi. Bagian split aplikasi terdistribusi dapat terletak pada mesin yang sama atau pada mesin yang terpisah. Sebuah aplikasi client / server menggunakan didistribusikan pengolahan, di mana pengolahan dibagi antara workstation (klien) dan server yang lebih kuat. Bagian klien kadang-kadang disebut sebagai front end dan bagian server disebut sebagai back-end. Bagian klien aplikasi client / server dapat terdiri dari hanya user interface untuk aplikasi. Namun, aplikasi dapat dibagi di berbagai tempat dalam aplikasi terdistribusi. Ini berjalan pada workstation klien dan mengambil jumlah yang lebih rendah dari kekuatan pemrosesan. Sebagai contoh, bagian klien mungkin hanya menangani grafis layar, gerakan mouse, dan penekanan tombol.

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 2 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.

Jika dua buah proses ingin berkomonikasi, misalnya proses P dan proses Q, mereka harus mengirim pesan atau menirima pesan dari satu ke yang lainnya. Jalur ini dapat diimplentasikan dengan banyak cara, namun kita hanya akan memfokuskan pada implementasi logiknya saja, bukan implementasi fisik(seperti shared memory, hardware bus, atau jaringan).Berikut ini ada beberapa metode untuk mengimplementasikan sebuah jaringan dan operasi pengiriman / penerimaan secara logika :

  1. Komunikasi langsung atau tidak langsung.
  2. Komunikasi secara simetris / asimetris.
  3. Buffer otomatis atau eksplisit.
  4. Pengiriman berdasarkan salinan atau referensi.
  5. Pesan berukuran pasti dan variabel.

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 :

  1. Send (P, message) – mengirim sebuah pesan ke proses P.
  2. Receive (Q, message) – menerima sebuah pesan dari proses Q.

Sebuah jaringan komunikasi pada bahasan ini memiliki beberapa sifat, yaitu :

  1. Sebuah jaringan yang didirikan secara otomatis diantara setiap pasang dari proses yang ingin dikomunikasikan. Proses tersebut harus mengetahui identitas dari semua yang ingin dikomunikasikan.
  2. Sebuah jaringan adalah terdiri dari penggabungan 2 proses.
  3. 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 :

  1. Send (P, message) – mengirim sebuah pesan kepada proses P.
  2. Receive (id, message) – menerima sebuah pesan dari semua proses. Variabel id diatur sebagai nama dari proses dengan komunikasi.

Kerugian dari kedua cara yang disebutkan diatas adalah adanya kebatasan modularitas, merubah nama proses mungkin mengharuskan kita untuk merubah semua definisi proses yang lain. Semua referensi kepada nama yang lama harus ditemukan.

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 setipap 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 :

  1. Send (A, message) – mengirim pesan ke mailbox A.
  2. Receive (A, message) – menerima pesan dari mailbox A.

Dalam masalah ini, link komunikasi mempunyai sifat sebagai berikut :

  1. Sebuah link dibangun diantara sepasang proses dimana kedua proses tersebut membagi mailbox.
  2. Sebuah link mungkin dapat berasosiasi dengan lebih dari 2 proses.
  3. 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 :

  1. Mengijinkan sebuah link berasosiasi dengan paling banyak 2 proses.
  2. Mengijinkan paling banyak 1 proses pada suatu waktu untuk mengeksekusi hasil kiriman (receive operation).
  3. Mengijinkan 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.

Sinkronisasi

Komunikasi antara proses membutuhkan place by calls untuk mengirim dan menerima data primitive. Terdapat design 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.

  1. Pengiriman yang diblok : Proses pengiriman di blok sampai pesan diterima oleh proses penerima (receiving process) atau oleh mailbox.
  2. Pengiriman yang tidak diblok : Proses pengiriman pesan dan mengkalkulasi operasi.
  3. Penerimaan yang diblok : Penerima mem blok samapai pesan tersedia.
  4. Penerimaan yang tidak diblok : Penerima mengembalikan pesan valid atau null.

Buffering

Baik komunikasi itu langsung atau tak langsung, penukaran pesan oleh proses memerlukan antrian sementara. Pada dasarnya, terdapat tiga jalan dimana antrian tersebut diimplementasikan :

  1. 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.
  2. 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.
  3. Kapasitas tak terbatas: antrian mempunyai panjang yang tak terhingga, maka, semua pesan dapat menunggu disini. Pengirim tidak akan pernah di blok.

Implementasi Interprocess Communication dalam sistem operasi Windows 2000
            Common Internet File System adalah cara standar pada komputer untuk berbagi file di intranet pada perusahaan, dan Internet. CIFS adalah protokol file sharing asli di Windows 2000.

CIFS mendefinisikan serangkaian perintah yang digunakan untuk menyampaikan informasi antar jaringan komputer. Redirector packages requests bertujuan untuk meremote komputer dalam struktur CIFS. CIFS dapat dikirim melalui jaringan ke perangkat remote. Redirector juga menggunakan CIFS untuk membuat permintaan ke protokol computer secara lokal. Pesan CIFS dapat secara luas diklasifikasikan sebagai berikut:

  1. Connection establishment messages terdiri dari perintah yang memulai dan mengakhiri sambungan redirector ke sumber daya bersama pada server.
  2. Name space and File Manipulation messages yang digunakan oleh redirector untuk mendapatkan akses ke file pada server dan untuk membaca dan menulis mereka.
  3. Printer messages digunakan oleh redirector untuk mengirim data ke antrian cetak pada printer di server dan untuk mendapatkan informasi status tentang antrian cetak pada printer.
  4. Miscellaneous messages digunakan oleh redirector untuk menulis ke Mailslots dan bernama pipes.

Anggota Kelompok:

  • Abdul Aziz Priatna (1307123)
  • Harvi Gusnanda (1301780)
  • Hazmi Ramadhan Adli (1301478)
  • Irfan Haydar Rachman (1301919)

Referensi :

http://opensource.telkomspeedy.com/repo/abba/v06/Kuliah/SistemOperasi/2003/43/produk/SistemOperasi.html

https://technet.microsoft.com/en-us/library/cc961387.aspx#mainSection

Leave a Reply

Your email address will not be published. Required fields are marked *