Pokročilé architektury počítačů

Podobné dokumenty
Pokročilé architektury počítačů

Virtualizace. Lukáš Krahulec, KRA556

Pokročilé architektury počítačů

Systém adresace paměti

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Virtualizace a virtualizace s podporou procesoru

Virtualizace na Linuxu

Paměťový podsystém počítače

Přidělování paměti II Mgr. Josef Horálek

09. Memory management. ZOS 2006, L.Pešička

Red Hat Enterprise Virtualization

PRINCIPY OPERAČNÍCH SYSTÉMŮ

Struktura a architektura počítačů (BI-SAP) 11

Metody připojování periferií BI-MPP Přednáška 2

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Antonín Přibyl - Virtualizace Windows serveru s KVM hypervisorem

2010/2011 ZS. Operační systém. úvod základní architektury

Procesy a vlákna (Processes and Threads)

Operační systémy. Přednáška 8: Správa paměti II

Pokročilé architektury počítačů

Operační systémy. Přednáška 1: Úvod

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

VirtualBox desktopová virtualizace. Zdeněk Merta

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

Přednáška. Správa paměti I. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Pamět ová hierarchie, virtuální pamět. doc. Ing. Róbert Lórencz, CSc.

Příloha č.2 - Technická specifikace předmětu veřejné zakázky

Microsoft SharePoint Portal Server Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

NÁSTROJE PRO VIRTUALIZACI POČÍTAČE

Architektury počítačů a procesorů

Logická organizace paměti Josef Horálek

Petr Holášek / 1 of 21

Operační systémy. Přednáška 7: Správa paměti I

Přechod na virtuální infrastrukturu

Virtualizační platforma ovirt

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti

Využití virtualizace pro malé a střední firmy

IB109 Návrh a implementace paralelních systémů. Organizace kurzu a úvod. RNDr. Jiří Barnat, Ph.D.

Operační systémy. Správa paměti (SP) Požadavky na SP. Spojování a zavedení programu. Spojování programu (linking) Zavádění programu (loading)

TSM for Virtual Environments Data Protection for VMware v6.3. Ondřej Bláha CEE+R Tivoli Storage Team Leader. TSM architektura IBM Corporation

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE JÍST.

Přijímací zkouška - informatika

Ladění ovladačů pomocí virtuálního stroje...2 Úvod...2 Ladění ovladačů pomocí dvou fyzických počítačů...2 Ladění ovladačů pomocí jednoho fyzického

Řízení IO přenosů DMA řadičem

MetaCentrum - Virtualizace a její použití

Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

Bootkity v teorii a praxi. Martin Dráb martin.drab@ .cz

Přidělování zdrojů (prostředků)

2010/2011 ZS P i r i nc č py po ít č čů a PAMĚŤOVÝ ĚŤ SUBSYSTÉM z pohledu OS OS

Pokročilé architektury počítačů

Počítač jako prostředek řízení. Struktura a organizace počítače

3. Počítačové systémy

Pokročilé architektury počítačů

Principy operačních systémů. Lekce 8: Ovladače periferií

CHARAKTERISTIKA VEŘEJNÉ ZAKÁZKY

Management procesu I Mgr. Josef Horálek

Architektura počítače

Princip funkce počítače

Profilová část maturitní zkoušky 2014/2015

VIRTUALIZACE POČÍTAČE HISTORIE A VÝVOJ

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje:

Strojový kód. Instrukce počítače

Metody připojování periferií

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

PB153 Operační systémy a jejich rozhraní

Přidělování paměti I Mgr. Josef Horálek

Pohled do nitra mikroprocesoru Josef Horálek

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

OPS Paralelní systémy, seznam pojmů, klasifikace

Implementace systémů HIPS: historie a současnost. Martin Dráb

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Ukázka zkouškové písemka OSY

Vstupně výstupní moduly. 13.přednáška

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Činnost počítače po zapnutí

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Procesor. Procesor FPU ALU. Řadič mikrokód

