Virtu aln pam et' PB 152 Operacn syst emy Jan Staudek http://www..muni.cz/usr/staudek/vyuka/ Ð Û Å«Æ ±²³ µ ¹º»¼½¾ Ý Verze : jaro 2017
Virtualizace pam eti principy, z aklady str ankov an na z adost, Demand Paging d uvody pro virtualizaci procesy v prostred s virtu aln pam et politiky pr ace se str ankami nahrazovac algoritmy Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 1
Pouzvan e pojmy prevazujc model virtualizace { str ankov an na z adost Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 2
Virtu aln pam et', z akladn principy separace LAP a FAP LAP { virtu aln pamet', manipulovan a po str ank ach (c ast LAP procesu je zobrazena v re aln e pameti, cel y LAP procesu je zobrazen y na disku) FAP { re aln a pamet', spravovan a po r amcch ve FAP se mus nach azet alespo n str anky programu potrebn e pro bezprostredn rzen procesu str anky procesu umsten e ve FAP nemus b yt umsten e v sousednch r amcch FAP soudob e architektury { LAP je (podstatne) vets nez FAP adresov e prostory ve FAP lze (snadno) sdlet procesy lze tudz vytv aret efektivn eji techniky implementace virtu aln pam eti str ankov an na z adost, Demand Paging, prevazujc model segmentov an na z adost, Demand Segmentation Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 3
LAP je (podstatne) vets nez FAP Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 4
Str ankov an / segmentace, prost a varianta / na z adost Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 5
Str ankov an / segmentace, prost a varianta / na z adost Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 6
Str ankov an (P:) versus segmentov an (S:) P: FAP je 1-dimension aln, alokovan y po dlech { r amcch { pevn e d elky S: FAP je 1-dimension aln, alokovan y po dlech promenn e d elky P: LAP je 1-dimension aln, del se na str anky denic d elky str anky v CPU S: LAP je 2-dimension aln (segmenty x bu nky v segmentu, segmenty LAP vymezuje konstrukce adresy v instrukci P: Vnitrn fragmentace v r amcch, z adn a extern fragmentace S: Z adn a vnitrn fragmentace, moznost extern fragmentace Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 7
Str ankov an (P:) versus segmentov an (S:) P: OS udrzuje tabulku str anek s urcenm r amce pro kazdou str anku S: OS udrzuje tabulku segment u s b az a d elkou kazd eho segmentu P: OS udrzuje tabulku r amc u denujc stav kazd eho r amce S: OS udrzuje seznam voln ych oblast FAP P: LAP FAP se res dynamicky pri behu mikroporgramem podle tabulky str anek, PT S: LAP FAP se res dynamicky pri behu mikroporgramem podle tabulky segment u, ST Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 8
Str ankov an (P:) versus segmentov an (S:) P: Str anky procesu se zav adej do re aln e pameti podle potreby S: Segmenty procesu se zav adej do re aln e pameti podle potreby P: Zaveden str anky do re aln e pameti m uze vyz adat v ypis nekter e str anky na disk S: Zaveden segmentu do re aln e pameti m uze vyz adat v ypis jednoho nebo nekolika segment u na disk Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 9
D uvody pro virtualizaci pam eti str ankov anm/segmentac na z adost preklad adres LAP do adres FAP je treba delat co nejpozdeji, nejl epe dynamicky, pri b ehu procesu prid elov an souvisl ych oblast FAP procesu zp usobuje vn ejs fragmentaci, str ankov an tuto fragmentaci eliminuje stupe n multitaskingu je treba udrzovat co nejvyss, rostou tm ale n aroky proces u na prostor ve FAP existuj procesy s pam et'ov ymi n aroky presahujcmi dostupnou (moznou) velikost FAP pri behu procesu se nem uze ve FAP najednou uchov avat cel y program a vsechna potrebn a data, zav ad ej se dynamicky Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 10
Princip casoprostorov e lokality procesu Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 11
Princip casoprostorov e lokality chov an procesu odkazy na instrukce programu a na data maj tendenci tvorit shluky { casov a lokalita a prostorov a lokalita prov aden programu m a, s v yjimkou skok u a vol an podprogram u, sekvencn charakter programy maj tendenci z ust avat po jistou dobu v prostoru nekolika m alo procedur, nelze jen volat a vracet se v etsina iterativnch konstrukt u predstavuje mal y pocet casto opakovan ych instrukc, casto zpracov avanou datovou strukturou je pole dat nebo posloupnost z aznam u lze tudz d elat inteligentn odhady o c astech programu/dat potrebn ych v nejblizs budoucnosti ve FAP hlavn pamet' (FAP) se m uze naplnit neco umstit do FAP pak znamen a nejdrve neco jin eho z FAP odstranit Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 12
Beh proces u ve virtu aln pameti respektuje se pln a separace LAP a FAP velikost LAP je podstatn e v ets nez velikost (dostupn eho) FAP OS pri startu procesu zavede do FAP pouze malou c ast programu (LAP) s mstem kam se inici alne pred av a rzen po t e doch az k dynamick ym v ymen am c ast LAP ve FAP po str ank ach / po segmentech,,na z adost", tj. az je jejich obsah referencovan y pro preklad logick e adresy na fyzickou adresu se pouzv a tabulka str anek/segment u, PT/ST, Page/Segment Table kazd a polozka v PT / ST obsahuje bit indikujc ukoncen e zaveden odpovdajc str anky (segmentu) do FAP { bit valid/invalid, V/I, present,... Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 13
Typick y obsah polozky PT pri virtualizaci Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 14
Beh proces u ve virtu aln pameti C ast (LAP) procesu umstenou ve FAP naz yv ame rezidentn mnozinou (resident set) Odkaz mimo rezidentn mnozinu zp usobuje prerusen v ypadkem str anky/segmentu (page/segment fault) OS oznac takov y proces za cekajc (na str anku/segment ve FAP) OS spust I/O operace a provede operace spr avy pameti nutn e pro zaveden odkazovan e c asti LAP do FAP mezitm, behem jejho zav aden, bez jin y proces (jin e procesy) po zaveden odkazovan e c asti se generuje I/O prerusen OS cekajc proces premst mezi pripraven e procesy preklad adresy LAP na adresu FAP se del a,,indexov anm", transformacemi pomoc hodnot zapsan ych do tabulky PT/ST vykon avan ymi pomoc hardware CPU (mikroprogramov e) Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 15
LAP, LAP procesu do FAP se,,per partes"umst'uje pouze c ast LAP, kterou proces skutecne vyuzv a Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 16
Virtu aln pam et' { vlastnosti, rekapitulace Ve FAP lze udrzovat vce proces u najednou, ve FAP nemus b yt zobrazen e cel e LAP proces u jednotliv e procesy okamzit e pozaduj m en e prostoru ve FAP cm vce je proces u ve FAP, tm je vets pravdepodobnost, ze st ale bude alespo n jeden pripraven y { schopn y behu prov ad se m ene IO operac, zav ad se pouze c asti LAP dosahuje se rychlejsch do reakc i pri vce uzivatelch Lze realizovat procesy pozadujc v sum e vce pam eti nez je kapacita FAP aniz se o resen tohoto probl emu star a program ator / kompil ator jak se res ulozen obrazu LAP (virtu aln pam eti) v extern pameti? nepouzv a se standardn syst em soubor u OS pouzv a se singul arn metoda organizace souboru { vets bloky, speci aln vyhled av an,... Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 17
Virtu aln pam et' { vlastnosti, rekapitulace Str ankov an / segmentaci (prostou i na z adost) mus podporovat hardware spr avy pam eti z adost { dynamicky kontextov e generovan a indikace nedostatku (tj. neprtomnosti adresovan eho objektu ve FAP) pri zsk av an prst instrukce nebo pri referenci dat OS mus b yt schopen organizovat tok str anek/segment u mezi vnitrn a vn ejs pam et Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 18
Prklady rozm er u str anek Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 19
Fetch Policy { kdy str anku zav adet? Dv e politiky str ankov an na z adost (Demand paging) str anka se zobrazuje do FAP pri odkazu na ni, pokud ve FAP nen jiz zobrazena zp usobuje poc atecn shluky v ypadk u str anek predstr ankov an (Prepaging) umsten sousednch str anek v LAP v obrazu LAP na vnejs pameti b yv a rovnez blzk e plat princip caso-prostorov e lokality, sousedn str anky v LAP se s velkou pravd epodobnosti pouzvaj v blzk em casoprostoru zav ad se vce sousednch str anek nez se z ad a predstr ankov an je vhodn a politika zvl ast e pri inicializaci procesu Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 20
Str ankov an na z adost Str anka se zav ad do FAP kdyz je (pravdepodobne) potrebn a prnosy prov ad se m ene IO operac vznikaj mens pozadavky na pam et' rychlejs interakce { m uze pracovat vce uzivatel u Kdy je str anka potrebn a? byla odkazovan a, referencovan a Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 21
Str ankov an na z adost Kdy je reference str anky leg aln? leg aln reference str anky { nach az se ve FAP, procesu / CPU je dostupn a { logick a adresa se mikroprogramem preloz na fyzickou adresu neleg aln reference str anky m uze b yt dvojho druhu { chybn a reference str anky, porusen ochran, odkaz na v procesu nedenovan y LAP,... abort procesu { reference str anky procesu neumsten e ve FAP jej zaveden do FAP zprostredkov av a OS Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 22
Str ankov an na z adost, bit Valid/Invalid vsechny str anky nemus b yt ve FAP soucasne Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 23
Str ankov an na z adost, bit Valid/Invalid, v ypadek str anky S kazd ym r adkem PT je spojen bit valid/invalid, V/I 1: str anka je ve FAP, 0: str anka nen ve FAP je-li pri prekladu logick e adresy na fyzickou adresu V/I = 0, generuje se prerusen typu v ypadek str anky, page fault OS si zjist { jedn a se chybnou referenci OS spust abort procesu { jedn a se o referenci str anky procesu chybejc ve FAP OS spust jej zaveden * proces umst mezi cekajc * nalezne pr azdn y r amec ve FAP * zavede z obrazu LAP ve vnejs pameti chybejc str anku do tohoto r amce * zkoriguje PT, nastav v n cslo r amce bit valid ( = 1) * proces cekajc na str anku umst mezi pripraven e procesy tak, aby se zopakovalo proveden instrukce, kter a zp usobila v ypadek str anky Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 24
Placement policy { kam str anku zav adet? kam str anku / segment umstit ve FAP? str ankov an nem a v yznam, pro umsten str anky se vol libovoln y voln y r amec segmentace politiky rst-t, best-t, worst-t, next-t,... kombinace segmentov an + str ankov an, str ankovan e segmety nem a v yznam, pro umsten str anky se vol libovoln y voln y r amec Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 25
Str ankov an na z adost, v ypadek str anky, nen voln y r amec N ahrada str anky v r amci pozadovanou str ankou obet' { str anka ve FAP d ale uz (pravdepodobne) nepotrebn a pokud se do n nezapsalo, jej kopie na disku je, bez probl emu se prepse ve FAP pokud se do n zapsalo, nejprve se prepse jej obraz v obrazu LAP ve vnejs pameti Je potrebn y algoritmus hled an ob eti a resen n ahrady krit erium optimality optim aln algoritmus zp usobuje nejm ene v ypadk u str anek Nekter e str anky mohou b yt do FAP za zivot procesu zav adeny opakovan e Nekter e r amce jsou docasne chr anen e pred uvolnenm (I/O buery,... ) Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 26
Replacement Policy { kterou str anku nahradit? Politika nahrazov an uplat nuje se v okamziku, kdy je re aln a pamet' (FAP) pln a nen dostupn y neobsazen y r amec Kterou str anku,,ob etovat"a vyhodit z FAP? tak e Politika v yberu obeti rzen a algoritmem pro v yber obeti urcen ob eti ide aln obet' { str anka, kter a jiz nebude odkazovan a, :-(( volbu mj. ovliv nuje politika prid elov an prostoru ve FAP procesu intro- mnozina mozn ych ob et { obeti lze hledat jen mezi str ankami procesu, kter y vyvolal v ypadek str anky extra- mnozina mozn ych ob et { obeti lze hledat i mezi str ankami libovoln ych existujcch proces u Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 27
Algoritmus nahrazov an str anek Res OS po prerusen v ypadkem str anky: 1. Proces dej sp at, dokud se nezsk a referencovan a str anka 2. Nalezni umst en pozadovan e str anky na disku 3. Nalezni voln y r amec: { existuje { pouzije se, { neexistuje { start v yberu obeti a uvolnen r amce 4. Nacti pozadovanou str anku do voln eho / uvolnen eho r amce 5. Koriguj tabulku str anek a tabulku r amc u 6. Restart procesu (via dispecer) od adresy instrukce, kter a zp usobila v ypadek str anky Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 28
V ykon str ankov an na z adost Skutecn a doba prstupu do pam eti, Effective Access Time (EAT) p { pravdepodobnost v ypadku str anky, pak EAT = (1 { p) x doba přístupu do paměti + 200 ns p x (režie přerušení výpadkem stránky + 1{100 µs [doba výpisu stránky ]+ cca 8 ms doba načtení stránky + cca 8 ms režie restartu instrukce ) 1{100 µs tempo v ypadk u str anek urcuje pravdepodobnost v ypadku str anky 0 p 1.0 kdyz p = 0, pak k v ypadk um nedoch az, LAP procesu se nach az v FAP kdyz p = 1, kazd a reference zp usob v ypadek na disk se vypisuj obeti jen kdyz byly ve FAP modikov any v PT se udrzuje modify (dirty) bit = 1 pri z apisu do str anky, nastav ho prslusn y mikroprogram Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 29
V ykon str ankov an na z adost, ilustrativn prklad EAT = (1 { p) x 200 + p x (8 000 000) = = 7 999 800 p + 200 pokud v ypadek str anky nastane 1-kr at za 1000 referenc, EAT = 8,2 µs pricem doba prstupu do pameti = 0,2 µs v ykon poctace 40-kr at klesl nem a-li se v ykon snzit vc nez o 10%: 220 > 200 + 7 999 800p, tj. p < 0, 000 002 5 v ypadek str anky nesm nastat casteji nez 1-kr at za 399 990 referenc Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 30
Algoritmy v yberu obeti Optimal (OPT) ob et je str anka s nejzazs referenc First-in-rst-out (FIFO) cyklick y v yber r amc u s obet Least recently used (LRU) ob et je str anka nejd ele nereferencovan a Clock, prp. "druh a sance\ cyklick y v yber r amc u s obet s moznost zskat "zivot\ docasne oprav nujc vybranou ob et' po jistou dobu ve FAP prezt implementace: FIFO + dodatecn e n astroje aproximace algoritmu LRU Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 31
Algoritmy v yberu obeti Krit erium optimality { dosazen nejmens mozn e pravd epodobnosti v ypadku str anky Pri ilustraci algoritm u pouzijeme shodnou posloupnost referenc str anek { 2 3 2 1 5 2 4 5 3 2 5 2 Pouzit y FAP bude obsahovat 3 r amce Obecn a pravda { se vzr ustem poctu r amc u pridelen ych procesu pocet v ypadk u procesem generovan ych v ypadk u str anek kles a cel y program vc. dat ve FAP znamen a, ze se negeneruje z adn y v ypadek str anky Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 32
Prklad obsazov an FAP probran ymi nahrazovacmi algoritmy Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 33
OPT, optim aln nahrazov an obet', mus platit = prst odkaz na obet' je nejpozdejs odkaz ze vsech n asledn ych odkaz u na str anky algoritmus OPT generuje nejmens pocet v ypadk u str anek algoritmus OPT je obecn e neimplementovateln y, nezn ame budoucnost, pouzv a se jako srovn avac norm al Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 34
FIFO nahrazov an obet' = str anka nejd ele zobrazen a ve FAP casto pouzvan e str anky mnohdy jsou ty nejstars str anky pravdepodobnost brzk eho v ypadku takov e str anky je vysok a jednoduch a implementace R amce prid elen e procesu jsou organizov any do cyklick eho bueru, kdyz je buer pln y, nahrazuje se nejstars str anka Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 35
LRU nahrazov an, LRU { Least Receantly Used obet' = ve FAP nejd ele neodkazovan a str anka princip lokality: pravd epodobnost odkazu na ni je mal a i kdyz m a kvalitu blzkou optim aln strategii, pouzv a se zrdka, z d uvodu obtzn e a neefektivn implementace Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 36
LRU nahrazov an, LRU { Least Receantly Used trivi aln implementace politiky LRU V polozk ach PT se udrzuj (HW) ctace behu casu (+1 po t) Kazd a referencovan a str anka se v polozce PT oznac nulovou dobou od poslednho referencov an ob et je str anka s nejdels dobou nereferencov an negativa: { konstrukcn e velmi drah e resen { ctac m a konecnou kapacitu { probl em jeho pretecen n ahrada rzen a hodinami ke kazd e str ance (r amci) je prirazen jeden registr pri referenci str anky v r amci se do registru okopruj hodiny Pri hled an obeti se vybr a nejd ele nereferencovan a str anka Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 37
Algoritmy aproximujc LRU bit reference spojen s kazdou str ankou v PT, poc atecne (inicializuje OS) = 0 kdyz je str anka referencovan a, = 1 (mikroprogramov e) historie referenc pomoc bitu reference slabika spojen a s kazdou str ankou v PT, poc atecne (inicializuje OS) = 00000000 2 bit 0 je bit reference obsah slabiky se periodicky posouv a vlevo obsah slabiky ilustruje 8 krok u historie { zda v period e odpovdajc kroku byla str anka referencovan a { 00000000 2 po 8 krocch { str anka nebyla v ubec referencovan a { 11111111 2 po 8 krocch { str anka byla referencovan a v kazd em kroku Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 38
Algoritmy aproximujc LRU Druh a sance Vyuzv a op et bit reference z aklad algoritmu { n ahrada hodinami (casov ym poradm, FIFO) Je-li str anka vybran a jako ob et' podle principu hodin/fifo a m a-li bit reference = 1, pak: { bit reference se nastav na 0 { str anka se nech a v pameti { hled a se dals obet' (podle hodin/fifo) a podle stejn ych pravidel de facto FIFO, z v yberu obeti se vynech av a alespo n jednou odk azan a str anka od poslednho v yberu Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 39
Algoritmus,,Druh a sance" Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 40
Algoritmy aproximujc LRU modikovan a (vylepsen a),,druh a sance\ bit reference je v PT doplnen y o bit modifikace porad v yb eru (cyklicky, pocnaje tam, kdy v yb er naposledy skoncil): 1. 00, nereferencovan a, nemodikovan a { stac ji v r amci prepsat a pokud hled an selze, hled a se 2. 10, referencovan a, nemodikovan a { stac ji v r amci prepsat nahozen e bity reference u vynech avan ych r amc u se nuluj, vsechny prohlzen e r amce budou mt bit reference 0 a pokud hled an selze, opakuje se krok 1, prp. i krok 2 dokud nen modikovan a str anka vypsan a na disk, nelze ji urcit jako obet' pouzvala drv ejs verze Macintosh virtual memory scheme Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 41
Algoritmus,,Modikovan a druh a sance" Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 42
Dals experiment aln algoritmy { ctac algoritmy udrzuje se ctace poct u referenc ud elan ych na kazdou str anku Algoritmus LFU, Least Frequently Used: aktivn str anka je hodn e referencovan a ob et je str anka s nejmens hodnotou ctace, je m alo referencovan a probl em: { inicializacn c ast programu bude mockr at pouzita a pak uz v ubec ne, ale bude dlouho setrv avat v re aln e pameti resen: ctac lze periodicky posouvat doprava (snizovat jeho hodnotu) Algoritmus MFU, Most Frequently Used: ob et je str anka s nejv ets hodnotou ctace, mozn a je ve FAP uz,,dlouho" str anka s nejmensm ctacem asi byla pr ave umstena do pameti a nestacila b yt jest e referencovan a, tak ji nevyhazujme Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 43
Pridelov an poctu r amc u proces um a politiky v yberu obet Kazd y proces potrebuje jist y minim aln pocet str anek ve FAP Prklad IBM 370 { potreboval 6 str anek pro zvl adnut instrukce MOVE: instrukce mela d elku 6 B mohla lezet az ve 2 str ank ach, 2 str anky pro odkud, 2 str anky pro kam hlavn principy prid elov an r amc u proces um pevn e pridelov an poctu r amc u proces um { stejn y pocet nebo proporcion aln pocty (velikostem LAP proces u) prioritn prid elov an { podle (dynamick e) priority procesu hlavn politiky v yberu obeti lok aln v yber, ze str anek procesu, kter y zp usobil v ypadek str anky glob aln v yber, ze str anek kter ehokoliv procesu Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 44
Pridelov an poctu r amc u proces um a politiky v yberu obet pevn y pocet r amc u, lok aln n ahrady alokace poctu r amc u podle typu aplikace d usledek podhodnocen / nadhodnocen { poddimenzov an { zv ys se frekvence v ypadk u str anek predimenzov an { snz se mozn y stupe n multiprogramov an pevn y pocet r amc u, glob aln n ahrady nerealizovateln e, nesmysln e resen promenn y pocet r amc u, glob aln n ahrady nejsnazs implementace, klasick a politika v mnoha OS, Unix SVR4,... nebezpec,,v yprasku\, Thrashing, mnoho proces u s mal ym poctem pridelen ych r amc u, mnoho v ypadk u, cek an na I/O na disky. roste multitasking,... promenn y pocet r amc u, lok aln n ahrady tzv. pracovn mnoziny, pozd eji detaily Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 45
Politika cist en str anek protip ol,,fetch"politiky cist en = vypisov an modikovan ych str anek na disk cist e str anky = shodn e s jejich obrazy na disku varianty cisten na z adost { kdyz byla modikovan a str anka vybr ana jako obet' precleaning { systematick y v ypis modikovan ych str anek, lze resit d avkove na pozad behu proces u Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 46
V yprask, Thrashing Jestlize proces nem a v pameti dost str anek, generuje v ypadky str anek velmi rychle a tudz doch az k nzk emu vyuzv an CPU aplikacemi OS m a dojem, ze m a zv ysit stupe n multiprogramov an, protoze st ale se cek a na konec I/O operace a tak se dod avaj dals procesy do syst emu,... Thrashing { procesor nedel a nic jin eho nez v ymeny str anek Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 47
Model pracovn mnoziny, Working-Set d { okno pracovn mnoziny, zvolen y pevn y pocet referenc str anek, napr. 10 000 W S i (working set i), pracovn mnozina procesu P i, mnozina referencovan ych str anek v poslednm oknu d (pracovn mnozina se v case m en) pracovn mnozina je aproximace caso-prostorov e lokality procesu bude-li d mal e, nepostihne celou potrebnou pracovn mnozinu bude-li d velk e, postihne vce nez potrebnou pracovn mnozinu Pokud suma vsech W S i prev ys kapacitu dostupn e re aln e pam eti, vznik a,,v yprask" Ochrana pred vznikem,,v yprasku" napr. jeden proces se pozastav Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 48
Model pracovn mnoziny, Working-Set, 2 Okno = 10 Pracovn mnoziny v okamzicch t 1 a t 2 Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 49
Sledov an Working Set Aproximace pomoc intervalov eho casovace a bitu reference Prklad: Necht' okno pracovn mnoziny d = 10 000 referenc Necht' casovac prerusuje po 5 000 casov ych jednotk ach V pameti se v PT udrzuj o kazd e str ance 2 bity (buer a reference) Kdykoliv casovac prerus, okopruje se bit reference do bueru a nastav se na 0 Kdykoliv se referencuje dan a str anka, bit reference se mikroprogramov e nastav na 1 Je-li alespo n jeden z obou bit u = 1, str anka je ve WS Zpresn en m eren jen za cenu vyss rezie napr. 10 bit u msto 2 a prerusov an po 1 000 casov ych jednotk ach Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 50
Frekvence vypadk u stranek 2 Akceptovatelna frekvence vypadk u stranek X je-li frekvence vypadk u n zka, procesu lze ramce ramce odeb rat { ob eti se vyb raj mezi jeho strankami X je-li frekvence vypadk u vysoka, proces pot rebuje z skat dal s ramce Jan Staudek, FI MU Brno PB152 Operacn systemy { Virtualn pamet ' 51
Probl em velikosti PT, resen Pentium 2- urov nov e hierarchick e str ankov an PT se umst'uje ve virtu aln pameti a str ankuje se form aty: cslo str anky je deleno do dvou csel p1 a p2 p1 indexuje adres ar umsten y v hlavn pameti s odkazy na str anky obsahujc vlastn tabulky str anek adres ar se neodkl ad a na disk tabulky str anek (2. urovne) lze odkl adat Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 52
Probl em velikost str anek Velmi mal y rozmer str anky ve str ank ach nen nic, co nen nutn e z hlediska casov e a prostorov e lokality mal y pocet v ypadk u str anek cm je str anka mens tm je mens vnitrn fragmentace, ale diskov e operace jsou m ene efektivn tm je vets pocet str anek, takze je dels PT pokud se PT umst prmo ve FAP, zp usobuje velk e cerp an prostoru FAP umsten PT ve virtu aln pameti zp usobuje dvojn asobn y pocet prerusen,,page fault" Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 53
Probl em velikost str anek, 2 cm je d elka str anky vets tm je ve str ance je obsazeno vce dat nez je nutn e z hlediska casov e a prostorov e lokality a protoze FAP m a konecnou kapacitu, vznik a vets pocet v ypadk u str anek Pokud d elka str anky se rovn a d elce programu, vse je ve FAP, nen potreba z adn a virtualizace Obvykl e d elky str anek { 1 KB az 4 KB N ekter e procesory podporuj moznost pouzv an n ekolika rozmer u str anek, napr. Pentium - 4KB nebo 4MB Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 54
Probl em velikost str anek, 3 Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 55
Windows { spr ava pameti, LAP (virtu aln adresov y prostor) 32-bitov a varianta 64-bitov a varianta { uzivatelsk a oblast 8 TB, celkem 16 TB Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 56
Windows { Spr ava pameti, LAP (Virtu aln adresov y prostor) Hornch a dolnch 64 KB LAP se do FAP nezobrazuje 64 KB az 2 GB: program a data uzivatele 2 GB az 4 GB {64 KB virtu aln pamet' j adra OS obsahujc program, data, str ankovac tabulkuy, banky str anek,... Virtu aln pamet' j adra OS je ve FAP sdlen a vsemi procesy a je dostupn a pouze pri behu v rezimu j adra Na procesorech x86 a x64 je virtu aln pamet' str ankovan a d elka str anky 4 KB, nepouzv a se segmentace Str anky LAP zahrnut e do procesu { committed pages Str anky LAP nezahrnut e do procesu { invalid pages Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 57
Windows { Spr ava pameti, obraz LAP na disku Dynamicky pouzvan e zahrnut e str anky jsou uchov avan e na disku v spec. souborech { pageles Texty program u jsou uchov avan e na disku v konkr etnch souborech Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 58
Windows { Spr ava pameti, pr ace s r amci Jakmile vl akno str ankov anm na z adost umst str anku do voln eho r amce FAP, r amec se st av a pohotovostn (standby) obsahuje nemodikovanou str anku, kterou lze prpadn e pouze prepsat ve FAP jinou str ankou Jakmile vl akno str anku v r amci FAP modikuje, r amec se st av a modikovan ym r amcem obsahuje modikovanou str anku, kterou je nutn e pri prepisu jinou str ankou nejprve vypsat do obrazu LAP na disku Spr ava pameti udrzuje 5 seznam u r amc u voln e r amce, free, nealokovan e, lze do nich kdykoliv umstit str anku cist e r amce, zeroed, voln e r amce, obsahujc pouze 0 pohotovostn r amce, standby, alokovan e nemodikovan e r amce modikovan e r amce, modified, alokovan e modikovan e r amce r amce vykazujc chybu pam eti, bad Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 59
Windows { Z aznam v tabulce str anek, page table entry (PTE) Algorimus n ahrad str anek { LRU, Least Recently Used str anky, kter e se nejd ele nepouzily se pravd epod. nebudou pouzvat Bit A nastavuje hradware pri zprstupn en str anky ve FAP Bit D nastavuje hardware pri modikaci str anky ve FAP, nemodikovan a str anka se nemus vypisovat pri n ahrade na disk Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 60
Windows { V ypadek str anky, pracovn mnozina str anek Vl akno referencuje nezahrnutou str anku { chyba programu, abort zahrnutou str anku chybn e { chyba programu, abort (z apis do RO str anky,... ) zahrnutou str anku, kter a dosud nen mapovan a do FAP { v ypadek str anky, Page Fault Pro kazd y proces se udrzuje ve FAP jist y pocet str anek { Working set, WD, pracovn mnozina WS m a denovan e minimum a maximum velikosti (napr. 20 { 345 str anek) proces zacn a s minim aln WS, WS se m uze zvetsovat az do maxima pokud je volno ve FAP, maximum WS se m uze prekrocit Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 61
Windows { Algoritmus n ahrad str anek, pr ace s r amci Manazer WS periodicky prohlz vsechny WS Je hodne voln e pameti FAP { poct a st ar str anek resetov anm bitu A FAP je t emer vycerpan y { xuje WS a nejstars str anky nahrazuje nov ymi, jsou-li z adan e ve FAP chyb msto { WS se zmensuj odstra nov anm nejstarsch str anek z FAP Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 62
Windows { Algoritmus n ahrad str anek, pr ace s r amci Odstra nov an str anek z FAP kdyz se procesu odstra nuje str anka z WS (1) jej r amec se d av a mezi modikovan e ci pohotovostn r amce { tyto str anky z ust avaj ve FAP a na prpadnou n aslednou z adost se vrac do WS (2) kdyz proces konc (3) jeho r amce se d avaj do seznamu voln ych r amc u modikovan e r amce manazer pam eti periodicky vypisuje na disk a zarazuje mezi pohotovostn (4) proces m uze str anky v pohotovostnch r amcch kdykoliv zrusit (5) Kdykoli,,nen co delat", voln e r amce cistic r amc u cist, nuluje (7) nov e pozadovan e str anky se umst'uj do voln ych r amc u (6) pokud to vyzaduje bezpecnostn politika, pak do cist ych r amc u (8) Jan Staudek, FI MU Brno PB152 Operacn syst emy { Virtu aln pamet' 63