Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Server Virtualization
Cloud Computing Server Virtualization
2
Agenda Ecosystem Other Issues Virtualization Technique
CPU Virtualization Emulation techniques Trap and emulate model Hardware assistance Memory Virtualization Shadow page table IO Virtualization Overview Device model Ecosystem VMware Xen KVM Other Issues Live migration Cloud properties
3
CPU Virtualization Emulation techniques Trap and emulate paradigm
Hardware assistance CPU Virtualization
4
Emulation Technique Kenapa teknik virtualisasi ? Tujuan dari emulasi:
Teknik virtualiIsasi sebenarnya dapat dikategorikan sebagai teknik sebuah teknik emulasi. Banyak teknik virtualisasi di bangun atau diturunkan dari teknik emulasi. Tujuan dari emulasi: Membuat sebuah metode membangun sebuah atau beberapa (sub)system untuk interface dan karakteristik yang sama dengan hardware fisik atau emulasi lainnya
5
Emulation Technique Tiga implementasi emulasi:
Interpretation Emulator mengimprementasi hanya satu instruksi dalam satu waktu. Static Binary Translation Emulator mengartikan sebuah block binary dari guest dalam suatu waktu dan selanjutnya dioptimalkan untuk mengulangi eksekusi instruksi yang ada. Dynamic Binary Translation Ini adalah pendekatan hybird dari emulator, dimana metode ini menggabungkan dua pendekatan diatas. Design challenges and issues: Masalah register mapping Peningkatan performansi
6
Interpretation
7
Interpretation interpreter flow : Pros & Cons
Memberikan satu instruksi guest dalam satu waktu dari memory image guest. Mendekode dan melepaskan kepada unit emulasi yang sesuai. Mengeksekusi dungsi dari instrukti dan memodifikasi beberapa sistem yang berhubungan dengan emulasi, contohnya adalah mensimulasi nilai register. Meningkatkan guest PC (Program Counter Register) dan lalu mengulangi lagi proses tersebut. Pros & Cons Pros Mudah untuk diemplementasi Cons Kinerja yang jelek.
8
Static Binary Translation
Menggunakan konsep dari basic block yang datang dari teknik optimisasi kompiler (compiler optimization technique). Sebuah basic block adalah bagian dari kode dalam program dengan properti-properti tertentu yang membuatnya sangat diterima untuk dianalisis. Sebuah basic block mempnyai hanya satu masukan, artinya tidak ada kode dalam tujuannya dari sebuah lompatan instruksi, dimanapun dalam sebuah program. Sebuah basic block hanya mempunya satu keluaran, artinya hanya instruksi terakhir yang dapat membuat program untuk memulai mengeksekusi program untuk mengeksekusi kode yang berada dalam basic block lainnya.
9
Binary Translation
10
Static Binary Translation
Static binary translation flow : Memberikan satu blok dari instruksi guest memory image. Mendekode dan menyalurkan setiap instruksi kepada unit translasi yang bersangkutan. Mengartikan/mentranslasi instruksi guest kepada instruksi host. Menulis instruksi host yang telah diartikan kedalam cache kode. Mengeksekusi block instruksi yang telah diartikan didalam cache kode. Pros & Cons Pros Emulator dapat menggunakan kembali kode host yang telah digunakan. Emulator dapat mencoba optimisasi lebih ketika mentranslasikan block-block guest. Cons Kerumitan implementasi akan meningkat.
11
Comparison Implementasi interpretation
Impllementasi static binary translation
12
Dynamic Binary Translation
Implementasai hybird Ketika pertama kali ditemukan kode, langsung di interpretasikan oleh interpreter, dan merekam kode ini sebagai ‘discovered. Ketika kode gust ditemukan, maka akan mentrigger modul binary translasi untuk mentranslasi block-block kode guest kepada block-block kode host, dan menaruhnya kedalam cache kode. Ketika menegksekusi kode dari guest dilain waktu, lompat ke cache kode dan mengeksekusi kode biner host yang telah ditranslasi. Pros & Cons Pros Implementasi translasi biner secara transparan. Cons Susah untuk diimplementasikan.
13
Dynamic Binary Translation
Ketika pertama kali di eksekusi, tidak ada kode yang tertanslasi dalam cache kode. Tidak melakukan perbandingan cache kode, dan langsung melakukan interpretasi ke instruksi guest. Ketika block kode ditemukan, mentrigger modul biner translasi. Translasi block kode guest ke biner, dan menaruhnya ke cache kode. Ketika eksekusi selanjutnya, jalankan block kode yang telah tertlansasi di dalam cache kode. Binary Translator Guest Binary Host Binary Code Cache trigger Emulation Manager hit exit return miss Interpreter
14
Design challenges and issues
Masalah register mapping Peningkatan performansi Design challenges and issues
15
Masalah register mapping
Kenapa kita harus me-mapping register-register ? ISA yang berbeda akan mendefinisikan nomer register yang berbeda. Kadang guest ISA bahkan membutuhkan beberapa tujuan register khusus ketika host ISA tidak mendefinisikannya.
16
Masalah register mapping
Me-mapping register-register dengan tujuan khusus: Map tujuan khusus pada register Program Counter Register Stack Pointer Register Page Table Register System Statues Register Special Flags Register Menahan guest context dan memory image Map register untuk tujuan umum Map nilai intermediate
17
Masalah register mapping
Jika jumlah host register lebih banyak dari pada register guest Akan mempermudah implementasi. Langsung me-mapping satu register dari guest kepada salah satu host, dan membuat register lainnya untuk optimisasi. Example : mentranslasi kode biner x86 ke RISC (Reduced Instruction Set Computing) Jika jumlah register host tidak cukup Maka akan membutuhkan banyak usaha mapping untuk host. Emulator mungkin hanya dapat me-mapping beberapa register yang sering digunakan kepada host, dan meninggalkan register sisanya kedalam. Keputusan mapping akan menjadi sangat penting.
18
Peningkatan Performansi
Apa saja permasalahan dalam performansi ? Masalah control flow Banyaknya frekuensi perpindahan context antara cache kode dan manajer emulasi akan menurunkan performansi. Optimisasi target kode Hanya mentranslasi satu kode dalam satu waktu akan membuat beberapa kesempatan optimisasi menurun. Solusi : Translation Chaining Dynamic Optimization
19
Translation Chaining Control flow yang tidak teroptimisasi antara block-block yang telah tertlansasi dan manajer emulasi. Context Switches
20
Translation Chaining Lompat dari satu translasi langsung ke dalam translasi yang lain dengan cara menjauhkan koneksi balik ke manajer emulasi.
21
Dynamic Optimization Bagaimana untuk mengoptimiasai kode-kode biner ?
Static optimization (compiling time optimization) Teknik optimisasi yang digunakan untuk menggenerate kode biner yang berdasarkan informasi semantik di source code. Dynamic optimization (run time optimization) Teknik optimisasi yang digunakan untuk menggenerate base kode biner pada informasi runtime yang berhubungan dengan input data program. Kenapa menggunakan teknik dynamic optimization ? Keuntungan : Mendapatkan keuntungan dari dynamic profiling. Tidak dipaksakan oleh unit kompilasi. Tahu eksekusi environment yang benar.
22
Dynamic Optimization Bagaimana mengimplementasikan dynamic optimization ? Menganalisis behavior program di dalam run time. Mengumpulkan informasi profiling run time Collect run time berdasarka data input dan karakteristik hardware host. Mentranslasi atau memodifikasi secara dinamis kode biner dengan mengurutkan ulang instruksi atau teknik lainnya. Menulis ulang biner yang telah dioptimisasi kedalam cache kode untuk eksekusi selanjutnya.
23
Dynamic Optimization Bagaimana menganalisa behavior program dan profile? Mengumpulkan statistik tentang bagaimaa program berjalan Branches (taken, not taken) Jump targets Data values Cache misses Kemampuan prediksi membuat statistik ini di gunakan untuk optimisasi dan digunakan untuk kebutuhan di masa mendatang Profiling dalam sebuah VM (Virtual Machine) berbeda dengan profiling tradisional yaitu dengan dengan menggunakan umpan balik untuk compiler.
24
Dynamic Optimization Dynamic binary translasi dan optimisasi :
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.