Co je grafický akcelerátor

Virtualizace. Miroslav Novotný

Systémy pro sběr a přenos dat

Využití moderních přístupů při budování Technologického centra kraje

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic

HelenOS ARM port. Pavel Jančík Michal Kebrt Petr Štěpán

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

Adresní mody procesoru

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

11. Přehled prog. jazyků

Distribuovaný systém je takový systém propojení množiny nezávislých počítačů, který poskytuje uživateli dojem jednotného systému.

Virtualizace síťových prvků

Virtualizace operačních systémů

Architektura procesoru ARM

Virtuální učebna: VMware VDI zefektivňuje výuku, zjednodušuje správu a snižuje náklady

Transkript:

Pokročilé architektury počítačů Přednáška 5 Virtualizace Martin Milata

Obsah Typy virtualizace (připomenutí) Tři třídy virtualizace VM s vlastním OS Softwarová úplná virtualizace Paravirtualizace Úplná virtualizace s podporou HW Virtualizace paměti Stránkování a způsoby jeho realizace Virtualizace I/O zařízení Přímo mapovaná zařízení DMA přemapování Přemapování přerušení BIOS

Typy virtualizace Virtualizaci a s ní spojené virtuální stroje (Virtual Machines VM) obvykle dělíme do tříd podle způsobu poskytování HW prostředků Mapování fyzických prostředků VM Emulace prostředků pro VM (vytváření virtuálního HW) Hardwarové Emulátory duplikuje nebo emuluje HW prostředky s cílem poskytnout programům nativní přístup k nim emulace dnes zastaralého či již neexistujícího HW, sdílení drahých HW zdrojů, umožnění běhu programu na různých počítačových architekturách emulací HW prostředků Emulátor i386 architektury pro PowerPC, Emulátor MIPS procesoru na x86 architekturách Aplikační virtuální stroje (Application Virtual Machine - AVM) cílem je izolace běžící aplikace od hardware počítače a tím zvýšení její přenositelnosti mezi různými platformami pro různé platformy je potřeba implementovat pouze AVM Java, Microsoft.NET

Typy virtualizace Mainframové virtuální stroje (Mainframe Virtual Machine MVM) Obvykle nákladná mainframe řešení, efektivní sdílení výpočetních prostředků, rozsáhlé možnosti bezpečnostních politik IBM mainframe System/370, System/390 Virtuální stroje s vlastním OS (Operating systém Virtual Machine OSVM) Softwarová emulace uživatelského počítače. Uživateli dává iluzi plnohodnotného počítače se vlastním OS Vytváří prostředí virtuálního počítače, ve kterém běží samostatný OS Hostitelský počítač provozuje na VM nezávislý OS, který mapuje nebo emuluje HW prostředky potřebné pro běh OS v rámci VM VMware řešení, KVM, Xen, Microsoft Virtual PC, Virtual Server, VirtualBox a další Dále budeme předpokládat virtualizaci tohoto typu Paralelní virtuální stroje (Parallel Virtual Machine PVM) Obtížně odlišitelná od paralelního počítaní Vytváří distribuované výpočetní prostředí běžící na mnoha počítačích s iluzí přítomnosti jen jednoho výpočetního uzlu Obvykle distribuována přes stovky až tisíce počítačů. Seti@Home projekt, Projekt RC5

Tři třídy virtualizace Softwarová plná virtualizace Hypervisor asistuje každé privilegované instrukci hostovaného OS Nevyžaduje žádné změny v software ani vlastním OS hostovaného počítače (guest VM) Pokus o provádění privilegovaných instrukcí guest OS způsobí vyvolání výjimky obsluhované hypervisorem (pouze VMM běží v ringu 0 ) Zachycená privilegovaná instrukce je nahrazena odpovídající skupinou instrukcí definovaných jako důsledek obsluhy VMM, které zajistí izolaci a ekvivalentní výsledek pro VM Provoz dnes zastaralých OS (MSDOS, MS Windows 3.1,...) Představuje vysokou zátěž a tím významný pokles výkonu VM při provádění privilegovaných instrukcí Mezi privilegované instrukce patří například instrukce změn mapování paměti (stránkování, ) nebo požadavky na I/O zařízení

