CPU és memória virtualizáció

download CPU és memória virtualizáció

If you can't read please download the document

description

Virtualizációs Technológiák és Alkalmazásaik. CPU és memória virtualizáció. Tóth Dániel. Tartalom. Platform virtualizáció technikai háttere Ismétlés: mit csinál egy CPU Mi kell egy virtuális CPU-hoz ( Popek & Goldberg) Szimuláció, emuláció, virtualizáció - PowerPoint PPT Presentation

Transcript of CPU és memória virtualizáció

1. dia

CPU s memria virtualizciTth DnielVirtualizcis Technolgik s AlkalmazsaikBudapesti Mszaki s Gazdasgtudomnyi EgyetemMrstechnika s Informcis Rendszerek TanszkUtols mdosts:2010. 09. 15.

1TartalomPlatform virtualizci technikai httereIsmtls: mit csinl egy CPUMi kell egy virtulis CPU-hoz (Popek & Goldberg)Szimulci, emulci, virtualizciHrom lehetsg a virtualizcira: szoftveres, hardveres, para-Memriakezels egy modern CPU-banVirtulis gpek memriakezelse: szoftveres, hardveres, para-Virtulis memriakezels specilis kpessgei: megoszts, ksleltetett allokci, memria-ballon

22Mi is az a processzor?Matematikai modellje:Bels llapottal rendelkez automataUtasts sorozatAdatokBels llapot:adatregiszterek programszmll zemmdj (szmtott) adatokVezrls (perifrik)Visszahats a program tovbbi folysraUtastsokat hajt vgre, amik befolysoljk a bels llapott, majd ezen keresztl a kimenetet3Kicsit konkrtabban: az utasts hatsra a bels regiszterek valamelyiknek rtkt mdostja, felhasznlva regiszter rtkeket s/vagy kvlrl betlttt adatot. A bels regiszter tartalma lehet ksbb kimen adat, vagy befolysolhatja a program tovbbi futst. Pl. a programszmllt trja, ezzel ugrik ms programrszhez (erre ltalban dediklt vezrlsi-folyam utastsok vannak: jump/goto, branch/if, call, return).3Mi is az a processzor?CPU utastskszlet architektrja (ISA, Instruction Set Architecture)Meghatrozza a lehetsges utastsokatbinris kdjait (opcodes), s assembly nyelven hasznlhat rvidtseit (mnemonic)operandusok fajtjt (konstans, regiszter, memria, indirekt memria)vgrehajtsi szemantikjukat: pontos jelentsket, hatsukatMeghatrozza a regiszterkszletetltalnos cl adattrol regiszterek, mretkkel s a bennk trolhat adat formtumval (eljeles/nlkli egsz, lebegpontos trt, logikai stb.)specilis regiszterek, pl. programszmll, verem mutat (stack pointer)CPU zemmdjaitMinden zemmdban ms-ms rszhalmaza engedlyezett az utastskszletnekMemria elrse lnyegesen eltrhet zemmdok kztt

44Mit tud processzor?Az ISA specifikci biztostja, hogy egy program - azonos bemen adattal elltva - minden esetben ugyangy fusson le, ugyanazt az eredmny adjaA CPU zemmdok clja:Visszamenleges kompatibilits (x86 msbl sem ll)Egy program ne tudjon bizonyos mveleteket vgezniOpercis rendszer el tudja szigetelni a programokat egymstl vdett mdokFutsi privilgium szintek, al-zemmdok (rings)Plda: 4 privilgiumszint az x86 vdett mdjbanRing 0, supervisor md: legbvebb utastshalmazRing 1Ring 2Ring 3, user md: legszkebb rszhalmaz

