Správce virtuálních strojůSprávce virtuálních strojů
Martin SloupNatalia RubinovaJiří Kučera
Obsah - členění aplikaceObsah - členění aplikaceManažer virtuálních strojů
(procesů)Virtuální strojUživatelské aplikace
◦cat, sort, ls, ps…Shell + parserKonzole (terminálové okno)
Manažer virtuálních strojůManažer virtuálních strojůNeběží ve vlastním vlákněVytváří deskriptory a procesyGeneruje PID procesůUchovává deskriptory v datových
strukturáchSpouští procesy (virtuální stroje)Ruší deskriptory skončených
procesůVypíná virtuální OS
Schéma strukturSchéma struktur
Virtuální strojVirtuální strojSimuluje běžící proces pomocí
vlákenRozhraní mezi procesem a
manažeremPoskytuje API procesu
◦Vstup, výstup, spouštění procesů…Nastavuje I/O a roury spouštěných
potomků„Úklid“ ukončených procesů
◦Samostatné vlákno
Uživatelské aplikace Uživatelské aplikace (procesy)(procesy)Nejsou napevno zabudovány
◦Načítání pomocí Class loaderu◦Názvy case-insensitive◦Pro každou aplikaci vlastní VM
Prvotní aplikace – init◦Spuštěna staticky zavaděčem
systému◦Spouští aplikaci login
Shell je také uživatelská aplikace
Shell a parser příkazové Shell a parser příkazové řádkyřádkyShell předává výstup z parseru do
VMEscapování znaků Řešení změny pracovního adresářePříkazy shellu
◦cd, exitSnaha o blbovzdornost
př.: cat < in > out | sortMožnost kompaktního zápisu
př.: cat<in|sort>out
KonzoleKonzoleImplementace pomocí Java SwingVlastní implementace
InputStream a OutputStream pro vstup a výstup z konzole
Klávesové zkratky◦Ukončení vstupu◦Nová konzole
Průběžné zhodnocení Průběžné zhodnocení prácepráceSoučasný stav aplikace
◦Většina hotova◦Ladění◦Dopisování uživatelských aplikací
Přínosy◦Tvorba vícevláknových aplikací◦Hlubší pohled do fungování OS◦Práce v týmu
Ukázka běžícího systémuUkázka běžícího systému
Dotazy a připomínky?Dotazy a připomínky?
Děkujeme za pozornostDěkujeme za pozornost