Tři třídy virtualizace

Tři třídy virtualizace Operačním systémem asistovaná virtualizace nebo paravirtualizace Je založena na modifikaci OS pro VM OS virtuálního počítače spolupracuje s hypervisorem a spoluutváří virtuální prostředí (resp. počítač) Modifikací kódu OS se snižuje počet privilegovaných instrukcí, které je potřeba obsluhovat výjimkou na procesoru Hypervisor stále řídí přístup k HW prostředkům a zajišťuje izolaci jednotlivých VM Znemožněn běh OS, které nejsou pro daný hypervisor upraveny Přináší nejmenší výkonnostní dopad na VM Komunikace s I/O zařízeními je obvykle výhradou hypervisoru

Tři třídy virtualizace Hardwarově asistovaná virtualizace Přináší zjednodušení virtualizačních technik ve spolupráci s hardware Intel VT-x a AMD AMD-V podpora na úrovni procesoru Základní podpora spočívá v rozšíření tříd oprávnění o třídu pod ringem 0 Vyšší stupeň oprávnění přináší možnost zachování běhu hostovaného OS na úrovni 0 Procesor ukládá stav VM v Virtual Machine Control Structures resp. Virtual Machine Control Blocks Dosahuje vyššího výkonu než plná virtualizace a s další podporou v HW se vyrovnává paravirtualizaci Privilegované instrukce mohou být klasifikovány do dílčích tříd s rozdílnou úrovní zásahu hypervisoru Zásah hypervisoru je realizován na základě výjimky, která má za následek snížení výkonu VM (při obsluze je řízení a tedy i procesor předán VMM) Dnes je HW podpora rozšiřována o další techniky, z nichž některé jsou uvedené dále

Tři třídy virtualizace

Úplná virtualizace Nahrazování privilegovaných instrukcí Označováno jako technika binárního překladu Můžeme rozlišit tři odlišné přístupy Interpretace pro spuštěný kód hypervisor opakovaně provádí načtení instrukce; dekódování; provedení výpočtu nebo nahrazení instrukce voláním obslužné rutiny (privilegované instrukce) Statický překlad v závislosti na implementaci překladače se před spuštěním programu provede jeho celé prohledání na přítomnost privilegovaných instrukcí; nalezené instrukce jsou buď nahrazeny voláním obslužné rutiny nebo ošetřeny předřazením umělé výjimky Dynamický překlad provádí se za běhu programu vždy na základním bloku kódu (kód, který neprovádí změnu hodnoty PC); překladem je prováděno zmapování bloku spolu s produkcí seznamu adres privilegovaných instrukcí; pokud PC dosáhne některé z uvedených adres, řízení převezme hypervisor

Úplná virtualizace Dynamický překlad Při běhu programu je VMM analyzován a překládán pouze jeden základní blok Blok, který neobsahuje privilegované instrukce nebo instrukce, jenž by mohly narušit sekvenční provádění Pokud se v analyzované části taková instrukce objeví, překlad je zastaven a její adresa uložena Načtení uložené instrukce procesorem vyvolá výjimku a řízení je předáno hypervisoru VMM po převzetí řízení Provede kontrolu typu instrukce, která výjimku způsobila Privilegovanou instrukci obslouží odpovídající rutinou Při instrukci větvení provede překlad cílového bloku nebo spustí jeho provádění pokud již byl přeložen

