1 / 55

Správa pamäti

Správa pamäti. Ciele. Poskytnúť podrobný opis rôznych spôsobov organizácie hardveru pamäti Prediskutovať rôzne techniky správy pamäti vrátane stránkovania a segmentovania Poskytnúť podrobný opis procesora Intel Pentium, ktorý podporuje aj čisté segmentovanie aj segmentovanie so stránkovaním.

vicki
Download Presentation

Správa pamäti

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. Správa pamäti

  2. Ciele • Poskytnúť podrobný opis rôznych spôsobov organizácie hardveru pamäti • Prediskutovať rôzne techniky správy pamäti vrátane stránkovania a segmentovania • Poskytnúť podrobný opis procesora Intel Pentium, ktorý podporuje aj čisté segmentovanie aj segmentovanie so stránkovaním

  3. Program, ktorý sa má vykonávať, musí byť zavedený z disku do hlavnej pamäti • Aby program mohol byťvykonaný, musínad ním byťvytvorenýproces a musí mu byťpridelenápamäť • Hlavná (=operačná) pamäť a registre sú jediné pamäti, ku ktorým procesor (CPU) môže pristupovať priamo • Prístup k registru trvá jeden hodinový takt alebo aj menej • Hlavná pamäť môže spotrebovať aj viac hodinových taktov • Pamäť cache sa nachádza medzi hlavnou pamäťou a registrami procesora (CPU) • Ochrana pamäti je vyžadovaná, aby bola zaistená správna činnosť

  4. Rozlišujeme: • FAP – fyzický adresový priestor - pamäť fyzicky prítomná v počítači - adresový priestor fyzických adries pamäti (spoločný pre všetkyprocesy i jadro) • LAP – logický adresový priestor- pamäť ako abstrakcia, na ktorú sa programy odvolávajú pri adresácii - virtuálny adresový priestor, s ktorým pracuje procesor pri vykonávaní kódu (každý proces i jadro majú svoj)

  5. Bázový (relokačný) register a limitný register operačný systém Pár registrov: bázový (relokačný) register a limitný register definujú logický adresový priestor báza

  6. Pridelenie adries (=address binding) sa môže vykonávať troma spôsobmi: • Počas prekladu programu - vznikne absolútny kód. Program sa dá zaviesť len na pevne určenú adresu v pamäti (.COM programy v MS-DOSe) • Počas zavedenia programu do pamäti - Relokovateľné (=premiestniteľné) adresy sa modifikujú podľa umiestnenia prog-ramu v pamäti. • Počas behu (vykonávania) programu – vyžaduje hardverovú podporu

  7. Fázy spracovania používateľského programu Fáza prekladu Fáza zavedenia Fáza vykonávania

  8. Jednotka správy pamäti (Memory-Management Unit-MMU) • Hardvérové zariadenie, ktoré transformuje logickú adresu na fyzickú adresu • Hodnota uložená v relokačnom registri je pripočítaná ku každej adrese generovanej používateľským procesom v čase, keď je adresa posielaná do pamäti a to sa deje pri • Čítaní inštrukcie programu (fetch) • Čítaní dát (load) • Zapisovaní dát (store) • Používateľský program narába s logickými adresami. Nikdy nevidí reálne fyzické adresy

  9. Dynamická relokácia (premiestňovanie)použitím relokačného registra relokačný register logická adresa fyzická adresa Pamäť

  10. Spôsoby efektívneho využívania primárnej (operačnej) pamäti na úrovni práce s používateľskými programami • Dynamické zavedenie (dynamic loading) programov • Dynamické zostavovanie (dynamic linking). • Prekrývanie (overlay). • Odkladanie stránok na disk (paging).

  11. Dynamické zavedenie(Dynamic Loading) • Procedúra sa nenačíta z disku do pamäti, kým nie je poprvýkrát volaná z programu. • Lepšie využitie pamäti; nepoužívaná procedúra sa nikdy nezavedie • DL je užitočné, keď je potrebné narábať s veľkými množstvami kódu v nie často sa vyskytujúcich prípadoch • Nie je vyžadovaná žiadna špeciálna podpora od operačného systému

  12. Dynamické zostavovanie(Dynamic Linking) • Zostavovanie odložené až do fázy vykonávania programu • Malý kúsok kódu - stub - použitý, aby lokalizoval vhodnú knižničnú procedúru rezidentnú v pamäti • Stub nahradí seba samého adresou procedúry a vykoná procedúru • Operačný systém zistí, či procedúra nie je používaná iným procesom • Dynamické zostavovanie je vhodné najmä pre knižnice programov • Tento systém je známy aj pod názvom zdieľané knižnice (shared libraries)

  13. Odkladanie (na disk) (Swapping) • Proces môže byť dočasne odložený(presunutý) z pamäti do záložnej pamäti a potom presunutý naspäť do hlavnej pamäti, aby pokračovalo jeho vykonávanie. • Záložná (sekundárna) pamäť – je rýchly dostatočne veľký disk na ukladanie kópií všetkých obrazov pamäti pre všetkých používateľov; musí poskytovať priamy prístup k týmto obrazom pamäti • Väčšiu časť času odkladania tvorí čas presunu; celkový čas presunu je priamo úmerný veľkosti pamäti, ktorá sa odkladá (presúva) • Modifikované verzie odkladania sa nachádzajú v mnohých operačných systémoch (napr. UNIX, Linux, and Windows) • Systém udržiava front procesov pripravených na vykonávanie, ktoré majú svoj obraz pamäti na disku

  14. Schematický pohľad na odkladanie (Swapping) operačný systém používateľský priestor záložná pamäť hlavná pamäť

  15. Odkladanie na disk (Swapping) - priebeh v čase Plynutie času Operačný systém Operačný systém Operačný systém Operačný systém Operačný systém Operačný systém Operačný systém • Pridelenie pamäti sa mení, keď procesy: 1. prichádzajú do pamäti • 2. opúšťajú pamäť • Šrafované plochy predstavujú nepoužitú pamäť.

  16. Súvislé prideľovanie pamäti(Contiguous Allocation) • Hlavná pamäť je zvyčajne rozdelená na 2 časti: • Rezidentný operačný systém je spravidla uložený v dolnej pamäti (nižšie hodnoty adries) spolu s vektorom prerušenia • Používateľské procesy sú udržiavané v hornej pamäti • Relokačný register je použitý, aby ochránil používateľské procesy navzájom a aby ochránil pred zmenou kód a dáta operačného systému pred pozmenením • Bázový (relokačný) register obsahuje hodnotu najnižšej fyzickej adresy • Hraničný register (Limit register)obsahuje rozsah logických adries – t.j. každá logická adresa musí byť menšia než hodnota v hraničnom registri • MMU mapuje logickú adresu dynamicky

  17. Hardvérová ochrana adries bázovým a hraničným registrom SW prerušenie a správa monitoru OS: Chyba adresovania pamäť

  18. Súvislé prideľovanieContiguous Allocation • Prideľovanie viacerých súvislých úsekov • Diera – blok voľnej pamäti; diery rôznych veľkosti sú roztrúsené po pamäti • Keď príde proces, pridelí sa mu pamäť z diery dostatočne veľkej na jeho uloženie • Operačný systém udržuje informáciu o:a) pridelených úsekoch b) voľných úsekoch (dierach) OS OS OS OS proces 5 proces 5 proces 5 proces 5 proces 9 proces 9 proces 8 proces 10 proces 2 proces 2 proces 2 proces 2

  19. Príklad: Monoprogramový OS bez odkladania (swapping) a bez stránkovania Operačný systém v ROM Ovládacie programy v ROM Používateľský program Používateľský program Používateľský program Operačný systém v RAM Operačný systém v RAM 3 jednoduché spôsoby organizácie pamäti pri OS s jedným používateľským procesom

  20. Príklad: Multiprogramový OS s pevnou veľkosťou rámcov Viacnásobné vstupné fronty Rámec 4 Rámec 4 Rámec 3 Jediný vstupný front Rámec 3 Rámec 2 Rámec 2 Rámec 1 Rámec 1 Operačný systém Operačný systém • Pevná veľkosť pamäťových rámcov: a) Oddelené vstupné fronty pre každý rámec • b) Jediný vstupný front

  21. Prideľovanie úsekov pamäti s premenlivou dĺžkouDynamic Storage-Allocation Problem Algoritmy na uspokojenie požiadavky na pamäťový úsek o veľkosti n zo zoznamu voľných úsekov: • First-fit (=prvý vhodný): proces sa umiestni do prvého úseku, ktorý je dostatočne veľký. • Best-fit (=najlepšie vyhovujúci): procesu sa pridelí najmenší úsek, do ktorého sa zmestí. Musí sa prehľadať celý zoznam úsekov v prípade, že zoznam nie je usporiadaný podľa veľkosti úsekov. • Vytvára najmenšie Produces the smallest leftover hole • Worst-fit (najhoršie vyhovujúci): proces sa umiestni do najväčšieho voľného úseku. (kvôli tomu sa musí prehľadať celý zoznam úsekov.) • Vytvára najväčšie Produces the largest leftover hole Algoritmy first-fit a best-fitsú lepšie než algoritmus worst-fit, ak je rozhodujúca rýchlosť a využitie pamäti.

  22. Spojovaný zoznam Prideľovací algoritmus Začiatok zoznamu Prideľovacia funkcia: Nájdi prvý voľný úsek (dieru) taký, aby bola splnená podmienka: S  Ui Hodnotenie: Je výhodné, ak voľné úseky sú udržiavané v poradí ich adries.

  23. Spojovaný zoznam Prideľovací algoritmus Začiatok zoznamu Voľné úseky sú v zozname usporiadané podľa veľkosti v rastúcej postupnosti. U1  U2  U3  ...  Un Prideľovacia funkcia: Nájdi najmenšie Ui také, aby spĺňalo podmienku, že S  Ui Hodnotenie: Najmešie plytvanie pamäťovým priestorom, ale necháva veľa malých nepoužiteľných dier.

  24. Spojovaný zoznam Prideľovací algoritmus Začiatok zoznamu Voľné úseky sú v zozname usporiadané podľa veľkosti v klesajúcej postupnosti. U1  U2  U3  ...  Un Prideľovacia funkcia: Nájdi najväčšie Ui také, aby spĺňalo podmienku, že S  Ui Hodnotenie: Najväčšie plytvanie pamäťovým priestorom.

  25. Vonkajšia a vnútorná fragmentácia • Vonkajšia fragmentácia – celkový voľný pamäťový priestor je dostatočne veľký, ale nie je spojitý • Vnútorná fragmentácia – pridelená pamäť môže byť o trochu väčšia než požadovaná veľkosť pamäti; tento rozdiel veľkosti je vo vnútri úseku, ale sa nevyužíva

  26. StránkovaniePaging • Logický adresový priestor procesu môže byť nesúvislý. • Fyzická pamäť je rozdelená do blokov pevnej veľkosti, ktoré sa nazývajú rámce (frames). Veľkosť blokov je mocninou čísla 2. (512 bajtov, 1 KB, 2 KB, 4 KB až 8192 bajtov= 8 KB) • Logická pamäť je rozdelená na bloky rovnakej veľkosti, ktoré sa nazývajú stránky (pages) • Udržiava sa informácia o všetkých voľných rámcoch • Spustenie programu o veľkosti n stránok vyžaduje nájsť n voľných rámcov a zaviesť program do hlavnej pamäti • Nastavenie tabuľky stránok, aby sa dali prekladať logické adresy na fyzické

  27. Schéma prekladu adries • Adresa generovaná procesorom je rozdelená na: • Číslo stránky (p) – sa používa ako index v tabuľke stránok. V tabuľke stránok sa nachádzajú odpovedajúce počiatočná adresa každej stránky vo fyzickej pamäti. • Posuv v rámci stránky(d)(offset)– kombinovaný s počiatočnou adresou stránky definuje fyzickú adresu, ktorá sa posiela do pamäťovej jednotky • Pre daný logický adresový priestor 2ma veľkosť stránky 2n Číslo stránky Posuv v stránke p d m - n n

  28. Princíp stránkovania logická adresa fyzická adresa fyzická pamäť tabuľka stránok

  29. Model stránkovania logickej a fyzickej pamäti číslo rámca tabuľka stránok logická pamäť fyzická pamäť

  30. Príklad stránkovania tabuľka stránok logická pamäť fyzická pamäť 32-bajtová pamäť a 4-bajtové stránky

  31. Príklad na stránkovanie Logická adresa má dĺžku 16 bitov Fyzická adresa má dĺžku 20 bitov Stránky a rámce majú veľkosť 4 KB Tabuľka stránok obsahuje položky: 100, 205, 33, 27, I, I, I, ..., I (I – značí neplatnú stránku) Úloha: Určte p, d, f, pre logickú adresu 789910 a veľkosť pamäti používanej procesom Riešenie: Veľkosť stránky/rámca = 4 KB = 4096 bitov = 212 bitov =>d~12 bitov LA ~ 16 bitov; d~12 bitov => p~4 bity FA ~ 20 bitov; d~12 bitov => f~8 bitov Položky TS: 100, 205, 33, 27, I, I, ... , I => proces používa 4 x 4KB= 16 KB pamäti Logická adresa= 789910 d= 7899-4096=380310 789910 = 00011110 1101 10112=>f = 205 p = 1 d=380310 Fyzická adresa = 205 x 4096 + 3803 = 843 483

  32. Obrázok k príkladu na predchádzajúcej snímke f = 205; d=380310 fyzická adresa: 205 x 4096 + 3803 = 843 48310 1100 1101 1110 1101 10112 logická adresa: 789910 = 00011110 1101 10112 p = 1 d=380310 1100 1101 1110 1101 10112 p = 1 f = 205 fyzická pamäť tabuľka stránok fyzická adresa: 205 x 4096 + 3803= 843 48310 = 1100 1101 1110 1101 10112

  33. Voľné rámce:a) pred pridelenímb) po pridelení zoznam voľných rámcov zoznam voľných rámcov nový proces nový proces tabuľka stránok procesu pred pridelením po pridelení

  34. Implementácia tabuľky stránokHardvérová podpora stránkovania • Tabuľka stránok je uložená v hlavnej pamäti • Register tabuľky stránok(Page-table base register = PTBR)obsahuje adresu v pamäti, kde sa nachádza tabuľka stránok • Register dĺžky tabuľky stránok(Page-table length register PRLR)obsahuje informáciu o veľkosti tabuľky stránok • V tejto schéme každý prístup k dátam alebo inštrukcii vyžaduje 2 prístupy k pamäti. Jeden pre prístup k tabuľke stránok a jeden pre prístup k dátam resp. inštrukcii. • Dvojnásobný počet prístupov k pamäti môže byť riešený použitím špeciálnej rýchlej asociatívnej pamäti, ktorá sa nazýva asociatívna pamäť cache alebo translačné bufre: associative memory or translation look-aside buffers (TLBs)Bs store address-space identifiers (ASIDs) in each TLB entry – uniquely identifies each process to provide address-space protection for that process

  35. Stránkovací hardvér s TLB logická adresa číslo stránky číslo rámca fyzická adresa fyzická pamäť tabuľka stránok

  36. Ochrana pamätiMemory Protection • Ochrana pamäti sa uskutočňuje pomocou bitov, ktoré sú pripojené ku každému rámcu. • BitPlatná/Neplatná stránka je pripojený ku každej položke tabuľky stránok: • Platná (valid) – znamená, že stránka je v logickom adresnom priestore procesu a je teda platná • Neplatná (invalid) – znamená, že stránka nie jev logickom adresnom priestore procesu

  37. Bit platná(v) aleboneplatná (i) v tabuľke stránok Bit: v - platná i- neplatná číslo rámca tabuľka stránok

  38. 2-úrovňové stránkovanie vonkajšia tabuľka stránok tabuľka stránok pamäť

  39. Príklad 2 – úrovňového stránkovania • Logická adresa (na 32-bitovom počítači s veľkosťou stránky 1 KB ) je rozdelená na: • Číslo stránky pozostáva z 22 bitov • Posuv v stránke pozostáva z 10 bitov • Keďže tabuľka stránok je stránkovaná , číslo stránky je ďalej rozdelené na: • Na 12-bitové číslo stránky • Na 10-bitový posuv v stránke(page offset) • Logická adresa má potom nasledujúci tvar:kde p1 je index do vonkajšej tabuľky stránokp2 je posuv v stránke vonkajšej tabuľky stránok Posuv v stránke Číslo stránky p2 p1 d 12 10 10

  40. Prevod adries pre 2 – úrovňové stránkovanie logická adresa vonkajšia tabuľka stránok tabuľka tabuľky stránok požadovaná stránka

  41. Segmentácia • Prístup k správe pamäti, ktorý podporuje používateľský pohľad na pamäť • Program je súbor segmentov. Segment je logická jednotka ako napríklad: hlavný program, procedúra, funkcia, metóda, objekt, lokálnepremenné, globálne premenné, blok common , zásobník (stack), tabuľka symbolov, polia

  42. Používateľský pohľad na program zásobník procedúra Tabuľka symbolov Funkcia sqrt Hlavný program Logický adresový priestor

  43. 1 4 2 3 Logický pohľad na segmentáciu 1 2 3 4 Fyzická pamäť Používateľský priestor

  44. Architektúra segmentácieSegmentation Architecture • Logická adresa pozostáva z dvoch častí <číslo segmentu, posuv v segmente>, • Tabuľka segmentov – mapuje dvojrozmerné fyzické adresy; každá tabuľka má 2 položky: • Začiatok (base) – obsahuje začiatočnú fyzickú adresu, kde je segment uložený v pamäti • Dĺžka (limit) – určuje dĺžku segmentu • Register začiatku tabuľky segmentov(Segment-table base register - STBR)– ukazuje na tabuľku segmentov • Register dĺžky tabuľky segmentov (Segment-table length register - STLR)– informuje o počte segmentov použitých programom; číslo segmentusje platné, ak s < STLR

  45. Princíp segmentácie tabuľka segmentov Trap: chyba adresácie Fyzická pamäť

  46. Príklad segmentácie zásobník procedúra Tabuľka symbolov Hlavný program Tabuľka segmentov Logický adresový priestor fyzická pamäť

  47. Príklad:Intel Pentium • Podporuje segmentáciu aj segmentáciu so stránkovaním • CPU generuje logickú adresu • odovzdávanú segmentačnej jednotke, • ktorá vytvára lineárne adresy • Lineárna adresa je odovzdávaná do stránkovacej jednotky, • ktorá generuje fyzickú adresu v hlavnej pamäti • stránkovacie jednotky vytvárajú ekvivalent MMU

  48. Preklad logickej adresy na fyzickú v Pentiu logická adresa lineárna adresa fyzická adresa fyzická pamäť segmentačná jednotka stránkovacia jednotka Posuv v stránke Číslo stránky

  49. Segmentácia v Intel Pentiu logická adresa Tabuľka deskriptorov Deskriptor segmentu 32-bitová lineárna adresa

  50. Stránkovacia architektúra Pentia

More Related