1 / 15

Upravljanje z diskom in pomnilnikom

Povzeto po [1] in [5]. Upravljanje z diskom in pomnilnikom. Upravljanje s prostorom na disku Upravljanje z medpomnilnikom. Upravljanje s prostorom na disku…. Za upravljanje z diskom skrbi najnižji nivo v SUPB arhitekturi – upravljalec z diskom ( Disk Space Manager ). Lastnosti:

owena
Télécharger la présentation

Upravljanje z diskom in pomnilnikom

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Povzeto po [1] in [5] Upravljanje z diskom in pomnilnikom • Upravljanje s prostorom na disku • Upravljanje z medpomnilnikom - 1 -

  2. Upravljanje s prostorom na disku… • Za upravljanje z diskom skrbi najnižji nivo v SUPB arhitekturi – upravljalec z diskom (Disk Space Manager). • Lastnosti: • Skrije podrobnosti strojne opreme (in OS); ostalim komponentam SUPB omogoči, da vidijo podatke kot zbirko strani. • Izvaja ukaze za dodeljevanje in sproščanje prostora na disku ter branje in pisanje; • Vse operacije izvaja nad enotami, ki obsegajo eno stran (page). Velikost strani je enaka velikosti bloka na disku. Strani se shranjujejo kot bloki. Branje ali pisanje strani se lahko izvede v okviru ene I/O operacije; - 2 -

  3. Upravljanje s prostorom na disku… • Upravljalec z diskom vzdržuje stanje zasedenih in prostih blokov na disku. • Obstajata dva načina: • Vzdrževanje seznama prostih blokov (kazalec na prvi blok seznama se shrani na znano lokacijo na disku), • Vzdrževanje bitne mape (za vsak blok je v bitni mapi bit, ki označuje, ali je blok zaseden ali ne). - 3 -

  4. Upravljanje s prostorom na disku • Uporaba datotečnega sistema za upravljanje s prostorom: • Upravljalec z diskom lahko uporablja datoteke operacijskega sistema  celotna PB se nahaja v eni ali več datotekah. • V tem primeru je zadolžen za upravljanje prostora v teh datotekah. • Veliko PB ne uporablja datotečnega sistema, ampak svoj lastni sistem za upravljanje z diskom (popolnoma svoj ali pa razširja funkcionalnost datotečnega sistema OS). Razlogi: • PRAKTIČNI: bazo lahko uporabimo na več platformah, • TEHNIČNI: pri 32 bitnem naslavljanju se pojavi omejitev v velikosti datoteke. - 4 -

  5. Upravljalec medpomnilnika… • Upravljalec medpomnilnika je programska plast, ki skrbi za prenašanje ustreznih strani v pomnilnik. Ključne lastnosti: • upravlja z razpoložljivim pomnilnikom (bufferpool). • višjim plastem SUPB-ja zagotavlja strani, ki jih te rabijo za svoje delo. • V medpomnilnik prenese tisto stran, ki jo višja plast zahteva. • Višja plast SUPB-ja upravljalca medpomnilnika obvešča o straneh, ki se sprostijo oziroma se jim spremeni vsebina. • Obstajajo različne strategije, ki določijo, katere strani se v medpomnilniku zamenjajo. - 5 -

  6. Upravljalec medpomnilnika… Zahteve po straneh iz višjih ravni SUPB Okvir, napolnjens stranjo iz diska Medpomnilnik Prazen okvir Glavni spomin Disk Če zahtevane strani ni v medpomnilniku, medpomnilnik pa je poln, mora upravljalec medpomnilnika narediti ustrezno zamenjavo. Zamenjavase izvede v skladu z izbrano strategijo - 6 -

  7. Upravljalec medpomnilnika… • Za vsak okvir v medpomnilniku se hranita dve spremenljivki: • pin_count: kolikokrat je bila stran v okvirju zahtevana, vendar ne sproščena (število trenutnih uporabnikov strani). • dirty: logična vrednost, ki označuje, ali je bila stran spremenjena ali ne. • Začetno stanje okvirja: • pin_count = 0 • dirty = off - 7 -

  8. Upravljalec medpomnilnika… • Ko se pojavi zahteva po določeni strani, upravljalec z medpomnilnikom izvede naslednje: • če se stran nahaja v kakšnem od okvirjev, vrne pomnilniški naslov okvirja in poveča pin_count za 1, • sicer izvede naslednje: • izbere okvir za zamenjavo (z uporabo strategije za zamenjavo). • če je dirty bitokvirja, ki bo zamenjan, postavljen na “on”, se stran prepiše na disk. • stran se prenese iz diska v okvir, ki je določen za zamenjavo. • pin_countokvirja se postavi na 1 • ko sistem sporoči, da se stran sprostila, se pin_count zmanjša za 1. Ko doseže vrednost 0, sistem prepiše stran nazaj na disk (če dirty bit ON) - 8 -

  9. Zahteva za stran Je stran v medpomnilniku? DA NE Je medpomnilnik poln? INC(pin_count) DA NE Izberi stran za zamenjavo Prenesi stran iz diska v prazenokvir Je dirty bit = ON NE Stran, ki je določena za zamenjavo,prepiši na disk Izvedi zamenjavo Vrni naslov okvirja DA - 9 - Resetirajpin_count na 1

  10. Upravljalec medpomnilnika… • Dodatna pravila: • Če se zahtevana stran ne nahaja v medpomnilniku in če so vsi okvirji zasedeni, se za zamenjavo izbere okvir, katerega pin_count=0. V primeru več takih okvirjev se izmed njih izbere okvir po določeni strategiji. • Če v medpomnilniku ni nobene strani, ki bi imela pin_count=0 in hkrati iskane strani ni v medpomnilniku, potem upravljalec medpomnilnika čaka, da se kakšna stran sprosti. • V praksi to pomeni, da je transakcija, ki zahteva tako stran, lahko razveljavljena. - 10 -

  11. Upravljalec medpomnilnika… • Nevarnost: če neko stran zahteva več neodvisnih transakcij, lahko pride do konfliktnih sprememb... • Reševanje z zaklepanjem: • Obstaja protokol zaklepanja, za katerega skrbijo višje ravni SUPB (posebej upravljalec transakcij). • Vsaka transakcija lahko pridobi deljeno (shared) ali ekskluzivno (exclusive) zaklepanje preden lahko stran bere ali spreminja. • Ekskluzivno zaklepanje iste strani ne sme biti odobreno dvema transakcijama istočasno! - 11 -

  12. Upravljalec medpomnilnika… • Strategija zamenjave strani v medpomnilniku močno vpliva na učinkovitost SUPB. • Obstajajo različne strategije, ki so primerne za različne situacije. • Nekatere strategije: • LRU – leastrecently used • Vrsta kazalcev na okvirje s pin_count = 0 • Ko stran postane kandidat za zamenjavo (pin_count = 0), okvir strani dodamo na konec vrste • Za zamenjavo izberemo stran iz okvirja, na katerega kaže prvi kazalec v vrsti - 12 -

  13. Upravljalec medpomnilnika… • Strategije zamenjave (nadaljevanje): • Clockreplacement • Različica LRU z manjšo časovna kompleksnost • Okvirji so navidezno organizirani v cikel (kot številke na uri) • Vsak okvir ima dva podatka: reference_bitin pin_count. • Reference_bit se postavi na ON, ko pin_count postane 0. • Za zamenjavo najprej preverimo stran, na katero trenutno kaže posebna spremenljivka. • Če okvir ne izberemo za zamenjavo, se kazalec pomakne naprej. To traja, dokler ne najdemo okvirja za zamenjavo. • Kdaj izberemo okvir za zamenjavo?: • Če pin_count > 0  okvir ne izberemo • Če reference_bit = ON  okvirja ne izberemo, reference_bitpostavimo na OFF. • Če pin_count = 0 AND reference_bit = OFF  okvir izberemo! - 13 -

  14. Upravljanje medpomnilnika... • Primerjava z upravljanjem navideznega pomnilnika OS: • obstaja podobnost med navideznim pomnilnikom operacijskega sistema in upravljanjem s pomnilnikom pri SUPB. • Cilj obeh: zagotoviti dostop do več podatkov, kot jih lahko spravimo v pomnilnik. Strani iz diska se prenašajo v pomnilnik po potrebi, nadomeščajo strani, ki se jih v pomnilniku ne rabi več. - 14 -

  15. Upravljanje medpomnilnika • Zakaj ne uporabimo navideznega pomnilnika v OS? • SUPB lahko bolj natančno predvidi zaporedje (vzorce dostopanja) kot tipičen OS. Uporablja strategijo vnaprejšnjega branja (prefetching), ki na osnovi predvidevanja naslednjih zahtev v naprej prenese strani v pomnilnik. • SUPB rabi več nadzora nad stranmi, ki se zapisujejo na disk, kot ga omogoča tipičen OS. - 15 -

More Related