Úplná virtualizace Dynamický překlad Co s přeloženými bloky VMM je může po dobu běhu programu uchovávat Přeložený blok musí být sledován na případné změny Stránka s blokem je označena pouze pro čtení ; případný zápis vyvolá výjimku a dá tím VMM možnost korektně realizovat zápis a nový překlad Modifikovaný blok nesmí být dostupný původnímu programu Vede k urychlení provádění; blok se nemusí znovu překládat Program nemůže pracovat s modifikovaným kódem; při provádění je virtualizace zcela transparentní Ochrana paměti na úrovni práv neumožňuje danou situaci vyřešit (paměť kterou nelze číst, nelze ani spouštět) Řešením je separátní uložení přeloženého bloku na jiném místě paměti (čtení se provádí z adres původního programu; spouštění provádí VMM z nové adresy) Optimalizace dynamického překladu je dále možná při prvním průchodu přeloženým blokem; vede k vyšší efektivnosti opakovaného provádění

Paravirtualizace Vychází z předpokladu že hostovaný systém si je vědom běhu ve virtualizovaném prostředí Privilegované instrukce a rutiny, které by vedly k jejich vzniku, jsou v hostovaném OS nahrazeny za volání hypervisoru (hypercall) Oproti úplné virtualizaci VM nepotřebuje BIOS HW je emulován resp. přístupný přes volání hypervisoru Provádět pravidelnou synchronizaci času na základě přerušení časovače (VM se při aktivaci na skutečný čas zeptá) Překlady adres a stránkování Řešeny bez zvláštního HW na standardní MMU Hostovaný systém může tabulky stránek jen číst Jen hypervisor může provádět změny (OS při změně volá hypercall na hypervisor)

Hardwarová podpora virtualizace Dnes nezahrnuje pouze HW podporu virtualizace procesoru Direct I/O (DMA a Interrupt přemapování) Na procesoru přítomnost ringu -1 Označován VMX root; slouží pro běh hypervisoru Operace pro vstup resp. výstup z VMX root úrovně pracují se Virtual Machine Control Structure resp. Virtual Machine Control Blocks Slouží k rychlému uložení stavu procesoru při změně úrovně oprávnění nebo přepnutí mezi hostovanými systémy Ukládají se např. segmentové registry, registry stránkování, registry mapy přerušení

Virtualizace paměti Cílem je umožnit sdílení a dynamickou alokaci fyzické paměti virtuálním počítačům Přístup k virtualizaci velmi podobný k virtuální paměti v moderních OS Mezi reálnou fyzickou a virtuální fyzickou paměť vložena virtualizační vrstva Přítomnost virtualizační vrstvy včetně navazujících mechanizmů správy paměti přináší bez HW podpory znatelnou zátěž pro hostitelský systém

Stránkování a segmentace Segmentace na procesorech 80386 a dalších

Stránkování a segmentace Stránkování

Virtualizace paměti Adresní prostory a typy adres pamětí Pro každý z níže uvedených adresních prostorů lze definovat odpovídající typ adresy virtuální adresní prostor VM (virtual address VA) lineární adresní prostor VM (linear address LA) Překlad virtuální adresy procesu vzniká lineární adresa, její další dělení závisí na počtu úrovní stránkování, každý proces disponuje nezávislým lineárním prostorem pseudo-fyzický adresní prostor VM (guest physical address gpa) Prostor alokován procesu běžícího v rámci VM (obvykle segmentován) Pomocí stránkování v rámci VM je přeložena lineární adresa na pseudofyzickou adresu, adresy fyzické paměti virtuálního počítače (nejedná se o skutečnou fyzickou adresu, v tomto smyslu jí pouze chápe OS virtuálního PC) fyzický adresní prostor (system physical address spa) Obvykle překlad pomocí stránkování na úrovni hypervisoru (VMM), produkuje skutečnou fyzickou adresu

Stránkování a virtualizace Při realizaci virtualizace paměti se obvykle používá dvou úrovní stránkování Stránkování paměti v rámci hostovaného OS Vnořená úroveň v rámci VM Vyžaduje SW řešení stránkování nebo explicitní HW podporu (dnešní procesory Nedted page resp. Rapid Virtualization Indexing a Extended Page Table) Přináší zátěž pro hostující systém resp. CPU a paměť Stránkování paměti v rámci hypervisoru Nativní podpora v HW (hypervisor představuje stejnou úroveň jako nevirtualizovaný OS) Stránkování vnořené virtuální úrovně je potřeba udržovat v konzistentním stavu s používaných HW stránkováním