5Az elszigetels f clja, hogy az egyik program hibja esetn egy msik fut program zavartalanul mkdhessen tovbb ugyanazon a processzoron.Megjegyzs: az brt gyakran fordtva szoktk rajzolni, hogy a Ring0 van legbell. Most ez halmazokat hivatott illusztrlni, ezrt van a Ring 0, mint legbvebb utastshalmaz, kvl. Mit jelent a Ring x86-on: a CPU-nak van egy aktulis futsi szintje (CPL current privilege level) s vannak klnbz adatszerkezet lerk szegmens s lapozott memrihoz, melyek szintn tartalmaznak egy futsi szintet (DPL descriptor privilege level). Hozzfrs (olvass, rs, vgrehajts) ltalnos esetben akkor engedlyezett, ha a CPL nem rontja le nagyon a virtulis gp vlaszidejt.

Binris fordts mkdse pldval illusztrlva: Keith Adams, Ole Agesen: A comparison of software and hardware techniques for x86 virtualizationhttp://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.117.196&rep=rep1&type=pdf21Hardveres virtualizciIntel VT-x s AMD-V kiegsztsekkel j ring jtt be (hogy uralkodjon mind felett)SYSCALL s INT Ring3-bl Ring0-ba hv t nem kell felesleges krt futnia a VMM-benVan kln VMCALL utasts is, amivel ki lehet hvni a Root Mode-baMinden szksges privilegizlt utastst elkapDe ennek nem felttlen rlnk a binary translation sok optimalizcira adott lehetsget, ami itt hinyzikltalban lassabb a szoftveres virtualizcinl (de javul, a VMCALL-VMRESUME krlfordulsi idt minden CPU genercival cskkentik)Ring 0 supervisor mode - kernelRing 1Ring 2Ring 3 userspace alkalamazsokRoot Mode - hypervisor mode - VMM2222Hardveres virtualizci

23Kpek forrsa: IntelAnandtech Optimizing for virtualization http://www.anandtech.com/show/2786

23ParavirtualizciMinek ez a sok hajcih?! Mdostsuk a vendg OS kernelt, hogy ne hasznljon elfoghatatlan utastsokat! (Feltve, hogy megtehetjk)Nem kell semmifle elfordtA vendg OS teht kifejezetten tud rla, hogy virtualizltMirt llnnk meg itt? Ne csak az elfoghatatlan, de minden szksgtelen vagy elkerlhet privilegizlt utastst irtsunk ki a vendg kernelbl. Kevesebb vlts kell a VMM-be.Vezessnk be sajt rendszerhvsokat a vendg kernel-VMM kommunikcira, amit csak lehet ezzel oldjuk meg (perifrik kezelse)

Ring 0 supervisor mode VMMRing 1 vendg OS kernelRing 2Ring 3 userspace alkalamazsok24Mivel a vendg gpet mdostjuk, hogy egyttmkdjn egy virtualizcis krnyezettel ezrt sokkal egyszerbb vlik a VMM megvalstsa is. DE ez nem jelenti azt, hogy a VMM vdelmt cskkenthetnnk, nem ttelezhetjk fel, hogy a vendg OS mindig be fogja tartani a szablyokat, meghibsodhat, vagy tmad clzattal mdosthatjk a mkdst. A klnbsg annyi, hogy paravirtualizcinl a VMM nem kell, hogy megprblja emullni a hatst olyan mveleteknek, amiket a vendg OS megegyezs szerint nem adhatna ki, hanem el nem foghat mveletnl - hagyja sszeomlani, vagy elfoghat, de nem engedlyezett mveletnl - explicit lelltja a vendg gpet.24TartalomPlatform virtualizci technikai httereIsmtls: mit csinl egy CPUMi kell egy virtulis CPU-hoz (Popek & Goldberg)Szimulci, emulci, virtualizciHrom lehetsg a virtualizcira: szoftveres, hardveres, para-Memriakezels egy modern CPU-ban innen folytatjuk a kvetkez eladsonVirtulis gpek memriakezelse: szoftveres, hardveres, para-Virtulis memriakezels specilis kpessgei: megoszts, ksleltetett allokci, memria-ballon

2525