You are on page 1of 13

Simulacija, emulacija

i virtuelizacija

dr Mihajlo Savić

1/13
Simulatori
● Reprodukovanje ponašanja jednog uređaja na drugom
● Omogućavaju nam da u bilo kom trenutku
– zaustavimo izvršavanje,
– da izvršavamo korak po korak,
– da se vratimo unazad kroz vrijeme,
– da direktno mijenjamo interna stanja sistema na načine koji
nisu mogući u stvarnoj upotrebi.
● Tipično su kompletna okruženja koja nam omogućavaju da
simuliramo i brojne druge hardverske komponente i ispitujemo
njihovo ponašanje u okviru simuliranog sistema

2/13
Simulatori (PICSimLab)

3/13
Emulatori
● Reprodukovanje ponašanja jednog uređaja na drugom

● Prednost: mogućnost potpune emulacije bilo kog procesora (hadrvera) na bilo


kom procesoru (hardveru), na primjer:
– x86-64 Windows pod Linuxom na RISC platformi,
– MacOS x86-64 CPU pod MacOS na Apple M1 (RISC) CPU-om,
– mobilni uređaj sa 32bit ARM procesorom pod Windowsom na x86_64,
– emulacija CPU-a sa 16 jezgara i 1 TB RAM na laptopu, ...

● Mana: tipično loše performanse

● Bochs, QEMU (uključuje i VT – kqemu, qvm86)

4/13
Virtuelizacija
● Prva demonstracija – IBM CP-40 1967. -> open source CP/CMS
● Popek i Goldberg – teorijski zahtjevi za efikasnu virtuelizaciju
– Postavljeni 1974. godine
– Zasnovani na pojednostavljenom modelu, koriste se i danas

Ekvivalentnost
– Program koji se izvršava u okviru VM treba da se ponaša na identičan
način kao da se izvršava na stvarnoj mašini.

Kontrola resursa
– VMM mora u potpunosti kontrolisati sve virtuelizovane resurse.

Efikasnost
– Značajna većina instrukcija mora biti izvršena bez uplitanja VMM.

5/13
Virtuelizacija
● Virtuelna mašina
– izolacija aplikacije od hardvera
– stvaranje okruženja za emulaciju operativnog sistema
– efikasna, izolovana kopija realnog sistema

● Virtual Machine Monitor – upravlja VM-ovima


● Najčešći pristupi:
– Potpuna virtuelizacija
– Dinamičko rekompajliranje

6/13
Procesori bazirani na x86
● Realni mod
● Zaštićeni mod
– 16-bitni (80286 – GDT, LDT)
– 32-bitni (80386 – paging, virtual memory)
● 64-bitni mod (IA64, AMD64, EM64T)
● Virtuelizacija (problematična, nepotpuna)
– 64bit – Intel VT, AMD Pacifica – potpuna VT
● Periferije uvijek problem
– Prekidi, IOMMU, SR-IOV, GPU

7/13
Procesorski prstenovi
● RING 0 – kernel
● RING 1,2 – drajveri (teoretski)
● RING 3 – korisnički programi

● Potpuna virtuelizacija x86 / 64bit


– Virtuelizacija ugrađena u procesor
– RING -1 – devet novih instrukcija
– Virtuelizacija memorije – AMD vs Intel
● Intel prihvata AMD-ov pristup od Nehalem arhitekture (2008)

8/13
Virtuelizacija - hardver
● VM Monitor (VMM) direktno pristupa hardveru
– Drajveri za sve moguće periferije
– Veća kontrola proizvođača VMM-a => veći kvalitet
– I troškovi su veći, manje tržište, strožija kontrola

● VMM koristi drajvere osnovnog operativnog sistema za


apstrakciju pristupa periferijama
– Automatski radi sve što i pod osnovnim OS-om
– Nemamo nikakvu garanciju da radi kako treba
– Naročito u virtuelizovanom okruženju

9/13
Vrste VMM

Stand-alone VMM
– Izvršava se “ispod” svih operativnih sistema
– Direktan pristup hardveru
– Tipično serverski pristup
– Primjeri: VMWare ESX, XenServer, ...

Hosted VMM
– Koristi usluge osnovnog OS
– Desktop rješenje
– Jedino dostupno na x86 (bez VT)
– VMWare Workstation/Player, VirtualBox

10/13
Virtuelizacija i memorija
● Virtuelizacija memorije od 80386 nadalje

● Definisanje količine RAM za virtuelnu mašinu


– Interno svapovanje u VM
● Katastrofa jer je još sporije nego samo svapovanje

– Problem sa performansama

● Ako je VMM “gost” osnovnog OS-a (hosted)


– Dijeljenje resursa
– Mogućnost svapovanja na disk u određenim trenucima
● Katastrofa jer ni ne znamo da smo svapovani

11/13
Virtuelizacija i periferije
● Pristup I/O uređajima je osjetljiv (privilegovan)
– Dinamičko kompajliranje
● Prebacivanje iz emuliranog svijeta u stvarni OS stvara gubitke
performansi
– A dešava se jako često
● Operacije niskog nivoa se pretvaraju u operacije višeg nivoa
– Direktan pristup hard disku se prevodi u običan read()
– Koji se opet realizuje i na stvarnom hard disku
● Upotreba paravirtuelizovanih drajvera poboljšava performanse
– Drajveri koji su "svjesni" da ne rade sa stvarnim periferijama

12/13
Hvala na pažnji

PITANJA?

13/13

You might also like