Softwarové řešení stránkování Procesor v době běhu VM využívá k překladu LA na PA skryté tabulky stránek (shadow page table spt) spt je derivována z tabulky stránek OS virtuálního počítače (guest page table gpt) Přenos dat musí být obousměrný, OS na základě aktualizací gpt při používání např. počítá stránky pro výměnu (LRU algoritmus) Techniky zachování konzistence jsou obvykle založeny na obsluze výpadku stránky docílené pomocí write-protected gpt hypervisor chání proti zápisu gpt změna obsahu gpt vyvolá výjimku výpadku stránky obsluha výjimky hypervisorem se zachováním konzistence gpt a spt Virtual TLB (líná synchronizace) gpt je přímo modifikována OS virtuálního počítače bez účasti hypervisoru požadavek na překlad podle vloženého záznamu způsobí výpadek stránky (procesor pracuje na základně spt ne na gpt) Výpadek je obsloužen hypervisorem s dodatečnou synchronizací obou tabulek stránek

Softwarové řešení stránkování Host využívá vlastního stránkování k udržování informace o gpm OS realizuje vlastní správu paměti, která se nesmí lišit od reálné Každý přístup do paměti vyžaduje v VMM realizovaný (SW) překlad adresy Hypervisor provádí přístup do paměti pomocí stránkování, které je na VM nezávislé Provádí skutečný přístup do fyzické paměti v závislosti na umístění gpm ve fyzické paměti V obou případech se k výpočtu fyzické adresy využívá virtuální adresa hosta

HW podpora stránkování Rozšiřuje standardní mechanizmus stránkování o možnost souběžné práce s dvěma nezávislými tabulkami stránek Tabulka udržovaná virtualizovaným OS překládá gva na gpa Tabulka udržovaná hypervisorem překládá gpa na spa pro přístup do reálné fyzické paměti Obojí překlad je realizován s podporou HW Významné snížení zátěže VMM a zvýšení výkonu VM při práci s pamětí Dříve byl překlad v rámci VM realizován softwarově Paralelní prohledávání vnáší navíc režii spojenou s nutností intenzivnější práce s pamětí (projevuje se vyšší penaltou při TLB mis) Pro 4-úrovňové stránkování se počet přístupů ze 4 zvýší na 24

HW podpora stránkování Návaznost na TLB Ukládá výsledky překladu gva na spa Hypervisor musí zajistit vymazání TLB při přepnutí VM Značkování TLB záznamů tagy virtuálních počítačů pro předcházení destrukce obsahu HW podpora na procesorech AMD Nested Page Table resp. Intel Extended Page Table

HW podpora stránkování

Čtyři typy virtualizace I/O zařízení Emulace VMM emuluje kompletní zařízení I/O zařízení nemusí fyzicky existovat, emulace starých zařízení Nevýhodou je pomalost vše se děje za účasti VMM v SW Softwarové rozhraní VMM poskytuje pouze syntetizované softwarové rozhraní k fyzickému I/O HW VMM je stále přítomno v komunikaci s I/O SW rozhraní více počítá s virtualizací, Zvýšení výkonu proti plné emulaci Přiřazení I/O zařízení (Přímé mapování) I/O zařízení je přímo mapováno na konkrétní VM Model umožňuje přímou interakci s HW s minimální nebo dokonce žádnou účastí VMM Nejmenší výkonnostní dopad, téměř reálný výkon fyzického zařízení Sdílení I/O zařízení Rozšiřuje předešlý model přímého mapování o možnost sdílení zařízení více VM se zachováním přímého přístupu Zařízení musí být schopno akceptovat I/O požadavky z více zdrojů (více funkčních rozhraní)

