Dokumen tersebut membahas tentang komunikasi antar proses pada sistem terdistribusi dan paralel. Komunikasi antar proses dapat dilakukan menggunakan beberapa teknik seperti semaphore, shared memory, RPC, dan message passing.
1. Teknik Informatika ā Sistem Paralel dan Terdistribusi
UNIVERSITASNUSAPUTRA
KomunikasiAntar
Proses
2. Referensi
1. Distributed System : Concept and Design (George Coulouris,
Jean Dollimore, Tim Kindberg ā Addison ā Wesley)
2. Database System Concepts (Avi Silberschatz, Hendry F. Korth,
S. Sudarshan, McGraw Hill)
3. Operating System Concepts (Avi Silberschatz, Peter Baer
Galvin, Greg Gagne, John Wiley & Sons
4. Distributed System: Principles and Paradigms (Andrew S.
Tanenbaum & Maarten Van Steen ā Prentice Hall)
5. Adang Suhendra, Kuliah Sistem Terdistribusi 1 & 2,
6. Budi Susanto, Pengantar Sistem Terdistribusi,
7. Willy Sudiarto Raharjo, Pengantar Sistem Terdistribusi,
8. Modul Komunikasi Antar Proses Oleh Fadhil Ramdhan
3. Pendahuluan
ā¢ Sistem terdistribusi sangat bergantung pada pertukaran data dan sinkronisasi diantara proses otonom yang
terdistribusi.
ā¢ Komunikasi antar proses tersebut dikenal dengan nama IPC (Inter Proses Communication).
ā¢ IPC dapat dilakukan dengan menerapkan beberapa teknik berikut :
- Semaphore, suatu struktur data yang di share beberapa proses untuk operasi sinkronisasi pemakaian
sesumber secara bersama-sama
- Shared Memory, memungkinkan beberapa proses untuk membagi bersama virtual memory.
- RPC (Remote Procedure Call), memungkinkan sebuah proses client memanggil suatu subrutin beserta
parameternya berdasar interface yang disediakan oleh proses server
- Message Passing, komunikasi antar proses di dasarkan pada pertukaran suatu format message dengan
menggunakan suatu API tertentu.
4. Karakteristik IPC
ā¢ Pertukaran pesan antar sepasang proses dapat didukung dengan dua operasi komunikasi pesan : send dan
receive.
ā¢ Sebuah proses mengirimkan sebuah pesan (sederetan byte) ke tujuan dan proses lain pada tujuan
menerima pesan
ā¢ Pengiriman Pesan :
- send
expression_list to destination_designator expression_list di evaluasi
Menambahkan pesan baru ke destination_designator
- receive variable_list from source_designator
Menerima pesan ke variable_list
Menghapus pesan yang diterima
ā¢ Aktifitas IPC :
- Komunikasi data dari proses pengirim ke proses penerima
- Sinkronisasi antar sepasang proses tersebut
ā¢ Pada sisi penerima terdapat tumpukan antrian pesan
5. Karakteristik IPC
ā¢ Sinkronisasi
Diperlukan karena adanya perbedaan kecepatan eksekusi proses pada dua komputer yang
berbeda Diperlukan oleh suatu proses mempengaruhi komputasi di proses lainnya
ā¢ Komunikasi Synchronous
Proses pengirim dan penerima melakukan sinkronisasi untuk tiap pesan yang dipertukarkan.
Operasi send dan receive adalah operasi blocking.
ā¢ Komunikasi Asynchronous
Operasi send adalah operasi non-blocking, sedangkan operasi receive dapat blocking ataupun
non-blocking.
6. Karakteristik IPC
ā¢ Tujuan Pengiriman Pesan
- Pada protokol internet, pesan dikirim ke (alamat internet, port).
- Sebuah port dimiliki oleh 1 proses penerima, namun dapat memiliki beberapa proses
pengirim.
- Setiap proses yang mengetahui angka port, dapat mengirim pesan ke proses tersebut.
ā¢ Jika proses client menggunakan alamat Internet tetap untuk menunjuk sebuah layanan, maka
layanan yang diminta harus berada pada alamat tetap tersebut.
ā¢ Agar tidak selalu tertuju pada satu alamat tetap saja, maka dapat digunakan pedekatan berikut
untuk transparansi lokasi :
- Name service
- Location Independent Identifier
7. Socket dan Port
ā¢ Socket dikembangkan dari UNIX BSD, dan saat ini sudah ada pada seluruh UNIX (juga Linux), MS
Windows, Mac
ā¢ Socket :
- Menyediakan endpoint untuk komunikasi antar proses
- Untuk proses penerima pesan, socket harus di kaitkan dengan port lokal dan satu alamat
Internet komputer client
- Pesan yang dikirimkan ke suatu alamat Internet dan port tertentu hanya dapat diterima oleh
proses yang socketnya dikaitkan dengan alamat Internet dan port tersebut
- Proses mungkin menggunakan socket yang sama untuk pengiriman dan penerimaan
- Setiap komputer dapat memiliki 216 port.
- Sebuah proses dapat membuat beberapa socket untuk menerima pesan
ā¢ Port yang sama tidak dapat digunakan oleh dua proses yang berbeda (kecuali IP multicasting)
8. Socket dan Port
Nomor Port dibagi dalam 3 kelompok :
ā¢ Well known port, antara 0 ā 1023
ā¢ Registered Port , antara 1024 ā 49151
ā¢ Dynamic/Private Port, antara
9. Komunikasi Datagram UDP
ā¢ Mengirim datagram ke penerima
ā¢ Tidak memerlukan ACK atau pengiriman ulang
ā¢ Menggunakan socket
ā¢ Server menyediakan sebuah port untuk pengiriman
ā¢ Menerima pesan dan id pengirim (ip, port)
ā¢ Permasalahan pada UDP :
- Ukuran Pesan
Proses penerimaan perlu menyediakan sejumlah elemen array untuk menerima sebuah pesan. Jika
pesan terlalu besar akan dipotong sesuai ukuran array. Berdasar protokol IP, ukuran paket dapat sampai
64KB, namun biasanya max. 8 KB. Aplikasi yang membutuhkan pengiriman paket yang besar, harus
melakukan pemotongan.
- Blocking
Socket menyediakan non-blocking send dan blocking receive untuk komunikasi datagram.
- Timeout
Operasi block untuk receive sangat cocok untuk menunggu permintaan dari client. Namun sangat tidak
baik jika terus dalam kondisi blocking pada saat menunggu balasan, maka perlu timeout.
10. Komunikasi Datagram UDP
ā¢ Model Kegagalan
- Omission Failure
Pesan terkadang akan dibuang oleh karena buffer penuh atau ada kesalahan checksum.
- Ordering Failure
- Pesan yang dikirim terkadang tidak sesuai dengan permintaan.
Aplikasi yang menggunakan UDP harus menyediakan sendiri suatu kualitas komunikasi yang
diperlukan.
ā¢ Kapan menggunakan UDP?
- Jika service dapat menerima kondisi omission failure. Contoh: DNS
- Untuk mengurangi beban terhadap jaminan bahwa pesan harus terkirimkan dengan baik :
Tidak perlu menyimpan informasi status
Tidak perlu transmisi ulang
Tidak ada latency pada pengirim (Latency : perlambatan antara waktu awal transmisi pengirim dan
waktu bit pertama diterima oleh penerima.)
11. Java UDP
Java menyediakan :
ā¢ DatagramPacket.
Untuk memformat informasi menjadi sebuah paket datagram : pesan (array), panjang pesan, alamat
proses (IP, port)
ā¢ DatagramSocket
Untuk membentuk socket penghubung dengan proses lain. Beberapa method : send dan receive
setSoTimeout connect
12. Komunikasi Datagram TCP
ā¢ Byte stream
ā¢ Baca dan tulis ke stream
ā¢ Connection oriented
ā¢ Permasalahan pada UDP :
- Pencocokan Data.
Dua proses yang berkomunikasi harus sepakat tentang format dan tipe data yang dipertukarkan.
- Blocking.
Socket menyediakan blocking send dan blocking receive untuk komunikasi stream.
- Thread
Ketika server menerima sebuah koneksi, biasanya dibuatkan sebuah thread untuk melayani
koneksi tersebut, sehingga dapat melayani beberapa client, jika tidak ada thread, pada satu
waktu hanya 1 koneksi client yang dapat terlayani
13. Komunikasi Datagram TCP
ā¢ Model Kegagalan
- Untuk menyediakan komunikasi yang handal, TCP menggunakan checksum untuk pendeteksian
error dan sequence number untuk pendeteksian duplikasi data
- Untuk menyediakan validitas, TCP menggunakan timeout dan retransmisi terhadap data yang hilang
- Ketika hubungan terputus, proses yang menggunakan TCP akan diinformasikan hal tersebut, dengan
kelemahan :
Proses tidak dapat membedakan antara kegagalan pada jaringan dan kegagalan proses
pasangannya.
Proses komunikasi tidak dapat memberitahukan apakah pesan terakhir diterima atau tidak.
- Sehingga dengan TCP pun tidak menjamin kehandalan pengiriman data
ā¢ Kapan menggunakan TCP? Kebutuhan pengiriman paket data yang dinamis tanpa harus menyesuaikan
dengan ukuran paket TCP Jika memang dapat menerima operasi blocking
14. Java TCP
Java Menyediakan :
ā¢ Server Socket, menyatakan suatu koneksi TCP yang berfungsi untuk listen yang siap menerima suatu
permintaan dari proses lain
ā¢ Socket, membuat sebuah stream socket dan koneksi ke suatu nomor port pada sebuah komputer
16. Tugas 3
1. Jelaskan menurut pendapat masing-masing,
apa yang dimaksud dengan Komunikasi Antar
Proses ? Berikan contohnya.
2. Sebutkan perbedaan dari Komunikasi
Datagram UDP dan Komunikasi Datagram TCP
?
Dikumpulkan H-1 Pertemuan Berikutnya