Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehSucianty Yuwono Telah diubah "6 tahun yang lalu
1
Oleh : Rahmat Robi Waliyansyah, M.Kom.
LAYANAN JARAK JAUH To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. Oleh : Rahmat Robi Waliyansyah, M.Kom.
2
Remote Procedure Call (RPC)
Remote Procedure Call (RPC) adalah sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan ini sebuah server harus menyediakan layanan remote procedure. Cara Kerja : Server membuka socket, lalu menunggu client yang meminta prosedur yang disediakan oleh server. Bila client tidak tahu harus menghubungi port yang mana, client bisa merequest kepada sebuah matchmaker (pencocok port) pada sebuah RPC port yang tetap. Matchmaker akan memberikan port apa yang digunakan oleh prosedur yang diminta client.
3
Remote Procedure Calls
Tujuan RPC adalah pemanggilan prosedur jauh (dikerjakan di mesin lain) seperti pemanggilan prosedur lokal. Pemrogram menulis program tanpa peduli apakah prosedur akan dijalankan di pemroses lokal atau di pemroses jauh. RPC memungkinkan proses di suatu sistem memanggil prosedur di proses lain pada mesin lain. Remote Procedure Calls
4
Prinsip KERJA RPC
5
Remote Procedure Call (RPC)
Sebelum mekanisme RPC digunakan, data harus dipackaging ke dalam format transimisi disebut marshalling. Proxy bertanggung jawab untuk marshalling data, kemudian mengirimkan data dan meminta instance dari komponen (remote). Stub menerima request, unmarshall data, dan memanggil method yang diminta. Kemudian proses mengembalikan nilai yang diinginkan (Stub adalah kode untuk mengkonversi parameter yang dipassing saat RPC berjalan)
6
Remote Procedure Call (RPC)
Kelebihan RPC Relatif mudah digunakan : Pemanggilan remote procedure tidak jauh berbeda dibandingkan pemanggilan local procedure. Sehingga pemrogram dapat berkonsentrasi pada software logic, tidak perlu memikirkan low level details seperti socket, marshalling & unmarshalling. Robust (Sempurna): Sejak th 1980-an RPC telah banyak digunakan dalam pengembangan mission-critical application yang memerlukan scalability, fault tolerance, & reliability. Kekurangan RPC Tidak fleksibel terhadap perubahan: hubungan anatara client dan server bersifat static. Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan OOP.
7
Studi kasus RPC Pada jasa pengeprintan di rental pengetikan yang di dalamnya terdapat 1 komputer server, beberapa komputer client dan sebuah printer yang hanya terhubung dengan server. User dari computer client ingin mencetak data dari komputernya. Biasanya user memindah data dengan bantuan device external seperti disket, flash disk, hard disk, atau cd-rw. Namun dengan RPC hal tersebut akan menjadi lebih efisien. Solusi : dengan RPC, untuk mencetak data dari computer client, computer client mengirim pesan “cetak” kepada computer server. Kemudian computer server menerima perintah tersebut dan kemudian menjalankan perintah mencetak data. Setelah itu server mengirimkan pesan pada client berupa informasi “file telah dicetak”.
8
THREAD Unit dasar dari pemanfaatan CPU
Pada dasarnya satu proses terdiri atas satu thread (single-thread) Dalam sekali waktu hanya ada satu tugas yang bisa dikerjakan dalam satu proses Padahal program-program terkini butuh menjalankan beberapa tugas dalam sekali waktu. Butuh multi-thread dalam satu proses.
9
THREAD Multithread pada satu prosesor – dijalankan bergantian dengan waktu yang sangat cepat sehingga tampak bersamaan Multithread pada multi prosesor – benar-benar dijalankan secara bersamaan Hyper threading (HT) – teknologi simultan multithreading oleh Intel Menjalankan banyak thread secara bersama-sama Pada tiap inti prosesor, sistem operasi mengalamatkan 2 virtual prosesor OS harus mendukung pemrosesan multiprosesor
10
THREAD Suatu thread (atau lightweight process disingkat LWP) berisi :
Thread ID Program counter Register set Stack space Suatu thread bersama thread-thread lainnya bisa berbagi : Code section Data section Operating system resources
11
Contoh Multithreading
Web browser : memiliki satu thread untuk display image, dan thread yang lain untuk mengambil data dari network. Web server : menerima request dari client untuk halaman web, image, sound, dll. Web server melayani client secara bersamaan (concurrent).
12
Perbedaan Thread Dengan Proses
Thread adalah bagian dari suatu proses Tiap proses mempunyai informasi status dan sumber daya sendiri, thread berbagi informasi status dan sumber daya dengan thread yang lain dalam satu proses Tiap proses mempunyai alamat yang berbeda, sedangkan thread berbagi alamat yang sama Pergantian antar threads lebih cepat daripada antar proses
13
Contoh Multithread Pada Webserver
14
Keuntungan Multithread
Responsiveness Program tetap bisa berjalan walaupun ada sebagian tugas yang memakan waktu lama. Contoh : Web browser tetap dapat digunakan walaupun sedang ada aktifitas download. Resource sharing Thread dalam suatu proses yang sama dapat men-share memori dan resource dengan thread yang lain. Mengijinkan sebuah aplikasi untuk memiliki beberapa thread yang berbeda dalam lokasi memori yang sama. Economy Alokasi memori dan resource untuk pembuatan proses memiliki cost yang mahal. Dalam hal context-switch, lebih ekonomis bila dilakukan dengan thread context-switch. Utilisasi CPU Meningkatkan kinerja pada arsitektur multiprocessor, dimana thread running secara paralel pada prosesor yang berbeda.
15
Single Thread vs Multi Thread
16
Multicore Program Multicore/Multiprocessor : ada lebih dari satu processor/core processor dalam satu system Pemrograman multithread memungkinkan pemanfaatan fitur multicore pada suatu system Contoh sebuah program dengan 4 threads Single core : Eksekusi thread dilakukan secara bergantian (concurrent) Multi Core : Eksekusi dilakukan secara parallel sesuai jumlah core Memungkinkan pembagian tugas dalam satu program
17
Concurrency vs. Parallelism
Concurrent execution pada single core Hanya ada satu thread yang dieksekusi sekali waktu Thread dieksekusi dengan progress tertentu secara bergantian Paralleilism pada multi-core Beberapa thread dieksekusi secara parallel sesuai jumlah core
18
Tipe Parralelism Data parralelism Task parralelism
19
Data Parallelism Distribusi bagian-bagian data ke masing-masing core processor berbeda untuk diolah Operasi pada masing-masing core sama Contoh : Operasi penjumlahan bilangan 1 sampai N Ada 2 core processor Penjumlahan data 1 sampai (N/2) di core 1 dan (N/2+1) sampai N di core 2
20
Task Parallelism Distribusi tugas (thread) berbeda ke masing-masing core processor yang berbeda Operasi pada masing-masing core beda Contoh : Core 1 menghitung standard deviasi Core 2 mencari nilai max
21
User Thread vs Kernel Thread
Berdasarkan pengendalinya, thread dibagi : User thread Kernel thread User thread dikendalikan oleh program pada level user tanpa campur tangan kernel Kernel thread dikendalikan langsung oleh sistem operasi
22
User Threads Keuntungan : Dapat lebih cepat dibuat dan dikendalikan karena tanpa campur tangan kernel. Kelemahan : Salah 1 thread pengguna menjalankan blocking system call maka mengakibatkan seluruh proses diblok.
23
Kernel Threads Keuntungan :
Jika thread menjalankan blocking system call kernel dapat menjalankan thread lain di aplikasi untuk melakukan eksekusi. Pada lingkungan multiprosesor, kernel dapat menjadwal thread- thread pada prosesor yang berbeda. Kelemahan : lebih lambat daripada user kernel.
24
Model Many-to-One Beberapa user-thread dipetakan ke satu kernel-thread
Kelebihan Tidak ada batasan jumlah user-thread yang bisa dibuat Kelemahan Satu thread melakukan blocking (misal I/O), seluruh proses terblock Multithread tidak dapat dijalankan secara parallel pada sistem multicore Contoh Solaris Green Threads GNU Portable Threads
25
Model One-to-One Satu user-thread dipetakan ke satu kernel-thread
Pembuatan satu user-thread = Pembuatan satu kernel- thread Kelebihan Satu thread blocking tidak akan berpengaruh ke thread lain Multithread dapat dijalankan secara parallel pada sistem multicore Kelemahan Jumlah user-thread yang bisa dibuat terbatas Pembuatan kernel-thread dapat membebani performa Contoh : Windows, Linux
26
Model Many-to-Many Beberapa user-thread dipetakan ke beberapa kernel-thread (multiplexing) Jumlah kernel-thread yang dibuat bergantung aplikasi dan spesifikasi mesin Kelebihan : Satu thread blocking tidak akan berpengaruh ke thread lain Tidak ada batasan jumlah user-thread
27
Two Level Model Mirip M:M, tapi mengijinkan user-level thread dipetakan ke satu kernel thread Contoh : IRIX HP-UX TRU64-Unix Solaris 8 ke bawah
28
Thread Libraries Application programming interface (API) untuk pembuatan dan manajemen thread Dua jenis implementasi Library diimplementasi di level user Library diimplementasi di level kernel. Bisa dipanggil dengan dengan system call
29
Strategi Implementasi
Asynchronous Threading Setelah thread induk membuat thread anak, proses induk kembali melanjutkan eksekusi Thread induk dan thread anak berjalan independen Proses induk tidak perlu tahu status thread anak Synchronous Threading Proses induk menunggu semua thread anak selesai sebelum melanjutkan eksekusi (fork-join) Setelah thread anak selesai, join ke thread induk
30
CANCELLATION Pemberhentian thread sebelum tugasnya selesai
Target thread : thread yang akan diberhentikan Dapat terjadi melalui dua cara : Asynchronous cancellation : suatu thread seketika itu juga memberhentikan target thread Deferred cancellation : target thread memeriksa apakah dia harus berhenti, cara ini memperbolehkan target thread untuk memberhentikan dirinya sendiri secara terurut
31
THREAD POOLS Masalah multithreading : pembuatan thread terlalu banyak menurunkan performa sistem. Solusi : membuat sejumlah thread pada saat startup dan menempatkannya ke dalam pool. Ketika server menerima request, thread dipanggil. Jika selesai, thread kembali ke pool Keuntungan : lebih cepat dan membatasi jumlah thread yang ada pada suatu waktu
32
Terima Kasih
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.