Model přímého mapování I/O zařízení do VM Všechny předešlé modely mají za cíl izolaci a omezení přístupu ke zdrojům vlastněným různými VM Pro minimalizaci výkonnostních dopadů VMM je potřeba při přímém mapování zajistit podporu v HW pro Přidělení I/O zařízení flexibilní přidělení zařízení konkrétnímu VM pro možnost rozšíření ochrany a izolace I/O operací prováděných VM Přemapování DMA (DMA Remapping) podpora nezávislého překladu adres pro realizaci DMA ze zařízení Přemapování přerušení (Interrupt Remapping) přesměrování a izolace přerušení od zařízení na externí kolektor nebo konkrétní VM Řešení chybových stavů zacházení s DMA výjimkami (ochrana paměti, dopady VM isolace)

HW podpora DMA přemapování DMA přemapování přináší hardwarovou podporu izolace přístupu zařízení do paměti Pomocí odlišných skupin I/O (paměťových) stránek jsou zařízení rozdělena do specifických domén HW DMA přemapování zachytí DMA požadavek, který pomocí stránkovacího mechanizmu přeloží a provede kontrolu zda je přístup povolen OS může využít DMA přemapování k Ochraně OS Doména (stránky v paměti) operačního systému není přístupná pomocí DMA (ochrana před chybami v ovladačích zařízení, atd.). Přemapování DMA požadavků starých zařízení do oblasti vysoké paměti (32bit zařízení pracuje s daty za 4GB adresním prostorem) Izolaci DMA každé zařízení má vlastní doménu, registrované buffery u OS nemohou kolidovat

OS a DMA přemapování

HW podpora DMA přemapování Umožňuje minimalizaci účasti VMM při přímém mapování I/O zařízení Zařízení je umožněn přístup pouze do domény virtuálního stroje Při podpoře přímo mapovaného zařízení musí VMM zajistit Izolaci DMA požadavků mapováním zařízení na konkrétní doménu VM Změnu DMA přemapování v případě realokace domény VM v paměti Využití DMA přemapování virtuálním počítačem HW podpora DMA přemapování může být přínosná i pro OS v rámci virtuálního PC VMM může poskytovat virtuální (emulovaný) HW pro DMA přemapování Hostovaný OS může řízeně pomocí VMM měnit DMA mapování v rámci své domény (VMM udržuje kopii DMA přemapování hostovaného OS). VMM podle lokální kopie DMA přemapování VM prování nastavení fyzického hardware

VMM a DMA přemapování

Virtualizace a překlad adres pro DMA přenos Rozlišujeme tři druhy adres DMA Virtual Address (DVA) Adresa obsažená v DMA požadavku. Vztahuje se k pseudofyzickému adresnímu prostoru VM Guest Physical Address (gpa) Pseudofyzická paměť virtuálního stroje. V závislosti na implementaci DMA ve virtuálním OS může splývat s DVA Host Physical Address (hpa) Adresa skutečné fyzické paměti na kterou má být DVA transformována Při DMA požadavku iniciátor zasílá adresu paměti na kterou chce přistupovat (např. adresu u OS registrovaného bufferu) Pokud je iniciátor svázán s OS ve virtuálním stoji, pak uvedená DVA míří do gpa prostoru VM (I/O zařízení je přímo mapováno do VM a jeho ovladač registruje buffery u OS ve virtuálním počítači, tedy v prostoru gpa) gpa prostor je překládán na hpa v závislosti na jeho uložení v paměti (může se během běhu VM měnit) a tedy DVA adresu je potřeba obdobně přemapovat do hpa prostoru

Virtualizace a překlad adres pro DMA přenos HW jednotka pro přemapování Může být zastoupena jednou či vícekrát. Obvykle v závislosti na složitosti I/O hierarchie (separátní pro PCI Expres root port) Realizuje překlad GPA na HPA před dalším zpracováním (prohledávání cache, předání řadiči paměti) a následná kontrola oprávnění

