Zaawansowane systemy operacyjne. Wirtualizacja. Janina Mincer-Daszkiewicz.
|
|
- Jolanta Stasiak
- 8 lat temu
- Przeglądów:
Transkrypt
1 Zaawansowane systemy operacyjne Wirtualizacja Janina Mincer-Daszkiewicz
2 Wirtualizacja (systemu) Definicje Odwzorowanie widocznego na zewnątrz interfejsu warstwy i zasobów na interfejs i zasoby warstwy leżącej pod spodem lub systemu, na którym jest zaimplementowana. Cele Abstrakcja żeby ułatwić korzystanie z zasobów (np. poprzez usuwanie szczegółów ich budowy) Replikacja żeby stworzyć wiele instancji zasobów (prostsze zarządzanie) Izolacja żeby odseparować od siebie użytkowników korzystających z zasobów (np. w celu poprawy bezpieczeństwa) Virtual Machine Monitor (VMM), hipervisor (ang. hypervisor) Oprogramowanie, firmware lub sprzęt, który dzieli pojedynczą fizyczną maszynę na (potencjalnie) wiele maszyn wirtualnych (VM) Terminologia Gospodarz (ang. host) maszyna i/lub oprogramowanie, na którym zaimplementowano VMM Gość (ang. guest) system operacyjny, który wykonuje się pod kontrolą VMM 2
3 Definicje Istnieją dwa typy hipervisorów: hipervisory 1 typu (ang. native) działają bezpośrednio na sprzęcie. hipervisory 2 typu (ang. hosted) działają na systemie operacyjnym gospodarza, który zapewnia usługi wirtualizacji, takie jak wsparcie dla urządzeń we-wy i zarządzanie pamięcią.
4 Źródła pomysłu zasady an efficient, isolated duplicate of the real machine Efektywność Nieszkodliwe instrukcje powinny się wykonywać bezpośrednio na sprzęcie Kontrola zasobów Wykonywane programy nie mogą wpływać na zasoby systemowe Równoważność Zachowanie programu wykonywanego na VMM powinno być takie samo, jak gdyby program wykonywano bezpośrednio na sprzęcie (z wyjątkiem być może dostępności czasu i zasobów) Communications of the ACM, vol 17, no 7, 1974, pp
5 Typy instrukcji Źródła pomysłu zasady cd. Uprzywilejowane Generują pułapki (ang. traps) w trybie nieuprzywilejowanym (użytkownika), lecz nie w trybie uprzywilejowanym (systemu). Wrażliwe Wrażliwe na sterowanie próbują zmienić przydział pamięci lub tryb uprzywilejowania. Wrażliwe behawioralnie na położenie (wykonanie zależy od położenia w pamięci), na tryb (wykonanie zależy od trybu uprzywilejowania). Nieszkodliwe instrukcje, które nie są wrażliwe Twierdzenie Dla dowolnego tradycyjnego komputera trzeciej generacji można zbudować VMM, jeśli zbiór instrukcji wrażliwych tego komputera jest podzbiorem zbioru instrukcji uprzywilejowanych Znaczenie twierdzenia (należy pamiętać, z którego roku jest artykuł) Architektura IA-32/x86 nie jest wirtualizowalna 5
6 Źródła pomysłu technologia IBM Systems Journal, vol. 18, no. 1, 1979, pp Współbieżne wykonanie wielu produkcyjnych systemów operacyjnych Testowanie i rozwój systemów eksperymentalnych Instalowanie nowych systemów z równoległym kontynuowaniem użycia starych Możliwość zapewnienia niektórym aplikacjom specjalnych systemów operacyjnych Lepsza możliwość współprojektowania sprzętu, VMM i systemu operacyjnego gościa CMS pochodzi od Conversational Monitor System (oficjalna nazwa VM/CMS)
7 Wirtualizacja na nowo odkryta Application Guest OS Virtual Machine Application Guest OS Virtual Machine Application Guest OS Virtual Machine VMM May, 2005 Real Machine Konsolidacja serwera/obciążenia (zmniejsza server sprawl jest to sytuacja, gdy w centrum danych wiele fizycznych serwerów jest wykorzystywanych w niewielkim stopniu) Zgodne z rozwijającą się architekturą wielordzeniową Upraszcza dystrybucję oprogramowania w złożonych środowiskach Migracja całego systemu (obciążenia) Poprawa zarządzania i wydajności centrów danych Dodatkowe usługi (izolacja obciążenia) dodane poniżej SO Bezpieczeństwo (wykrywanie intruzów, piaskownice,...) Odporność na awarie (punkty kontrolne, wycofywanie (ang. roll-back)/odtwarzanie po awarii) 7
8 Wirtualizacja architektury IA-32 (x86) Architektura ma warstwy bezpieczeństwa 0.. 3, z SO działającym w warstwie 0 i aplikacjach działających w warstwie 3... i VMM musi wykonywać się w warstwie 0, żeby zachować integralność i kontrolę. ale nie wykonywanie SO gościa w warstwie 0 jest problematyczne: Niektóre instrukcje uprzywilejowane wykonują się jedynie w warstwie 0, lecz nie powodują błędu kiedy są wykonywane poza warstwą 0 (por. uprzywilejowane vs wrażliwe). Instrukcje wymagające niskiej latencji wywołań systemowych (SYSENTER/SYSEXIT) zawsze powodują przejście do warstwy 0 wymuszając na VMM niechcianą emulację lub narzut. Dla architektury Itanium, rejestry przerwań są dostępne tylko w warstwie 0; zmuszanie VMM do przechwytywania wszystkich dostępów do tych rejestrów ze strony sterowników urządzeń ma poważne konsekwencje wydajnościowe Maskowanie przerwań może być wykonywane tylko w w warstwie 0. Kompresja warstw: stronicowanie nie odróżnia poziomów uprzywilejowania 0-2, SO gościa musi wykonywać się w warstwie 3, lecz wówczas nie jest chronione przed swoimi aplikacjami, które także wykonują się w warstwie 3. Nie można używać dla 64-bitowych SO gościa na IA-32. Można wykryć, że SO gościa nie wykonuje się w warstwie 0. 8
9 Wirtualizacja architektury IA-32 (x86) 1998 inżynierowie firmy Vmware dokonali całkowicie programowej wirtualizacji architektury x86. VMM oparto na binarnej translacji dzięki czemu udało się rozwiązać problemy wirtualizacji trap-and-emulate Vmvare wprowadza Virtual SMP (Symmetric Multiprocessing) pojedyncza maszyna wirtualna może być wykonywana na wielu procesorach 2005 Intel dostarcza na rynek procesory ze sprzętowym wsparciem do wirtualizacji zbioru instrukcji (VT-x) 2006 AMD wypuszcza procesory ze sprzętowym wsparciem do wirtualizacji zbioru instrukcji, znane początkowo jako AMD-SVM (Secure Virtual Machine), a później przemianowane na AMD-V (Virtualization) 2007 AMD dostarcza na rynek procesory ze sprzętowym wsparciem do wirtualizacji pamięci (RVI Rapid Virtualization Indexing; w trakcie projektowania znane jako Nested Page Tables), później zaadaptowane przez Intela jako EPT (Extended Page Tables) 9
10 Architektura i interfejsy Architektura: formalna specyfikacja interfejsu systemu i logicznego zachowania jego widocznych zasobów API ABI ISA Libraries Operating System System Calls System ISA Applications User ISA Hardware API Application Programming Interface ABI Application Binary Interface ISA Instruction Set Architecture 10
11 Typy VMM System Dostarcza ABI Efektywne wykonanie Można dodawać usługi niezależne od SO (np. migracja, wykrywanie intruzów) Proces Dostarcza API Łatwiejsza instalacja Wpływa na usługi SO (np. sterowniki urządzeń) Narzut wykonania (prawdopodobnie łagodzony przez kompilację JIT) 11
12 Projekty podejść na poziomie systemu Pełna wirtualizacja (bezpośrednie wykonanie) Sprzęt dostępny dla SO Efektywne wykonanie SO wykonuje się bez zmian Wymaga wirtualizowalnej architektury Przykład: VMWare, VirtualPC, QEMU Parawirtualizacja SO zmieniony, by mógł się wykonywać na VMM Wymaga portowania kodu SO Narzut wykonania Konieczne (kiedyś) dla niektórych (popularnych) architektur (np. x86) Przykłady: Xen, UML, KVM (przed 2005) Emulacja symulacja pełnego środowiska sprzętowego, np. QEMU 12
13 Przestrzeń projektowa (poziom vs ISA) API interface ABI interface Możliwych jest wiele technik i podejść Zakreślone te krytyczne 13
14 Systemowe VM Typ 1 Struktura Typ 1: wykonuje się bezpośrednio na sprzęcie gospodarza Typ 2: wykonuje się na OS gospodarza Główne cele Typ 1: Wysoka wydajność Typ 2: Łatwość konstrukcji/instalacji/ akceptowalności Przykłady Typ 1: VMWare ESX Server, Xen, OS/370 Typ 2: User-mode Linux Typ 2 14
15 Hostowane VM Struktura Hybryda między Typ1 i Typ 2 Bazowy VMM wykonywany bezpośrednio na sprzęcie Usługi wejścia-wyjścia dostarczane przez kod wykonywany na SO gospodarza Cele Ogólna poprawa wydajności Poprawia wsparcie dla urządzeń wejściawyjścia dla SO gospodarza Wady Wprowadza narzut na operacje wejściawyjścia Brak izolacji wydajności i gwarancji wydajności Przykład: VMWare (stacja robocza) 15
16 VM całego systemu Wyzwanie: ISA systemu operacyjnego gościa różni się od ISA systemu operacyjnego gospodarza Wymaga pełnej emulacji systemu operacyjnego gościa i jego aplikacji Przykład: VirtualPC Emulacja i wirtualizacja są podobne, lecz nie identyczne. Emulacja to programowe dostarczanie innego środowiska wykonania lub architektury (np. emulator Androida wykonywany w systemie Windows). Wirtualizacja to tworzenie wirtualnych barier między wieloma środowiskami wirtualnymi wykonywanymi w tym samym środowisku fizycznym 16
17 Strategie GuestOS trap change resource emulate change vmm resource privileged instruction Od-uprzywilejowywanie VMM emuluje wpływ na zasoby systemowe/sprzętowe instrukcji uprzywilejowanych, których wykonanie powoduje przerwanie systemowe typu trap i przekazanie sterowania do VMM Także znany jako trap-and-emulate Zwykle osiąga się przez wykonanie SO gościa na niższym poziomie priorytetu sprzętowego niż VMM Problematyczne w pewnych architekturach, w których instrukcje uprzywilejowane nie powodują zgłoszenia pułapki podczas wykonywania z od-przywilejowanym priorytetem Struktury główne/dodatkowe (ang. primary/shadow) VMM utrzymuje dodatkowe kopie krytycznych struktur, których wersjami głównymi manipuluje SO gościa Przykład tablice stron Kopie główne są potrzebne, żeby zapewnić prawidłowe środowisko widoczne dla SO gościa Ślady pamięci (ang. memory traces) Kontrolowanie dostępu do pamięci, żeby zapewnić spójność struktur głównych i dodatkowych Stosowane strategie: ochrona przez zapisem kopii głównych, dzięki czemu operacje aktualizacji powodują błędy braku strony, które mogą być przechwytywane, interpretowane i emulowane 17
18 Wirtualizacja CPU trap-and-emulate Strategia trap-and-emulate może być stosowana tylko w architekturach ściśle wirtualizowalnych Procesor lub tryb pracy procesora jest ściśle wirtualizowalny (ang. strictly virtualizable) jeśli, gdy jest wykonywany w trybie mniej uprzywilejowanym: Wszystkie instrukcje, które sięgają do trybu uprzywilejowanego powodują pułapkę (ang. trap) Wszystkie instrukcje albo powodują pułapkę, albo wykonują się identycznościowo Problemy związane z trap-and-emulate Nie wszystkie architektury wspierają to rozwiązanie (x86 nie jest ściśle wirtualizowalne, przykład: instrukcja popf, która ustawia flagę przerwania, zachowuje się inaczej w trybie systemowym i inaczej w trybie użytkowym) Koszty pułapek mogą być wysokie VMM zajmuje jeden poziom uprzywilejowania Trzeba wirtualizować poziomy ochrony 18
19 Wirtualizacja CPU tłumaczenie binarne Guest Code Translation Cache vepc mov ebx, eax cli mov ebx, eax mov [VIF], 0 start and ebx, ~0xfff and ebx, ~0xfff mov ebx, cr3 mov [CO_ARG], ebx sti ret call HANDLE_CR3 mov [VIF], 1 test [INT_PEND], 1 jne call HANDLE_INTS jmp HANDLE_RET 19
20 Wirtualizacja CPU tłumaczenie binarne 1. Monitor sprawdza następny blok instrukcji (następny blok podstawowy). Są to zwykle wszystkie instrukcje aż do następnej instrukcji przekazania sterowania, takiej jak rozgałęzienie. 2. Każda instrukcja jest tłumaczona, a tłumaczenie kopiowane do schowka (ang. translation cache) 3. Instrukcje są tłumaczone następująco: Te, które nie powodują problemów mogą być kopiowane do schowka bez zmian. To są tzw. tłumaczenia identycznościowe (ang. ident). Niektóre proste instrukcje niebezpieczne są tłumaczone do prostej sekwencji kodu emulowanego. Ten kod jest umieszczany bezpośrednio w schowku. Jest to tzw. tłumaczenie w miejscu (ang. inline). Przykładem jest modyfikacja flagi Interrupt Enable. Inne niebezpieczne instrukcje muszą być wykonywane przez emulowany kod wewnątrz monitora. Dla tych instrukcji wykonuje się wywołania kodu monitora. Są to tzw. call-outs. Przykładem jest zmiana adresu początku tablicy stron. Rozgałęzienie kończące podstawowy blok kodu także wymaga wywołania kodu monitora. Teraz monitor może skoczyć do początku przetłumaczonego bloku podstawowego z wartościami rejestrów wirtualnych w rejestrach sprzętowych. 20
21 Wirtualizacja pamięci tradycyjne przestrzenie adresowe 0 4GB Virtual Address Space 0 4GB Physical Address Space W tradycyjnym systemach są zwykle dwie przestrzenie adresowe wirtualna przestrzeń adresowa (VAS) i fizyczna przestrzeń adresowa (PAS). SO i procesy użytkowników wykonują się w VAS. SO zarządza mapowaniem z VAS do PAS przy użyciu sprzętowego MMU. SO utrzymuje tablicę stron, która odwzorowuje każdą stronę w bieżącym VAS na stronę w PAS. Zwykle jest jedna taka tablica stron dla procesu. 21
22 Wirtualizacja pamięci tradycyjne przestrzenie adresowe Virtual Address TLB Physical Address Operating System s Page Fault Handler Process Page Table 2 22
23 Wirtualizacja pamięci wirtualizowane przestrzenie adresowe 0 4GB Virtual Address Space 0 0 Guest Page Table Physical Address Space VMM PhysMap Machine Address Space 4GB 4GB W systemie wirtualizowanym warstwa fizyczna staje się warstwą wirtualno-fizyczną. Żeby pozostać w zgodzie z tym co widzi SO gościa, nadal nosi to nazwę PAS, Rzeczywista pamięć systemu nazywana jest teraz MAS. VMM jest odpowiedzialne za utrzymywanie bieżącego mapowania VM z adresów fizycznych na maszynowe. 23
24 Shadow Page Table Wirtualizowane przestrzenie adresowe z Shadow Page Tables 0 4GB Virtual Address Space 0 Guest Page Table Physical Address Space 4GB 0 VMM PhysMap Machine Address Space 4GB Ze względu na dużą liczbę instrukcji, które sięgają do pamięci, trzeba używać sprzętowego TLB do tłumaczenia adresów wirtualnych na maszynowe. Potrzebna jest do tego dodatkowa tablica stron. Rzeczywiste sprzętowe MMU wskazuje na tę dodatkową tablicę. Trzyma ona mapowanie adresów wirtualnych na maszynowe. Procedura obsługi błędów strony w VMM jest odpowiedzialna za wypełnianie pozycji w dodatkowej tablicy stron na bazie tablicy stron gościa i PhysMap. 24
25 Wirtualizowane przestrzenie adresowe z Shadow Page Tables Virtual Address TLB Machine Address Shadow Page Table Guest Page Table 3 PMap 2 A 25
26 Wirtualizowane przestrzenie adresowe z Shadow Page Tables 1. W TLB nie ma szukanego adresu. Sprzęt przegląda dodatkowe tablice stron, żeby znaleźć mapowanie. 2. Możliwe są dwa przypadki: Mapowanie zostanie odnalezione w tablicy stron i umieszczone w TLB. Instrukcja jest restartowana i proces normalnie kontynuuje wykonanie. Całą pracę wykonuje sprzęt. Brak mapowania. Sprzęt generuje błąd braku strony, który zostaje przechwycony przez VMM. VMM musi przetłumaczyć adres wirtualny na maszynowy. Rozpoczyna od przejrzenia tablicy stron gościa, żeby odczytać mapowanie wirtualne na fizyczne. Układ tablicy stron gościa jest określany na podstawie wirtualizowanego sprzętu. 3. VMM przegląda mapowanie dla gościa, mogą zajść dwa scenariusze: Nie ma mapowania dla gościa. W tym przypadku gość oczekuje błędu braku strony. VMM musi wygenerować wyjątek wirtualnego CPU i wznowić wykonanie od pierwszej instrukcji procedury obsługi wyjątków gościa. To jest tzw. prawdziwy błąd strony (ang. true page fault), ponieważ sprzętowy błąd braku strony powoduje błąd strony widoczny przez gościa. Jest mapowanie dla gościa, VMM musi przetłumaczyć stronę fizyczną na maszynową. Jest to tzw. ukryty błąd strony (ang. hidden page fault), ponieważ sprzętowy błąd jest błędem, który by się nie pojawił w nie-wirtualizowanym systemie. Żeby przetłumaczyć stronę fizyczną na maszynową, VMM musi przejrzeć struktury danych, które mapują strony fizyczne na maszynowe. Ta struktura danych jest definiowana przez VMM, na przykład PMap. VMM może musieć wykonać dalszą pracę, jeśli nie ma mapowania stron maszynowych na fizyczne. 4. Tłumaczenie z adresu wirtualnego na maszynowy zostaje zakończone. Nowe tłumaczenie jest wstawiane do dodatkowej tablicy stron. 5. VMM restartuje instrukcję gościa, która spowodowała błąd. Teraz będzie już działał mechanizm wypełniania sprzętowego TLB. 6. Sprzęt ustala nowe mapowanie w TLB i wykonanie jest kontynuowane. 26
27 Problemy z użyciem Shadow Page Tables Utrzymywanie spójności pomocniczej tablicy stron z tablicą stron gościa Co się dzieje, gdy gość zmienia pozycję w tablicy stron Co się dzieje, gdy gość przełącza się na nową tablicę stron przy przełączaniu kontekstu na inny proces Odpowiedź zależy od potrzeby czyszczenia TLB przez gościa Kluczowe dla wydajności jest minimalizowanie liczby ukrytych błędów strony Techniki poprawy wydajności Utrzymywanie jednej pomocniczej tablicy stron na jeden proces gościa Konieczne jest agresywne buforowanie pozycji pomocniczej tablicy stron Trzeba śledzić zapisy do buforowanych tablic stron 27
28 Wirtualizowane przestrzenie adresowe z Nested Page Tables 0 4GB Virtual Address Space 0 0 Guest Page Table Physical Address Space VMM PhysMap Machine Address Space 4GB 4GB Zagnieżdżone tablice stron są przykładem wirtualizacji wspieranej sprzętowo. W tym przypadku sprzęt wykona dwa kolejne tłumaczenia adresów przy błędach TLB. Tablica stron gościa jest teraz używana bezpośrednio przez sprzęt. PhysMap utrzymywana przez VMM staje się zdefiniowaną sprzętowo strukturą danych, która jest używana przy drugim tłumaczeniu adresu. 28
29 Wirtualizowane przestrzenie adresowe z Nested Page Tables Virtual Address TLB Machine Address Guest Page Table 2 PhysMap By VMM 3 29
30 Wirtualizowane przestrzenie adresowe z Nested Page Tables 1. Brak adresu w TLB. Sprzęt przegląda tablicę stron gościa, żeby znaleźć mapowanie. 2. Możliwe są dwa scenariusze: Brak poszukiwanego mapowania. Generowany jest błąd strony i przekazywany do VMM. VMM zwykle przekazuje ten wyjątek do gościa prawdziwy błąd strony. Jest poszukiwane mapowanie. Sprzęt rozpoczyna przeglądanie drugiej tablicy stron 3. Podczas przeglądania PhysMap przez sprzęt możliwe są dwa scenariusze: Brak poszukiwanego mapowania. Generowany jest błąd strony i przekazywany do VMM. VMM obsługuje błąd w odpowiedni sposób. To jest ukryty błąd strony. Jeśli jest mapowanie, to sprzęt umieszcza połączone mapowanie w TLB i instrukcja jest restartowana. 30
31 Wirtualizowane przestrzenie adresowe z Nested Page Tables Zalety Upraszcza projekt monitora Brak potrzeby przeliczania na potrzeby ochrony stron Wady Tablica stron gościa w fizycznej przestrzeni adresowej Trzeba wiele razy przechodzić PhysMap Potrzebne mapowanie adres fizyczny adres maszynowy przy przeglądaniu tablicy stron gościa Potrzebne mapowanie adres fizyczny adres maszynowy dla oryginalnego adresu wirtualnego Inne typy sprzętowego wsparcia dla wirtualizacji pamięci Tryb monitora ma własną przestrzeń adresową Nie ma potrzeby ukrywania VMM 31
32 Przykłady KVM kvmforservervirtualization.pdf
33 KVM (Kernel-based Virtual Machine) Infrastruktura wirtualizacyjna dla jądra Linuksa. Wspiera natywną wirtualizację na procesorach ze sprzętowymi rozszerzeniami dla wirtualizacji (hipervisor typu 1). Oryginalnie wspierał procesory x86, lecz teraz wspiera wiele różnych procesorów i systemów operacyjnych gości, w tym wiele wariantów Linuksa, BSD, Solaris, Windows. Wsparcie ze strony firm: RedHat, IBM, SUSE. 33
34 Architektura KVM Maszyna wirtualna jest implementowana jako zwykły proces w Linuksie, szeregowany przez standardowego planistę. Dzięki temu KVM korzysta z wszystkich cech jądra Linuksa. Emulacja urządzeń jest obsługiwana przez zmodyfikowaną wersję QEMU, która dostarcza emulowany BIOS, szynę PCI, szynę USB i standardowy zbiór urządzeń, takich jak kontrolery dysków IDE i SCSI, karty sieciowe itp. KVM jest platformą wirtualizacyjną dla systemu Linux na sprzęcie x86 zawierającym rozszerzenia wspierające wirtualizację (Intel VT lub AMD-V). Zawiera moduł jądra (nazwany kvm.ko), który dostarcza podstawową infrastrukturę wirtualizacyjną, moduły specyficzne dla procesora (kvm-intel.ko lub kvm-amd.ko) i komponent przestrzeni użytkownika (zmodyfikowaną wersję QEMU). Komponent KVM pojawił się w jądrze Linuksa wraz z wersją (wydaną w styczniu 2007). 34
35 Cechy KVM Architektura KVM Bezpieczeństwo ponieważ maszyna wirtualna jest implementowana jako proces w Linuksie, więc zapewnia standardowy Linuksowy model bezpieczeństwa i kontrolę zasobów Zarządzanie pamięcią KVM dziedziczy mechanizm zarządzania pamięcią z Linuksa. Pamięć maszyny wirtualnej jest przechowywana tak jak pamięć każdego procesu, może podlegać wymianie Zarządzanie pamięcią współdzielenie stron pamięci jest wspierane przez KSM (Kernel Same-page Merging). KSM przegląda pamięć każdej maszyny wirtualnej i jeśli znajdzie identyczne strony pamięci, skleja je w jedną współdzieloną stronę. Jeśli gość spróbuje coś zmodyfikować, to dostanie własną kopię. 35
36 KVM shadow MMU MMU (arch/x86/kvm, mmu.[ch], paging_tmpl.h) odpowiada za prezentowanie gościowi standardowego MMU architektury x86, poprzez tłumaczenie adresów fizycznych gościa na adresy fizyczne gospodarza. MMU wspiera sprzęt MMU pierwszej generacji, który pozwala na atomowe przełączenie bieżącego trybu stronicowania i cr3, jak również dwu-wymiarowe stronicowanie (NPT dla AMD i EPT dla Intela). Emulowany sprzęt, który jest w ten sposób udostępniany, to tradycyjne 2/3/4 poziomowe MMU x86, ze wsparciem dla globalnych stron, PAE (Page Address Extension), PSE (Page Size Extension), PSE-36, CR0.WP (Write Protect bit) i 1 GB stron. 36
37 Stosowane skróty pfn host page frame number hpa host physical address hva host virtual address gfn guest frame number gpa guest physical address gva guest virtual address ngpa nested guest physical address ngva nested guest virtual address pte page table entry gpte guest pte (referring to gfns) spte shadow pte (referring to pfns) tdp two dimensional paging (vendor neutral term for NPT and EPT) 37
38 Tłumaczenie adresów Głównym zadaniem MMU jest zaprogramowanie MMU procesora w taki sposób, żeby tłumaczyło adresy gościa. W różnych sytuacjach są potrzebne różne tłumaczenia: Kiedy wyłączone jest stronicowanie gościa, to należy tłumaczyć gpa hpa Kiedy włączone jest stronicowanie gościa, to należy tłumaczyć gva gpa hpa Kiedy gość uruchamia swojego gościa, trzeba tłumaczyć ngva ngpa gpa hpa Wyzwanie polega na zakodowaniu od 1 do 3 tłumaczeń na sprzęcie, który wspiera tylko 1 (tradycyjne) lub 2 (tdp) tłumaczenia. Kiedy liczba wymaganych tłumaczeń jest zgodna ze sprzętem, to MMU działa w trybie bezpośrednim, wpp działa w trybie shadow. 38
39 Slajdy z prezentacji: Nested paging hardware and software Benjamin Serebrin Jörg Rödel KVM Forum
40
41
42
43
44
45
46
47 Przykłady QMU QEMU, a Fast and Portable Dynamic Translator, Fabrice Bellard, Usenix
48 QEMU (Quick EMUlator) QEMU to hosted VMM (Virtual Machine Monitor) (typ 2) ogólnego przeznaczenia, dystrybuowany jako open-source. Może być używany jako emulator lub wirtualizator komputera. Gdy jest używany jako emulator, QEMU może wykonywać systemy operacyjne i programy przygotowane na jeden komputer (np. płytę ARM) na innym komputerze (np. PC). Dzięki użyciu dynamicznej binarnej translacji, osiąga bardzo dobrą wydajność. Gdy jest używany jako wirtualizator, QEMU osiąga wydajność bliską natywnej wykonując kod gościa bezpośrednio na CPU gospodarza. QEMU wspiera wirtualizację gdy wykonuje się na hipervisorze Xen lub gdy używa modułu KVM w Linuksie. Docelowa architektura musi być taka sama jak architektura gospodarza, na przykład gdy wykonuje się qemu-system-x86 na procesorze zgodnym z x86. 48
49 Tryby działania QEMU QEMU może działać w dwóch trybach: 1. Pełna emulacja systemu (full system emulation) W tym trybie (pełna wirtualizacja platformy), QEMU emuluje pełny system (zwykle PC), włączając w to procesor i różne urządzenia peryferyjne. Może zostać użyty do uruchomienia kilku różnych systemów operacyjnych naraz bez reinstalacji maszyny gospodarza lub w celu testowania kodu systemowego. 2. Emulacja w trybie użytkownika (user mode emulation) W tym trybie (wirtualizacja na poziomie aplikacji), QEMU umożliwia wykonywanie procesów skompilowanych na jedno CPU na innym CPU, jednak systemy operacyjne muszą pasować. Można to wykorzystywać np. żeby ułatwić cross-kompilację i cross-testowanie. 49
50 Architektura QEMU
51 Przykłady VMware The Evolution of an x86 Virtual Machine Monitor. Ole Agesen, Alex Garthwaite, Jeffrey Sheldon, Pratap Subrahmanyam, VMWare, Virtualization Performance. Perspectives and Challenges Ahead. Richard McDougall, Jennifer Anderson, Vmware, Memory Resource Management in VMware ESX Server, Carl A. Waldspurger, 2002
52 Vmware binarna translacja VMM VMM VMM Base Functionality (e.g. scheduling) Enhanced Functionality Hypervisor 52
53 Binarna translacja sensitive SIMULATE(d) innocuous IDENT(ical) innocuous Cechy Binarna na wejściu jest kod maszynowy Dynamiczna ma miejsce w czasie wykonania Na żądanie kod tłumaczony wtedy, gdy potrzebny do wykonania Poziom systemu nie czyni żadnych założeń odnośnie kodu gościa Podzbiór tłumaczy z pełnego zbioru instrukcji do bezpiecznego podzbioru Adaptowalność dostosowuje kod zależnie od zachowania gościa w celu osiągnięcia dobrej wydajności 53
54 % translation Binarna translacja Hash Table 3 ([x], [y]) Translation Cache PC [x] 1 Binary Translator 2 [y] 4 TU CCF execute 5 Few cache hits TU: CCF: translation unit (usually a basic block) compiled code fragment : continuation Working set captured Running time 54
55 Eliminacja błędów/pułapek Można uniknąć kosztownych błędów/pułapek Przykład: Instrukcja uprzywilejowana Pentium (rdtsc read time-stamp counter into edx:eax) Trap-and-emulate: 2030 cykli Callout-and-emulate: 1254 cykli In-TC emulation: 216 cykli Proces Instrukcje uprzywilejowane wyeliminowane przez prostą binarną translację (BT) Instrukcje nieuprzywilejowane Wyeliminowane przez adaptacyjną BT wykryj CCF zawierające instrukcję, która często powoduje pułapkę generuje nowe tłumaczenie CCF żeby uniknąć pułapki (być może wstawiając callout do interpretera), załataj oryginalne tłumaczenie żeby wykonać nowe tłumaczenie 55
56 Zarządzanie pamięcią Zarządzanie pamięcią na poziomie VMM (meta-poziom) Musi identyfikować VM i strony w ramach VM do wymiany Decyzje wymiany pochodzące z VMM mogą powodować niechciane interakcje ze strategią wymiany stron SO gościa Najgorszy przypadek: podwójne stronicowanie Strategie Balonowanie (ang. ballooning) Dodaj żądania pamięci w SO gościa, żeby to SO gościa decydował, które strony wymienić Także używane w Xen Eliminacja zdublowanych stron nawet identycznych stron między różnymi SO gościa (współdzielenie) VMM ma wystarczającą perspektywę Czyste zyski, gdy wykonuje się wiele kopii tego samego SO gościa Algorytm przydziału Równoważy wykorzystanie pamięci vs. gwarancje izolacji wydajności Taksuje (ang. tax) bezczynną pamięć 56
57 Balonowanie Balon moduł wstawiony do SO gościa jako pseudosterownik lub usługa jądra Nie ma interfejsu do SO gościa i aplikacji Ma prywatny kanał komunikacji z VMM Przepytuje VMM o bieżący rozmiar balona Balon trzyma liczbę ramek przyszpilonych w pamięci równą jego bieżącemu rozmiarowi 57
58 Balon pompowanie powietrza Pompowanie balona Balon żąda dodatkowych przypiętych stron od SO gościa Pompowanie balona powoduje, że SO gościa wybiera strony do usunięcia używając swojej strategii wymiany stron Balon informuje VMM, które strony fizyczne zostały mu przydzielone VMM zwalnia ramki maszyny odpowiadające fizycznym ramkom przydzielonym balonowi (tym samym zwalniając pamięć, którą będzie można przydzielić innym SO gości) 58
59 Balon spuszczanie powietrza Spuszczanie powietrza z balona VMM odzyskuje ramki maszyny VMM przekazuje informacje do balona Balon odpina/zwalnia fizyczne ramki odpowiadające nowym ramkom maszyny SO gościa używa swojego algorytmu wymiany stron żeby sprowadzić potrzebne strony 59
60 Współdzielenie stron na podstawie zawartości (ang. content based) Tablica haszująca zawiera pozycje na współdzielone strony oznaczone jako COW Dla strony kandydata jest generowany klucz z wartości haszującej z zawartości strony Dokonuje się pełnego porównania między stroną kandydatem a stroną z pasującą wartością klucza Strony, które pasują są współdzielone pozycje w tablicach stron dla ich VMM wskazują na tę samą stronę maszynową Jeśli nie ma dopasowania, to do tablicy haszującej jest dodawana ramka wskazówka (ang. hint) dla przyszłych przypuszczalnych dopasowań Pisanie do współdzielonej strony powoduje błąd braku strony, w wyniku którego powstaje osobna kopia dla OS gościa dokonującego zapisu 60
61 Wydajność współdzielenia stron Identyczne systemy Linux wykonujące ten sam zestaw programów testowych (ang. benchmark) Przypadek optymalny Duża część (67%) pamięci jest współdzielona Odzyskuje się zauważalną ilość i procent pamięci Zasadniczo brak wpływu na zagregowaną przepustowość systemu 61
62 Przykłady Xen Xen and the Art of Virtualization. Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, Andrew Warfield, University of Cambridge, Safe Hardware Access with the Xen Virtual Machine Monitor. Keir Fraser, Steven Hand, Rolf Neugebauer, Ian Pratt, Andrew Wareld, Mark Williamson, University of Cambridge,
63 Wady pełnej wirtualizacji Xen parawirtualizacja Pewne instrukcje supervisora muszą być obsługiwane przez VMM, lecz wykonywanie ich z nieodpowiednimi uprawnieniami przechodzi bez echa zamiast powodować pułapkę (ang. trap) Translacja binarna obejmuje cały kod jądra SO gościa, gdyż trzeba przechwycić i obsłużyć wszystkie instrukcje uprzywilejowane, które nie powodują zgłoszenia pułapki. Rozwiązanie problemu polega na utrzymywaniu wersji dodatkowych (ang. shadow) struktur systemowych, takich jak tablice stron. Spójność zapewnia się przechwytując każdą próbę aktualizacji (ang. update). Parawirtualizacja Tworzy się abstrakcję maszyny wirtualnej, która jest podobna, ale nie identyczna ze sprzętem Zwiększa to możliwości poprawy wydajności, ale kosztem zmian w SO gościa (to jest wada) Nie są wymagane zmiany w ABI, dlatego nie trzeba zmieniać aplikacji gościa Xen to hipervisor typu 1, gdyż działa na wyższym poziomie priorytetu niż kod hostowanego SO gościa 63
64 Architektura Xen
65 Xen struktura Domena to VM i wykonywany w nim SO gościa Domena 0 Najbardziej uprzywilejowana domena, tylko ona ma (domyślnie) bezpośredni dostęp do sprzętu. Z tej domeny można zarządzać VMM i uruchamiać nieuprzywilejowane domeny Ma sterowniki urządzeń działające w tle Xen VMM Warstwa abstrakcji między sprzętem a SO gości Całkowicie sterowany zdarzeniami Nie ma wewnętrznych wątków Jest aktualnie dostępny na architektury IA-32, x86-64, Itanium i ARM Obsługuje wiele SO, także Microsoft Windows 65
66 Interfejs maszyny wirtualnej CPU System operacyjny jest zwykle najbardziej uprzywilejowanym bytem w systemie W przypadku Xen hipervisor jest ulokowany pomiędzy SO gościa a CPU Hipervisor jest najbardziej uprzywilejowanym bytem w systemie Xen Xen używa pierścieni ochrony, by zapewnić hypervisorowi wyższy poziom uprzywilejowania niż ma SO gościa 66
67 Interfejs maszyny wirtualnej CPU Pierścienie ochrony w x86 Zwykle: Xen: SO wykonuje się na poziomie 0 Aplikacje wykonują się na poziomie 3 Poziomy 1 i 2 są niewykorzystane Hipervisor wykonuje się na poziomie 0 SO gościa wykonuje się na poziomie 1 67
68 Wirtualizacja MMU Shadow Page Table VMM machine OS physical process virtual entity address space VMM dodatkowe tablice stron GuestOS tablice stron Izolacja/ochrona przestrzeni adresowej SO gościa Efektywne tłumaczenie adresów 68
69 Wirtualizacja MMU tryb bezpośredni SO gości alokują i zarządzają własnymi tablicami stron (PT) Żeby zmienić adres początkowy PT, trzeba wywołać hypercall Xen musi walidować aktualizacje PT przed wykonaniem Możliwe są inkrementalne aktualizacje, unika rewalidacji Reguły walidacji zastosowane do każdego PTE: 1. Gość może jedynie mapować te strony, których jest właścicielem 2. Strony tablic stron mogą być mapowane jedynie w trybie RO Xen wyłapuje (traps) aktualizacje PTE i emuluje (unhooks) strony PTE do masowych aktualizacji 69
70 Xen PV vs HVM Xen inicjalnie wspierał jedynie PV (Paravirtualization), teraz potrafi korzystać z nowych rozszerzeń procesora na potrzeby wirtualizacji dodanych do architektury x86. Hardware Virtual Machine (HVM) pozwala na wirtualizację na hipervisorze Xena niezmodyfikowanych systemów operacyjnych gości. HVM wymaga procesorów, które sprzętowo wspierają wirtualizację (Intel VT or AMD-V). Rozszerzenia na potrzeby wirtualizacji powodują, że wiele uprzywilejowanych instrukcji jądra, które w PV były tłumaczone na hypercalls jest obsługiwanych przez sprzęt przy użyciu techniki trap-and-emulate. Jest to podobne do klasycznej FV (Full Virtualization), lecz zamiast programowo jest realizowane sprzętowo, co istotnie poprawia wydajność. 70
Systemy Operacyjne Wirtualizacja
Katedra Informatyki, Politechnika Świętokrzyska w Kielcach Kielce, 23 stycznia 2015 Plan 1 2 Symulacja Emulacja 3 4 5 6 jest techniką zarządzania zasobami, która umożliwia ich współdzielenie przez procesy
Bardziej szczegółowoLinux -- u mnie działa!
Linux -- u mnie działa! Wirtualizacja - czyli jak z jednego komputera zrobić 100 Stanisław Kulczycki grung@kce.one.pl Agenda Co to jest wirtualizacja? Zastosowanie Metody wirtualizacji Popularne maszyny
Bardziej szczegółowoQEMU działa na procesorach procesorach: emuluje procesory: dostępne dla s.o. hosta:
QEMU Stosunkowo szybki emulator procesora, korzystający z tzw. dynamicznej translacji i kilku innych ciekawych technik programistycznych i optymalizacyjnych. działa na procesorach procesorach: Intel x86,
Bardziej szczegółowoPrzegląd dostępnych hypervisorów. Jakub Wojtasz IT Solutions Architect jwojtasz@atom-tech.pl
Przegląd dostępnych hypervisorów Jakub Wojtasz IT Solutions Architect jwojtasz@atom-tech.pl Agenda Podział hypervisorów Architektura wybranych rozwiązań Najwięksi gracze na rynku Podział hypervisorów Hypervisor
Bardziej szczegółowoHosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (http://www.amu.edu.pl/~mtanas)
Hosting WWW Bezpieczeństwo hostingu WWW Dr Michał Tanaś (http://www.amu.edu.pl/~mtanas) System IT ogólna budowa Historia wirtualizacji Pierwsze komputery lata 40 i 50 Komputer bezpośrednio wykonuje program
Bardziej szczegółowoQ E M U. http://www.qemu.com/
http://www.qemu.com/ Emulator procesora Autor: Fabrice Bellard Obsługiwane platformy: Windows, Solaris, Linux, FreeBSD, Mac OS X Aktualna wersja: 0.9.0 Większość programu oparta na licencji LGPL, a sama
Bardziej szczegółowoMonitor maszyn wirtualnych
Monitor maszyn wirtualnych Jest to oprogramowanie nadzorujące działanie systemów gości Może być to oddzielny software lub zintegrowany z systemem operacyjnym System gospodarza Oznaczany zazwyczaj jako
Bardziej szczegółowoCzym jest wirtualizacja
Czym jest wirtualizacja Wirtualizacja Szerokie pojęcie odnoszące się do abstrakcji zasobów w różnych aspektach komputeryzacji. Odnosi się do: procesorów pamięci języków programowania Karol Kański Cele
Bardziej szczegółowoWirtualizacja. Piotr Sikora Tomasz Ziółkowski
Wirtualizacja Wirtualizacja Piotr Sikora Tomasz Ziółkowski 1 Plan wykładu Pojęcie wirtualizacji Historia zagadnienia Kryterium realizowalności VM Dlaczego stosować wirtualizację? Rodzaje wirtualizacji
Bardziej szczegółowoSYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy
Bardziej szczegółowoWIRTUALIZACJA. Kamil Frydel, Julia Romanowska, Maciej Sokołowski. 12 listopada 2007 WIRTUALIZACJA. Kamil Frydel, Julia Romanowska, Maciej Sokołowski
12 listopada 2007 Spis treści Wirtualizacja - co to? Definicja Sposób podziału zasobów komputera na wiele izolowanych środowisk (partycji). Na jednym fizycznym komputerze/serwerze może być utworzonych
Bardziej szczegółowoWirtualizacja. Metody, zastosowania, przykłady
Wirtualizacja Metody, zastosowania, przykłady Wirtualizacja - Definicja Użycie oprogramowania w celu stworzenia abstrakcji (iluzji) posiadanych zasobów. Historia Pierwsze szerzej znane zastosowanie: komputer
Bardziej szczegółowoVMware, QEMU, UML. oraz inne wirtualne maszyny. Piotr Findeisen Filip Grządkowski Piotr Kuśka Krzysztof Mroczek
VMware, QEMU, UML oraz inne wirtualne maszyny Piotr Findeisen Filip Grządkowski Piotr Kuśka Krzysztof Mroczek Wirtualizacja - technika ukrywania fizycznej charakterystyki zasobów przed systemami, aplikacjami
Bardziej szczegółowoU M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)
http://user-mode-linux.sourceforge.net/ System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux) Autor: Jeff Dike Koncepcja powstała w 1999 r. Początkowo jako patch do jądra 2.0
Bardziej szczegółowoZarządzanie pamięcią operacyjną
SOE Systemy Operacyjne Wykład 7 Zarządzanie pamięcią operacyjną dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Hierarchia pamięci czas dostępu Rejestry Pamięć podręczna koszt
Bardziej szczegółowoDziałanie systemu operacyjnego
Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania
Bardziej szczegółowoSystem wspomagania zarządzania wirtualizacją
Plan prezentacji: Co to jest wirtualizacja? Przegląd rozwiązań wirtualizacji, plusy i minusy każdego z nich Przegląd gotowych bibliotek które posłużą mi do stworzenia systemu. Interfejs oparty o WWW Co
Bardziej szczegółowoDziałanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć
Bardziej szczegółowoStruktury systemów operacyjnych
Struktury systemów operacyjnych Jan Tuziemski Część slajdów to zmodyfiowane slajdy ze strony os-booi.com copyright Silberschatz, Galvin and Gagne, 2013 Cele wykładu 1. Opis usług dostarczanych przez OS
Bardziej szczegółowoPrezentacja emulatora QEMU Zajęcia SO
Prezentacja emulatora QEMU Zajęcia SO 08.11.2006 Czym jest QEMU...? QEMU to emulator procesora: osiągający bardzo dobrą szybkość emulacji udostępniony jako otwarte oprogramowanie Do czego może się przydać..?
Bardziej szczegółowoPrzepełnienie bufora. SQL Injection Załączenie zewnętrznego kodu XSS. Nabycie uprawnień innego użytkownika/klienta/administratora
NAUKOWA I AKADEMICKA SIEĆ KOMPUTEROWA Bezpieczeństwo rozwiązań hostingowych Hosting wirtualny - studium przypadku Secure 2008 3 października 2008 Arkadiusz Kalicki, NASK Agenda Zagrożenia Omówienie zabezpieczeń
Bardziej szczegółowoPrezentacja systemu RTLinux
Prezentacja systemu RTLinux Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach
Bardziej szczegółowoWirtualizacja w praktyce.
Wirtualizacja w praktyce. Autor: Marek Serafin Wirtualizacja - to proste! Poznaj zalety wirtualizacji i sytuacje, w których sprawdza się ona najlepiej Naucz się instalować najpopularniejsze rozwiązania
Bardziej szczegółowo3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/2012 2 / 22
ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH struktury procesorów ASK SP.06 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 Maszyny wirtualne 2 3 Literatura c Dr inż. Ignacy
Bardziej szczegółowoSystemy operacyjne III
Systemy operacyjne III WYKŁAD Jan Kazimirski Pamięć wirtualna Stronicowanie Pamięć podzielona na niewielki bloki Bloki procesu to strony a bloki fizyczne to ramki System operacyjny przechowuje dla każdego
Bardziej szczegółowoWprowadzenie do systemów operacyjnych
SOE - Systemy Operacyjne Wykład 1 Wprowadzenie do systemów operacyjnych dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW System komputerowy Podstawowe pojęcia System operacyjny
Bardziej szczegółowoDziałanie systemu operacyjnego
Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej sieci Pamięć operacyjna Przerwania Przerwania Przerwanie
Bardziej szczegółowoZarządzanie zasobami pamięci
Zarządzanie zasobami pamięci System operacyjny wykonuje programy umieszczone w pamięci operacyjnej. W pamięci operacyjnej przechowywany jest obecnie wykonywany program (proces) oraz niezbędne dane. Jeżeli
Bardziej szczegółowoWIRTUALIZACJA teoria i praktyka. Oskar Skibski, Piotr Sikora, Mateusz Kruszyński
WIRTUALIZACJA teoria i praktyka Oskar Skibski, Piotr Sikora, Mateusz Kruszyński Plan prezentacji Wstęp co to jest? po co to jest? Rodzaje wirtualizacji emulacja pełna emulacja API wirtualizacja Problemy
Bardziej szczegółowoSchematy zarzadzania pamięcia
Schematy zarzadzania pamięcia Segmentacja podział obszaru pamięci procesu na logiczne jednostki segmenty o dowolnej długości. Postać adresu logicznego: [nr segmentu, przesunięcie]. Zwykle przechowywana
Bardziej szczegółowoJądro systemu operacyjnego
Jądro systemu operacyjnego Jądro (ang. kernel) jest to podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania. Zapewnia ono usługi systemowe takie jak: komunikacja między
Bardziej szczegółowodr inż. Jarosław Forenc
Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki
Bardziej szczegółowoDziałanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego I NIC Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej
Bardziej szczegółowoPamięć wirtualna w AS/400
Pamięć wirtualna w AS/400 Jan Posiadała 19 listopada 2002 1 Spis treści 1 Wpowadzenie - co to takiego AS/400 3 2 Organizacja pamięci 4 2.1 Koncepcja wymiany................................. 4 2.2 Koncepcja
Bardziej szczegółowoArchitektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)
Struktury systemów komputerowych Architektura systemu komputerowego Działanie systemu komputerowego Struktura we/wy Struktura pamięci Hierarchia pamięci Ochrona sprzętowa Architektura 2.1 2.2 Działanie
Bardziej szczegółowoWybrane zagadnienia elektroniki współczesnej
Wybrane zagadnienia elektroniki współczesnej y pracy, Marika Kuczyńska Fizyka Techniczna IV rok 20-03-2013, AGH prezentacji y pracy 1 2 y pracy 3 4 5 6 Jednostka wykonawcza, instrukcje (Marika) Rodzina
Bardziej szczegółowoWykład 7. Zarządzanie pamięcią
Wykład 7 Zarządzanie pamięcią -1- Świat idealny a świat rzeczywisty W idealnym świecie pamięć powinna Mieć bardzo dużą pojemność Mieć bardzo krótki czas dostępu Być nieulotna (zawartość nie jest tracona
Bardziej szczegółowoWirtualizacja. wspomagana sprzętowo - zalety, wady, zagrożenia. Szymon Doroz & Bartosz Janiak & Przemysław Zych
Wirtualizacja wspomagana sprzętowo - zalety, wady, zagrożenia Szymon Doroz & Bartosz Janiak & Przemysław Zych Agenda Czym jest wirtualizacja Krótka historia Wirtualizacja wspomagana sprzętowo Prezentacje
Bardziej szczegółowoEPTI: Efficient Defence against Meltdown Attack for Unpatched VMs
EPTI: Efficient Defence against Meltdown Attack for Unpatched VMs Zhichao Hua, Dong Du, Yubin Xia, Haibo Chen, Binyu Zang Institute of Parallel and Distributed Systems, Shanghai Jiao Tong University Meltdown
Bardziej szczegółowoWirtualizacja. czyli trochę co innego niż rzeczy do tej pory omawiane
Wirtualizacja czyli trochę co innego niż rzeczy do tej pory omawiane Wady przedstawionych rozwiązań Emulacja całego sprzętu (Bochs) jest strasznie wolna Czemu? Każda instrukcja w SO guesta była symulowana
Bardziej szczegółowoWirtualizacje. Opracowali: Piotr Dąbrowiecki Jakub Gołębiowski Winicjusz Szyszka
Wirtualizacje Opracowali: Piotr Dąbrowiecki Jakub Gołębiowski Winicjusz Szyszka Co to jest maszyna wirtualna? Rodzaje maszyn wirtualnych Interpretery Kompilatory Emulatory Własności maszyn wirtualnych
Bardziej szczegółowoRDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,
RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC, zapoczątkowana przez i wstecznie zgodna z 16-bitowym procesorem
Bardziej szczegółowoWirtualizacja Systemy operacyjne
Michał Albrycht Bartosz Borkowski Radosław Kujawa Wirtualizacja Systemy operacyjne Agenda Wirtualizacja Historia i współczesne wykorzystanie Podziały wirtualizacji Wirtualizacja tablic stron Shadow Page
Bardziej szczegółowoArchitektura chmur i wirtualizacja. Wykład 4 Wirtualizacja
Architektura chmur i wirtualizacja Wykład 4 Wirtualizacja Zawartość Wprowadzenie do wirtualizacji Warstwy i interfejsy Wirtualne maszyny i menedżery wirtualnych maszyn Wsparcie sprzętowe Bezpieczeństwo
Bardziej szczegółowoCyberGuru Wirtualizacja na platformie Hyper-V w pigułce. Prezentuje: Kamil Frankowicz
CyberGuru Wirtualizacja na platformie Hyper-V w pigułce O czym będziemy mówić? Czym jest wirtualizacja i co ma mi do zaoferowania? Co jest potrzebne do uruchomienia Hyper-V?(Windows 8 i Windows Server
Bardziej szczegółowoWirtualizacja. Paweł Mantur Artur Mączka Tomasz Niedabylski
Wirtualizacja Paweł Mantur Artur Mączka Tomasz Niedabylski Plan prezentacji Wprowadzenie teoretyczne Problemy w architekturze x86 Wprowadzone przez AMD i Intela wsparcie sprzętowe Prezentacja wybranych
Bardziej szczegółowoPodstawy informatyki. System operacyjny. dr inż. Adam Klimowicz
Podstawy informatyki System operacyjny dr inż. Adam Klimowicz System operacyjny OS (ang. Operating System) Program komputerowy bądź zbiór programów, który zarządza udostępnianiem zasobów komputera aplikacjom.
Bardziej szczegółowoZarządzanie pamięcią operacyjną
Dariusz Wawrzyniak Plan wykładu Pamięć jako zasób systemu komputerowego hierarchia pamięci przestrzeń owa Wsparcie dla zarządzania pamięcią na poziomie architektury komputera Podział i przydział pamięci
Bardziej szczegółowoBudowa systemów komputerowych
Budowa systemów komputerowych Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl Współczesny system komputerowy System komputerowy składa
Bardziej szczegółowoVirtual Grid Resource Management System with Virtualization Technology
Virtual Grid Resource Management System with Virtualization Technology System zarządzania zasobami wirtualnego Gridu z wykorzystaniem technik wirtualizacji Joanna Kosińska Jacek Kosiński Krzysztof Zieliński
Bardziej szczegółowoPrzegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX
Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX CONFidence 2005 IX Liceum Ogólnokształcące im. C.K. Norwida w Częstochowie Krajowy Fundusz na Rzecz Dzieci Wojciech A. Koszek
Bardziej szczegółowoMAGISTRALE ZEWNĘTRZNE, gniazda kart rozszerzeń, w istotnym stopniu wpływają na
, gniazda kart rozszerzeń, w istotnym stopniu wpływają na wydajność systemu komputerowego, m.in. ze względu na fakt, że układy zewnętrzne montowane na tych kartach (zwłaszcza kontrolery dysków twardych,
Bardziej szczegółowoVMware. Prezentacja na Systemy Operacyjne
VMware Prezentacja na Systemy Operacyjne VMware Workstation Komercyjny produkt tworzony i sprzedawany przez firmę VMware Inc. Można skorzystać z 30-dniowego triala Pozwala na uruchomienie wielu maszyn
Bardziej szczegółowoKoncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source
Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source Dr inż. Michał Bednarczyk Uniwersytet Warmińsko-Mazurski w Olsztynie Wydział Geodezji i Gospodarki Przestrzennej Katedra Geodezji
Bardziej szczegółowoKonwersja maszyny fizycznej na wirtualną
1 (Pobrane z slow7.pl) Konwersja maszyny fizycznej na wirtualną (odsłona druga). Zadanie to wykonamy przy pomocy narzędzia Paragon Go Virtual. Paragon Go Virtual to rozwiązanie, które pomoże zrealizować
Bardziej szczegółowoWprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera
Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Definicja systemu operacyjnego (1) Miejsce,
Bardziej szczegółowoarchitektura komputerów w. 8 Zarządzanie pamięcią
architektura komputerów w. 8 Zarządzanie pamięcią Zarządzanie pamięcią Jednostka centralna dysponuje zwykle duża mocą obliczeniową. Sprawne wykorzystanie możliwości jednostki przetwarzającej wymaga obecności
Bardziej szczegółowoWprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera
Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Miejsce, rola i zadania systemu operacyjnego
Bardziej szczegółowoSystemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak
Wprowadzenie Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego
Bardziej szczegółowoSystemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy
Systemy operacyjne Systemy operacyjne Dr inż. Ignacy Pardyka Literatura Siberschatz A. i inn. Podstawy systemów operacyjnych, WNT, Warszawa Skorupski A. Podstawy budowy i działania komputerów, WKiŁ, Warszawa
Bardziej szczegółowoPrzegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX
Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX Wojciech A. Koszek dunstan@freebsd.czest.pl IX Liceum Ogólnokształcące im. C.K. Norwida w Częstochowie Krajowy Fundusz na
Bardziej szczegółowoZarządzanie pamięcią operacyjną zagadnienia podstawowe
Zarządzanie pamięcią operacyjną zagadnienia podstawowe Pamięć jako zasób systemu komputerowego Pamięć jest zasobem służący do przechowywania danych. Z punktu widzenia systemu pamięć jest zasobem o strukturze
Bardziej szczegółowoZadanie1. Wykorzystując serwis internetowy Wikipedii wyjaśnij następujące pojęcia: wirtualizacja, VirtualBox, Vmware, KVM, Virtual PC, Hyper-V.
T: Wirtualizacja instalacji serwera Windows. Zadanie1. Wykorzystując serwis internetowy Wikipedii wyjaśnij następujące pojęcia: wirtualizacja, VirtualBox, Vmware, KVM, Virtual PC, Hyper-V. VirtualBox to
Bardziej szczegółowoSystem komputerowy. System komputerowy
System komputerowy System komputerowy System komputerowy układ współdziałających ze sobą (według pewnych zasad) dwóch składowych: sprzętu komputerowego (hardware) oraz oprogramowania (software) po to,
Bardziej szczegółowoSYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią
Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 PLAN: 2. Pamięć rzeczywista 3. Pamięć wirtualna
Bardziej szczegółowoLEKCJA TEMAT: Zasada działania komputera.
LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem
Bardziej szczegółowoProjektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI
Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI plan Cechy, właściwości procesów Multitasking Scheduling Fork czym jest proces? Działającą instancją programu Program jest kolekcją
Bardziej szczegółowoWirtualizacja jako środek zmniejszenia kosztów działalności przedsiębiorstwa w czasach kryzysu
Wirtualizacja jako środek zmniejszenia kosztów działalności przedsiębiorstwa w czasach kryzysu Marcin Cerkiewnik Promotor: Dr inż. Dariusz Chaładyniak Tytułem wstępu Celem każdej komercyjnej działalności
Bardziej szczegółowoDefinicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego
Systemy operacyjne wprowadzenie 1 Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) System operacyjny jest zbiorem ręcznych i automatycznych procedur, które pozwalają grupie osób na
Bardziej szczegółowoTablice stron, bezpośredni dostęp do urządzeń z maszyny wirtualnej i IOMMU.
Tablice stron, bezpośredni dostęp do urządzeń z maszyny wirtualnej i IOMMU. Filip Grotkowski 21 listopada 2008 Omówienie problemów i ich rozwiązań. 1 Spis treści 1 Tablice stron 3 1.1 Shadow Page Table.................................
Bardziej szczegółowoWirtualizacja. Przegla d wybranych technik. Magda Michalska Krzysztof Kulewski Andrzej Pacuk. Systemy operacyjne 2006
Przegla d wybranych technik Magda Michalska Krzysztof Kulewski Andrzej Pacuk Systemy operacyjne 2006 Plan 1 Czym jest wirtualizacja? Zastosowanie 2 na poziomie systemu operacyjnego 3 Przegla d oprogramowania
Bardziej szczegółowoLinux KVM - wparcie dla wirtualizacji w kontekście serwerów ARM
Linux - wparcie dla wirtualizacji w kontekście serwerów ARM Plan Terminologia i koncepcja wirtualizacji QEMU Czym jest? Architektura ARMv8 i wsparcie dla wirtualizacji poziomy uprzywilejowania dodatkowy
Bardziej szczegółowoArchitektura systemu komputerowego
Architektura systemu komputerowego Klawiatura 1 2 Drukarka Mysz Monitor CPU Sterownik dysku Sterownik USB Sterownik PS/2 lub USB Sterownik portu szeregowego Sterownik wideo Pamięć operacyjna Działanie
Bardziej szczegółowoSystem pamięci. Pamięć wirtualna
System pamięci Pamięć wirtualna Pamięć wirtualna Model pamięci cache+ram nie jest jeszcze realistyczny W rzeczywistych systemach działa wiele programów jednocześnie Każdy może używać tej samej przestrzeni
Bardziej szczegółowoZarządzanie pamięcią w systemie operacyjnym
Zarządzanie pamięcią w systemie operacyjnym Cele: przydział zasobów pamięciowych wykonywanym programom, zapewnienie bezpieczeństwa wykonywanych procesów (ochrona pamięci), efektywne wykorzystanie dostępnej
Bardziej szczegółowoArchitektura komputerów
Architektura komputerów Tydzień 12 Wspomaganie systemu operacyjnego: pamięć wirtualna Partycjonowanie Pamięć jest dzielona, aby mogło korzystać z niej wiele procesów. Dla jednego procesu przydzielana jest
Bardziej szczegółowoSYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)
(opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie
Bardziej szczegółowoSOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus
SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pamięć wirtualna Stronicowanie na żądanie większość współczesnych systemów
Bardziej szczegółowoGrzegorz Jaśkiewicz Dariusz Stefański
Logiczne partycjonowanie systemów Grzegorz Jaśkiewicz Dariusz Stefański Plan prezentacji Podstawowe informacje Zastosowanie Hypervisor działanie hypervisora Wsparcie sprzętowe Partycjonowanie sprzętowe
Bardziej szczegółowoStrojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i
VI Seminarium PLOUG Warszawa Styczeñ 2003 Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i Marcin Przepiórowski Strojenie systemu Linux pod kątem serwera bazy danych Oracle 9i 7 1. Wstęp
Bardziej szczegółowoARCHITEKTURA PROCESORA,
ARCHITEKTURA PROCESORA, poza blokami funkcjonalnymi, to przede wszystkim: a. formaty rozkazów, b. lista rozkazów, c. rejestry dostępne programowo, d. sposoby adresowania pamięci, e. sposoby współpracy
Bardziej szczegółowoLPAR - logiczne partycjonowanie systemów
Mateusz Błażewicz Piotr Butryn Jan Sikora MIMUW 20 grudnia 2007 1 2 Budowa i możliwości Instalacja 3 Budowa Co to jest? LPAR - logiczne partycjonowanie sprzętu Dzielenie zasobów fizycznego serwera na niezależne,
Bardziej szczegółowoSprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów
Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów przeznaczonych do wykonania w komputerze (ang. software).
Bardziej szczegółowoSYSTEMY OPERACYJNE. kik.pcz.czest.pl/so. (C) KIK PCz 2009. Materiały pomocnicze 1 PROWADZI: PODSTAWOWA LITERATURA: ZAJĘCIA: STRONA
SYSTEMY OPERACYJNE PROWADZI: dr inż. Jarosław Bilski Katedra Inżynierii Komputerowej Politechnika Częstochowska Wykład dla kierunku Informatyka 2 ZAJĘCIA: Obowiązkowe Wykład Laboratorium 2 godziny tygodniowo
Bardziej szczegółowoUNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci
UNIX: architektura i implementacja mechanizmów bezpieczeństwa Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci Plan prezentacji: Wprowadzenie do struktury systemów rodziny UNIX
Bardziej szczegółowoSystemy operacyjne II
Systemy operacyjne II Wojciech Kwedlo Wydział Informatyki PB, p. 205 wkwedlo@ii.pb.bialystok.pl aragorn.pb.bialystok.pl/~wkwedlo Pracownia specjalistyczna: Wojciech Kwedlo Krzysztof Bandurski Wojciech
Bardziej szczegółowoRHEL 5 wpływ wirtualizacji na koszty
RHEL 5 wpływ wirtualizacji na koszty Grzegorz Niezgoda B2B Sp. Z o.o. Warszawa 2009.09.09 Copyright B2B Sp. z o.o. 2009 Pełna (wspomagana sprzętowo) & Para-Wirtualizacja Red Hat Enterprise Linux 5 wspiera
Bardziej szczegółowoOracle VM - Przegląd architektury i możliwości
Oracle VM Przegląd architektury i możliwości OPITZ CONSULTING Kraków Nowoczesne techniki konsolidacji i optymalizacji środowisk opartych o rozwiązania Oracle (2011) Mateusz Dohnal (Starszy konsultant)
Bardziej szczegółowoStronicowanie w systemie pamięci wirtualnej
Pamięć wirtualna Stronicowanie w systemie pamięci wirtualnej Stronicowanie z wymianą stron pomiędzy pamięcią pierwszego i drugiego rzędu. Zalety w porównaniu z prostym stronicowaniem: rozszerzenie przestrzeni
Bardziej szczegółowoSystemy operacyjne. Paweł Pełczyński
Systemy operacyjne Paweł Pełczyński ppelczynski@swspiz.pl 1 Program przedmiotu Wprowadzenie Struktura systemów operacyjnych Procesy i Wątki Komunikacja międzyprocesowa Szeregowanie procesów Zarządzanie
Bardziej szczegółowoWsparcie migracji obliczeń poprzez wirtualizację zasobów sieciowych
1 I3net 2009 Wsparcie migracji obliczeń poprzez wirtualizację zasobów sieciowych Wsparcie migracji obliczeń poprzez wirtualizację zasobów sieciowych Jacek Kosiński, Marcin Jarząb, Krzysztof Zieliński Katedra
Bardziej szczegółowoSystemy operacyjne system przerwań
system przerwań przerwanie: procesor zawiesza wykonanie bieżącego zadania i przechodzi do obsługi przerwania przerwania: maskowalne i niemaskowalne wektor przerwań adres (tablica adresów) kodu obsługi
Bardziej szczegółowoSzybki start instalacji SUSE Linux Enterprise Server 11 SP1
Szybki start instalacji SUSE Linux Enterprise Server 11 SP1 Szybki start instalacji SUSE Linux Enterprise Server 11 SP1 SKRÓCONA INSTRUKCJA OBSŁUGI NOVELL Aby zainstalować nową wersję produktu SUSE Linux
Bardziej szczegółowoPodstawy. Pamięć wirtualna. (demand paging)
Pamięć wirtualna Podstawy Podstawy Stronicowanie na żądanie Wymiana strony Przydział ramek Szamotanie (thrashing) Pamięć wirtualna (virtual memory) oddzielenie pamięci logicznej użytkownika od fizycznej.
Bardziej szczegółowoUTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386
Budowa procesora 80386 Struktura wewnętrzna logiczna procesora 80386 Pierwszy prawdziwy procesor 32-bitowy. Zawiera wewnętrzne 32-bitowe rejestry (omówione zostaną w modułach następnych), pozwalające przetwarzać
Bardziej szczegółowoWZÓR UMOWY. Zawarta w Białymstoku, w dniu.. pomiędzy:
WZÓR UMOWY Zawarta w Białymstoku, w dniu.. pomiędzy: Województwem Podlaskim, z siedzibą w Białymstoku przy ul. Kardynała Stefana Wyszyńskiego 1, w imieniu którego działa, na podstawie upoważnienia udzielonego
Bardziej szczegółowoArchitektura komputerów
Architektura komputerów Wykład 7 Jan Kazimirski 1 Pamięć podręczna 2 Pamięć komputera - charakterystyka Położenie Procesor rejestry, pamięć podręczna Pamięć wewnętrzna pamięć podręczna, główna Pamięć zewnętrzna
Bardziej szczegółowoMariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1
Mariusz Rudnicki mariusz.rudnicki@eti.pg.gda.pl PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1 Przedmiot PSCR Przedmiot PSCR Wykład do połowy semestru Laboratorium od połowy semestru Projekt Zaliczenie
Bardziej szczegółowoMANAGER 2010 PROFESSIONALP VS. VIRTUALIZATION WIRTUALIZACJA OBSŁUGIWANE ANAGER 2010 C MANAGER 2010 CORPORATE: Funkcja. Korzyści.
VIRTUALIZATION MANAGER 2010 PROFESSIONALP VS. VIRTUALIZATION MANAGER 2010 CORPORATE: ANAGER 2010 C Funkcja Opis Korzyści VM 2010 Professional VM 2010 Corporate WIRTUALIZACJA I MIGRACJE Funkcja Connect
Bardziej szczegółowoWykorzystanie wirtualizacji w kluczowych scenariuszach data-center
Wykorzystanie wirtualizacji w kluczowych scenariuszach data-center Jerzy Mikołajczak, Sebastian Petruczynik, Marek Zawadzki Poznańskie Centrum Superkomputerowo Sieciowe III Konferencja MIC Nowoczesne technologie
Bardziej szczegółowo