KONSEP INTERAKSI
Adrianus W. K. 120400005X Aziz Yudi Prasetyo 1204000173 Gregorio Cybill 1204000386 (c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
JENIS PROSES
Proses yang berjalan bersamaan terbagi menjadi 2 macam: 1. 2.
Proses yang independen Proses yang kooperatif
Proses yang banyak dijelaskan pada bab ini adalah proses yang kooperatif
(c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
PROSES YANG KOOPERATIF Tujuan dari kerja sama antar proses:
1. 2. 3. 4.
Mampu berbagi data Mempercepat proses komputasi Modularitas Kenyamanan
Ada 2 model yg umum dipakai pada proses kooperatif yaitu:
1. 2.
Shared Memory Message Passing
(c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
KEUNTUNGAN KERUGIAN Shared Memory
Message Passing
Keuntungan Mudah berbagi data ber-size kecil
Cepat dalam berbagi data
Mudah diimplementasikan Kerugian Lebih lambat dalam berbagi data
Data mudah konflik karena ada bagian memori yang dishare
(c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
SHARED MEMORY
Shared memory dapat dianalogikan seperti producer-consumer
(c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
MESSAGE PASSING Message passing memiliki 2 operasi utama yaitu:
1. 2.
send(message) receive(message)
Beberapa fitur yang digunakan dalam model ini:
1. 2. 3.
Komunikasi langsung dan tak langsung Synchronization Buffering
(c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
KOMUNIKASI PROSES Terdiri atas dua jenis: Komunikasi Langsung (Direct) Dua proses berkomunikasi secara langsung. Satu link terdiri atas hanya dua proses.
Komunikasi Tak Langsung (Indirect) Bisa lebih dari dua proses berkomunikasi. Menggunakan mailbox untuk komunikasi
(c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
KOMUNIKASI LANGSUNG
Tepat dua proses saling berkomunikasi Satu link hanya untuk dua proses Kerugian: modularitas terbatas Kenapa? Sebab komunikasi proses harus berpasangan Selain itu, perubahan identifier pada suatu proses akan mengubah pola komunikasi secara keseluruhan
(c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
KOMUNIKASI TAK LANGSUNG
Komunikasi menggunakan mailbox: sistem ‘papan pesan’ Bisa lebih dari dua proses saling berkomunikasi. Mailbox dimiliki oleh proses proses terminate, mailbox yang dimiliki terhapus Jadi? Harus ada mekanisme agar proses bisa: Membuat mailbox baru Kirim/terima pesan lewat mailbox Menghapus mailbox
(c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
SINKRONISASI (1)
Blocking x Non-Blocking Apa itu blocking? Blocking adalah suatu keadaan di mana sebuah proses ter-blok karena melakukan komunikasi Selama komunikasi, ada kemungkinan proses tidak bisa terus berlanjut karena harus menunggu selama komunikasi. Dalam keadaan seperti ini, proses dikatakan ter-blok Mungkin saja proses tidak perlu menunggu pada saat berkomunikasi.
(c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
SINKRONISASI (2)
Ada 4 jenis sinkronisasi dalam komunikasi proses berkaitan dengan kirim dan terima pesan.
Blocking send: proses pengirim menunggu sampai pesan diterima, baru melanjutkan pekerjaannya. Non-Blocking send: pesan dikirim, sementara operasi pengirim terus berlanjut (tidak perlu menunggu) Blocking receive: proses yang menerima di-blok, sampai pesan sampai dan diterima oleh proses penerima Non-Blocking receive: proses penerima langsung membaca pesan yang diterima, tidak ada blok.
(c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
BUFFERING (1)
Secara singkat, bisa dikatakan sebagai queue tempat penampungan pesan sementara Kenapa? Supaya proses yang berkomunikasi tidak perlu ter-blok meningkatkan performance Prinsip: proses pengirim taruh pesan di buffer tidak perlu menunggu (blocking) sampai pesan diterima oleh proses penerima
(c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
BUFFERING (2)
Implementasi Buffering
zero capacity: buffer tidak memiliki kapasitas, sehingga proses pengirim harus di-blok sampai pesan sampai ke penerima bounded capacity: bisa menampung maksimal n pesan dalam buffer. Lebih dari itu, proses pengirim harus di-blok sampai ada tempat dalam buffer unbounded capacity: buffer bisa diisi pesan sebanyak apapun. Secara teroretis, proses pengirim pesan tak akan pernah di-blok.
(c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
MAILBOX
(c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
MACH •Ketika sebuah Task tercipta, dua mailbox khusus juga tercipta, Kernel Box dan Notification Box •Kernel Box, menghubungkan Kernel dengan task •Notification Task, untuk memberitahukan task ada sebuah event •System call disampaikan juga melalui mailbox •Task yang memiliki mailbox berhak untuk menerima pesan yang berada di mailbox •Kelemahan nya, poor performance, karena harus dicopy dua kali. Dari sender ke mailbox. Mailbox ke Task •Solusinya Virtual Memory.
(c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
Socket Client /Server Socket Client/Server ●Memungkinkan komunikasi antar proses yang tidak berada di komputer yang sama namun berada di satu jaringan yang sama. ●Sepasang proses / thread berkomunikasi dengan membangun sepasang socket yang masing masing proses memilikinya. ●Socket menyambungkan 2 alamat IP berbeda pada port tertentu. ●Server akan menunggu client pada port tertentu. Setelah di kontak client, server akan membuat socket (c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
Socket Client /Server
(c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
Client and Thread Program server yang diakses puluhan hingga ratusan client tidak bisa melayani permintaan client sendirian ●Sebagai contoh program database, MySql, Oracle ●Maka untuk melayani permintaan client dibuatlah Thread yang berkomunikasi dengan client ●Tetap mengunakan cara socket client/server ●Keuntungan nya : client tidak perlu menunggu permintaan dari client yang lain seleseai sebelum mendapat gilirannya, sehinga respon server cepat. ●
(c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
RPC Remote Procedure Call ●Metoda untuk mengakses sebuah method yang berada di komputer lain ●Server membuka socket dan menunggu client yang meminta method yang disediakan server ●Menggunakan Stub untuk menghilangkan kesulitan details dalam berkomunikasi dalam jaringan ●Ketika client memanggil remote procedure, RPC system call stub yang akan melewatkan parameter ke remote procedure. ●Stub ini akan mencari port dan membungkus parameter sehingga bisa di kirim melalui jaringan. ●Stub di sisi server akan menerima dan memanggil procedure yang diminta lalu akan mengembalikan hasil nya dengan cara yang sama. (c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.
RMI Remote Method Invocation ●Juga untuk mengakses method di komputer lain ●Dapat mengirim obyek sebagai parameternya ●Client-Stub <-> Skeleton -server ●Sekali Obyek didaftarkan di server, client bisa memanggil remote object dengan Naming.lookup() ●untuk mengaksesnya rmi://host/obyek
(c) 2005 Adrianus Wisnu Kurniawan, Aziz Yudi Prasetyo, Gregorio Cybill. Silakan menggandakan slide ini tanpa mengubah nota hak cipta.