HW podpora přemapování přerušení Přináší možnost přemapování a přesměrování požadavku na přerušení od I/O zařízení a jejich izolaci mezi různými oblastmi (VM, hostující OS a jeho podčásti) VMM obvykle využívá přemapování přerušení k jejich izolaci mezi VM Přerušení při DMA přenosech mohou být izolovány a doručovány na VM, kterých se týkají resp. které mají příslušení I/O přímo mapované Migrace přerušení HW podpora pro přemapování přerušení může být použita pro dynamické přesměrování přerušení při migraci jeho cíle z jednoho logického procesoru na druhý Přesměrování přerušení může být řešeno efektivně bez nutnosti přeprogramování jeho zdroje Může být využita OS při vyvažování zátěže jednotlivých CPU (procesy jsou přes CPU distribuovány dynamicky) nebo VMM při přesunu virtuálního CPU z jednoho fyzického na druhý

HW podpora přemapování přerušení Přemapování přerušení představuje způsob softwarové kontroly externích přerušení všech zdrojů včetně řadiče přerušení Při rozhodování přesměrování přerušení je nutné identifikovat jeho zdroj Přerušení generované HW přemapování přerušení jsou obsluhovány jiným způsobem. Rozpoznání zdroje je založeno na tzv. source-id přerušení, které je běžně komponováno na základě ID přiřazeného při registraci ovladače a ID funkcionality HW Tabulka přemapování přerušení Běžně jednoúrovňová tabulka (Interrupt Remapping Table) uchovávaná v paměti s fixní velikosti záznamů Její pozice v paměti bývá stanovena pomocí speciálního registru, který určuje počáteční adresu a velikost tabulky

Tabulka přemapování přerušení Obsah tabulky je indexován pomocí interrupt_index hodnoty, která je odvozena od adresy handleru přerušení, případně od adresy handleru a podhandleru přerušení. Maximální počet záznamů 64k pro každé přerušení odlišná Skutečný maximální počet odvozen indexovacím mechanizmem Aktuální velikost tabulky je uchovávána v speciálním registru spolu s její pozicí v paměti Podmínky pro přemapování přerušení Přemapování musí být pro daný zdroj povoleno (závisí na typu zdroje, některá zařízení přemapování neumožňují) Po vypočtení indexu přerušení je provedená kontrola zdroje a srovnání s velikostí tabulky přemapování (pokud index ukazuje mimo tabulku, přerušení je blokováno)

Urychlování použitím cache pamětí Context cache IOTLB Cache Ukládá překlady DMA adres a to včetně oprávnění k přístupu do paměti Interrupt Entry Caching Uchovává často listované vazby zařízení - doména Obsahuje často přemapovávaná přerušení Využívání cache pamětí při softwarové správě vyžaduje explicitní invalidaci obsahu v případě jeho modifikace pomocí SW Zneplatnění lze provést pomocí nastavení zneplatnění v odpovídajícím registru nastavení dané cache (HW implementováno) zneplatněna může být celá cache nebo jen vybrané součásti spojené s danou doménou či zařízením

BIOS BIOS nutný pro přístup k zařízení Zodpovídá za detekci schopnosti zařízení být přímo mapováno a správu paměťově mapovaných registrů Řeší konfiguraci zařízení s podporou sdílení mezi VM (virtualizace na úrovni zařízení) Popisuje a zpřístupňuje zařízení pomocí obslužných volání VM musí mít totožnou kopii čísti BIOS paměti, která se vztahuje k používání I/O zařízení Otázka konfigurace zařízení

Závěr Seznámení s třídami virtualizace VM s vlastním OS Stručné představení HW podpory virtualizace procesoru paměti I/O zařízení

Literatura John L. Hennessy, David A. Patterson, Computer Architecture: A Quantitative Approach (4th Edition) Andrew S. Tanenbaum, Operating Systems: Design and Implementation Intel Virtualization Technology for Directed I/O AMD-V Nested Paging J. Fisher-Ogden: Hardware Support for Efficient Virtualization