Správa pamäti

download Správa pamäti

If you can't read please download the document

description

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. - PowerPoint PPT Presentation

Transcript of Správa pamäti

  • Sprva pamti

  • CielePoskytn podrobn opis rznych spsobov organizcie hardveru pamtiPrediskutova rzne techniky sprvy pamti vrtane strnkovania a segmentovaniaPoskytn podrobn opis procesora Intel Pentium, ktor podporuje aj ist segmentovanie aj segmentovanie so strnkovanm

  • Program, ktor sa m vykonva, mus by zaveden z disku do hlavnej pamtiAby program mohol by vykonan, mus nad nm by vytvoren proces a mus mu by pridelen pamHlavn (=operan) pam a registre s jedin pamti, ku ktorm procesor (CPU) me pristupova priamoPrstup k registru trv jeden hodinov takt alebo aj menejHlavn pam me spotrebova aj viac hodinovch taktovPam cache sa nachdza medzi hlavnou pamou a registrami procesora (CPU)Ochrana pamti je vyadovan, aby bola zaisten sprvna innos

  • Rozliujeme:FAP fyzick adresov priestor - pam fyzicky prtomn v potai - adresov priestor fyzickch adries pamti (spolon pre vetky procesy i jadro)LAP logick adresov priestor - pam ako abstrakcia, na ktor sa programy odvolvaj pri adrescii - virtulny adresov priestor, s ktorm pracuje procesor pri vykonvan kdu (kad proces i jadro maj svoj)

  • Bzov (relokan) register a limitn registerPr registrov: bzov (relokan) register a limitn register definuj logick adresov priestoroperansystmbza

  • Pridelenie adries (=address binding) sa me vykonva troma spsobmi:Poas prekladu programu - vznikne absoltny kd. Program sa d zavies len na pevne uren adresu v pamti (.COM programy v MS-DOSe) Poas zavedenia programu do pamti - Relokovaten (=premiestniten) adresy sa modifikuj poda umiestnenia prog-ramu v pamti. Poas behu (vykonvania) programu vyaduje hardverov podporu

  • Fzy spracovania pouvateskho programuFza prekladuFza zavedeniaFza vykonvania

  • Jednotka sprvy pamti (Memory-Management Unit-MMU)Hardvrov zariadenie, ktor transformuje logick adresu na fyzick adresuHodnota uloen v relokanom registri je pripotan ku kadej adrese generovanej pouvateskm procesom v ase, ke je adresa posielan do pamti a to sa deje pritan intrukcie programu (fetch)tan dt (load)Zapisovan dt (store)Pouvatesk program narba s logickmi adresami. Nikdy nevid relne fyzick adresy

  • Dynamick relokcia (premiestovanie) pouitm relokanho registraPamrelokan registerlogickadresafyzickadresa

  • Spsoby efektvneho vyuvania primrnej (operanej) pamti na rovni prce s pouvateskmi programamiDynamick zavedenie (dynamic loading) programov Dynamick zostavovanie (dynamic linking). Prekrvanie (overlay). Odkladanie strnok na disk (paging).

  • Dynamick zavedenie(Dynamic Loading)Procedra sa nenata z disku do pamti, km nie je poprvkrt volan z programu. Lepie vyuitie pamti; nepouvan procedra sa nikdy nezavedieDL je uiton, ke je potrebn narba s vekmi mnostvami kdu v nie asto sa vyskytujcich prpadochNie je vyadovan iadna pecilna podpora od operanho systmu

  • Dynamick zostavovanie(Dynamic Linking)Zostavovanie odloen a do fzy vykonvania programuMal ksok kdu - stub - pouit, aby lokalizoval vhodn kninin procedru rezidentn v pamtiStub nahrad seba samho adresou procedry a vykon procedruOperan systm zist, i procedra nie je pouvan inm procesomDynamick zostavovanie je vhodn najm pre kninice programovTento systm je znmy aj pod nzvom zdiean kninice (shared libraries)

  • Odkladanie (na disk) (Swapping)Proces me by doasne odloen(presunut) z pamti do zlonej pamti a potom presunut nasp do hlavnej pamti, aby pokraovalo jeho vykonvanie. Zlon (sekundrna) pam je rchly dostatone vek disk na ukladanie kpi vetkch obrazov pamti pre vetkch pouvateov; mus poskytova priamy prstup k tmto obrazom pamti Viu as asu odkladania tvor as presunu; celkov as presunu je priamo mern vekosti pamti, ktor sa odklad (presva) Modifikovan verzie odkladania sa nachdzaj v mnohch operanch systmoch (napr. UNIX, Linux, and Windows)

    Systm udriava front procesov pripravench na vykonvanie, ktor maj svoj obraz pamti na disku

  • Schematick pohad na odkladanie (Swapping)hlavn pamzlon pamoperansystmpouvateskpriestor

  • Odkladanie na disk (Swapping)- priebeh v asePridelenie pamti sa men, ke procesy: 1. prichdzaj do pamti 2. opaj pamrafovan plochy predstavuj nepouit pam.OperansystmOperansystmOperansystmOperansystmOperansystmOperansystmOperansystmPlynutie asu

  • Svisl prideovanie pamti(Contiguous Allocation)Hlavn pam je zvyajne rozdelen na 2 asti:Rezidentn operan systm je spravidla uloen v dolnej pamti (niie hodnoty adries) spolu s vektorom prerueniaPouvatesk procesy s udriavan v hornej pamti Relokan register je pouit, aby ochrnil pouvatesk procesy navzjom a aby ochrnil pred zmenou kd a dta operanho systmu pred pozmenenmBzov (relokan) register obsahuje hodnotu najniej fyzickej adresyHranin register (Limit register) obsahuje rozsah logickch adries t.j. kad logick adresa mus by menia ne hodnota v hraninom registri MMU mapuje logick adresu dynamicky

  • Hardvrov ochrana adries bzovm a hraninm registrompamSW preruenie a sprva monitoru OS:Chyba adresovania

  • Svisl prideovanieContiguous AllocationPrideovanie viacerch svislch sekovDiera blok vonej pamti; diery rznych vekosti s roztrsen po pamtiKe prde proces, pridel sa mu pam z diery dostatone vekej na jeho uloenieOperan systm udruje informciu o: a) pridelench sekoch b) vonch sekoch (dierach)OSproces 5proces 8proces 2OSproces 5proces 2OSproces 5proces 2OSproces 5proces 9proces 2proces 9proces 10

  • Prklad: Monoprogramov OS bez odkladania (swapping) a bez strnkovania3 jednoduch spsoby organizcie pamti pri OS s jednm pouvateskm procesomPouvateskprogramPouvateskprogramPouvateskprogramOperansystmv RAMOperansystmv RAMOperansystmv ROMOvldacieprogramy v ROM

  • Pevn vekos pamovch rmcov: a) Oddelen vstupn fronty pre kad rmec b) Jedin vstupn frontPrklad: Multiprogramov OS s pevnou vekosou rmcovRmec 1Rmec 2Rmec 3Rmec 4Rmec 1Rmec 2Rmec 3Rmec 4OperansystmOperansystmViacnsobnvstupn frontyJedinvstupn front

  • Prideovanie sekov pamti s premenlivou dkouDynamic Storage-Allocation ProblemFirst-fit (=prv vhodn): proces sa umiestni do prvho seku, ktor je dostatone vek. Best-fit (=najlepie vyhovujci): procesu sa pridel najmen sek, do ktorho sa zmest. Mus sa prehada cel zoznam sekov v prpade, e zoznam nie je usporiadan poda vekosti sekov. Vytvra najmenie Produces the smallest leftover holeWorst-fit (najhorie vyhovujci): proces sa umiestni do najvieho vonho seku. (kvli tomu sa mus prehada cel zoznam sekov.) Vytvra najvie Produces the largest leftover holeAlgoritmy na uspokojenie poiadavky na pamov sek o vekosti n zo zoznamu vonch sekov:Algoritmy first-fit a best-fit s lepie ne algoritmus worst-fit, ak je rozhodujca rchlos a vyuitie pamti.

  • Prideovacia funkcia:Njdi prv von sek (dieru) tak, aby bola splnen podmienka: S Ui

    Hodnotenie:Je vhodn, ak von seky s udriavan v porad ich adries.Spojovan zoznamPrideovac algoritmusZaiatok zoznamu

  • Von seky s v zozname usporiadan poda vekosti v rastcej postupnosti.U1 U2 U3 ... Un

    Prideovacia funkcia:Njdi najmenie Ui tak, aby spalo podmienku, e S Ui

    Hodnotenie:Najmeie plytvanie pamovm priestorom, ale nechva vea malch nepouitench dier.Zaiatok zoznamuSpojovan zoznamPrideovac algoritmus

  • Von seky s v zozname usporiadan poda vekosti v klesajcej postupnosti.U1 U2 U3 ... Un

    Prideovacia funkcia:Njdi najvie Ui tak, aby spalo podmienku, e S Ui

    Hodnotenie:Najvie plytvanie pamovm priestorom.Spojovan zoznam

    Prideovac algoritmusZaiatok zoznamu

  • Vonkajia a vntorn fragmentciaVonkajia fragmentcia celkov von pamov priestor je dostatone vek, ale nie je spojitVntorn fragmentcia pridelen pam me by o trochu via ne poadovan vekos pamti; tento rozdiel vekosti je vo vntri seku, ale sa nevyuva

  • StrnkovaniePagingLogick adresov priestor procesu me by nesvisl.Fyzick pam je rozdelen do blokov pevnej vekosti, ktor sa nazvaj rmce (frames). Vekos blokov je mocninou sla 2. (512 bajtov, 1 KB, 2 KB, 4 KB a 8 192 bajtov= 8 KB)Logick pam je rozdelen na bloky rovnakej vekosti, ktor sa nazvaj strnky (pages)Udriava sa informcia o vetkch vonch rmcochSpustenie programu o vekosti n strnok vyaduje njs n vonch rmcov a zavies program do hlavnej pamtiNastavenie tabuky strnok, aby sa dali preklada logick adresy na fyzick

  • Schma prekladu adriesAdresa generovan procesorom je rozdelen na: slo strnky (p) sa pouva ako index v tabuke strnok. V tabuke strnok sa nachdzaj odpovedajce poiaton adresa kadej strnky vo fyzickej pamti. Posuv v rmci strnky (d) (offset) kombinovan s poiatonou adresou strnky definuje fyzick adresu, ktor sa posiela do pamovej jednotky

    Pre dan logick adresov priestor 2m a vekos strnky 2nslo strnkyPosuv v strnkepdm - nn

  • Princp strnkovaniafyzick pamtabuka strnoklogick adresafyzick adresa

  • Model strnkovania logickej a fyzickej pamtifyzick pamlogick pamtabuka strnokslormca

  • Prklad strnkovania32-bajtov pam a 4-bajtov strnkylogick pamfyzick pamtabuka strnok

  • PRKLAD NA STRNKOVANIELogick adresa m dku 16 bitovFyzick adresa m dku 20 bitovStrnky a rmce maj vekos 4 KBTabuka strnok obsahuje poloky: 100, 205, 33, 27, I, I, I, ..., I (I zna neplatn strnku)loha: Urte p, d, f, pre logick adresu 789910 a vekos pamti pouvanej procesomRieenie:Vekos strnky/rmca = 4 KB = 4096 bitov = 212 bitov => d ~ 12 bitovLA ~ 16 bitov; d ~ 12 bitov => p ~ 4 bityFA ~ 20 bitov; d ~ 12 bitov => f ~ 8 bitovPoloky TS: 100, 205, 33, 27, I, I, ... , I => proces pouva 4 x 4KB= 16 KB pamtiLogick adresa= 789910 d= 7899-4096=380310789910 = 0001 1110 1101 1011 2 => f = 205 p = 1 d=3803 10

    Fyzick adresa = 205 x 4096 + 3803 = 843 483

  • Obrzok k prkladu na predchdzajcej snmkefyzick pamtabuka strnoklogick adresa:789910 =0001 1110 1101 1011 2 p = 1 d=3803 10f = 205; d=3803 10 fyzick adresa:205 x 4096 + 3803 = 843 483101100 1101 1110 1101 10112p = 1f = 205fyzick adresa: 205 x 4096 + 3803 = 843 48310 = 1100 1101 1110 1101 101121100 1101 1110 1101 10112

  • Von rmce:a) pred pridelenm b) po pridelenpred pridelenmpo pridelenzoznam vonch rmcovzoznam vonch rmcovtabuka strnok procesunov procesnov proces

  • Implementcia tabuky strnokHardvrov podpora strnkovaniaTabuka strnok je uloen v hlavnej pamtiRegister tabuky strnok (Page-table base register = PTBR) obsahuje adresu v pamti, kde sa nachdza tabuka strnokRegister dky tabuky strnok (Page-table length register PRLR) obsahuje informciu o vekosti tabuky strnokV tejto schme kad prstup k dtam alebo intrukcii vyaduje 2 prstupy k pamti. Jeden pre prstup k tabuke strnok a jeden pre prstup k dtam resp. intrukcii.Dvojnsobn poet prstupov k pamti me by rieen pouitm pecilnej rchlej asociatvnej pamti, ktor sa nazva asociatvna pam cache alebo translan 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

  • Strnkovac hardvr s TLBlogick adresafyzick adresafyzick pamtabuka strnokslo strnkyslo rmca

  • Ochrana pamtiMemory ProtectionOchrana pamti sa uskutouje pomocou bitov, ktor s pripojen ku kadmu rmcu. Bit Platn/Neplatn strnka je pripojen ku kadej poloke tabuky strnok:Platn (valid) znamen, e strnka je v logickom adresnom priestore procesu a je teda platnNeplatn (invalid) znamen, e strnka nie je v logickom adresnom priestore procesu

  • Bit platn (v) alebo neplatn (i) v tabuke strnokslo rmcatabuka strnokBit: v - platn i - neplatn

  • 2-rovov strnkovanietabuka strnokvonkajia tabuka strnokpam

  • Prklad 2 rovovho strnkovaniaLogick adresa (na 32-bitovom potai s vekosou strnky 1 KB ) je rozdelen na:slo strnky pozostva z 22 bitovPosuv v strnke pozostva z 10 bitovKee tabuka strnok je strnkovan , slo strnky je alej rozdelen na:Na 12-bitov slo strnky Na 10-bitov posuv v strnke (page offset)Logick adresa m potom nasledujci tvar: kde p1 je index do vonkajej tabuky strnok p2 je posuv v strnke vonkajej tabuky strnokslo strnkyPosuv v strnkep1p2d121010

  • Prevod adries pre 2 rovov strnkovanielogick adresavonkajia tabuka strnoktabuka tabuky strnokpoadovan strnka

  • SegmentciaPrstup k sprve pamti, ktor podporuje pouvatesk pohad na pam Program je sbor segmentov. Segment je logick jednotka ako naprklad:hlavn program,procedra, funkcia,metda,objekt,loklne premenn, globlne premenn,blok common ,zsobnk (stack),tabuka symbolov, polia

  • Pouvatesk pohad na programprocedrazsobnkTabuka symbolovFunkcia sqrtHlavn programLogick adresov priestor

  • Logick pohad na segmentciu1324Pouvatesk priestorFyzick pam

  • Architektra segmentcieSegmentation Architecture Logick adresa pozostva z dvoch ast,Tabuka segmentov mapuje dvojrozmern fyzick adresy; kad tabuka m 2 poloky:Zaiatok (base) obsahuje zaiaton fyzick adresu, kde je segment uloen v pamtiDka (limit) uruje dku segmentuRegister zaiatku tabuky segmentov (Segment-table base register - STBR) ukazuje na tabuku segmentovRegister dky tabuky segmentov (Segment-table length register - STLR) informuje o pote segmentov pouitch programom; slo segmentu s je platn, ak s < STLR

  • Princp segmentcieFyzick pamtabuka segmentovTrap: chyba adrescie

  • Prklad segmentcieLogick adresov priestorTabuka segmentovfyzick pamprocedrazsobnkTabukasymbolovHlavnprogram

  • PRKLAD: Intel PentiumPodporuje segmentciu aj segmentciu so strnkovanmCPU generuje logick adresuodovzdvan segmentanej jednotke,ktor vytvra linerne adresyLinerna adresa je odovzdvan do strnkovacej jednotky, ktor generuje fyzick adresu v hlavnej pamtistrnkovacie jednotky vytvraj ekvivalent MMU

  • Preklad logickej adresy na fyzick v Pentiulogickadresalinernaadresafyzickadresaslo strnkyPosuv v strnkesegmentanjednotkastrnkovaciajednotkafyzickpam

  • Segmentcia v Intel Pentiulogick adresaTabuka deskriptorov32-bitov linerna adresaDeskriptor segmentu

  • Strnkovacia architektra Pentia

  • PRKLAD NA SEGMENTCIUMajme 4 segmenty (oslovan 0,1,2,3): HL_PROG, VELKE_POLE, MAT_FUNKCIE, ZASOBNIK s hodnotami TS ((l=300, b=10132), (4000, 12000), (500, 3324), (1400, 1450)). Logick adresa m dku 16 bitov; z toho s ~ 4 bity; d ~ 12 bitovloha: Pre logick adresu LA= 789910 urte s, d, a platn fyzick adresu FA.Rieenie:LA ~ 16 bitov; d ~ 12 bitov => s ~ 4 bityLogick adresa= 789910 = 0001 1110 1101 1011 2 s = 1 d=3803 10 Hodnoty v TS: ((l=300, b=10132), (4000, 12000), (500, 3324), (1400, 1450))s = 1; d=3803 10 => sme v segmente VELKE_POLEd=3803 10 < l=4000 => platn adresa,

    Fyzick adresa = 12000 + 3803 = 15803

  • PRKLAD: Princp segmentcieObrzok k prkladu na predchdzajcej snmkeFyzick pamtabuka segmentovchyba adrescies = 1 Fyzick adresa = 12000 + 3803 = 15803d=3803 10 40004000d=3803 10Logick adresa= 789910 = 0001 1110 1101 1011 2 s = 1 d=3803 10

    dkazaiatok030010132140001200025003324314001450

  • LOHA: Vymenujte 2 rozdiely medzi logickou a fyzickou adresou

    Odpove: 1.Logick adresa neodkazuje na aktulnu existujcu adresu;Odkazuje skr na abstraktn adresu v abstraktnom adresovom priestore.Fyzick adresa odkazuje na aktulnu fyzick adresu v pamti.

    2.Logick adresa je generovan procesorom(CPU) a je preloen na fyzick adresu pomocou jednotky sprvy pamti (MMU).T.j. fyzick adresy s generovan jednotkou sprvy pamti.

  • LOHA: Uvaujte systm, v ktorom program me by rozdelen na 2 asti:Kd programu a dta.Procesor (CPU) vie, i chce intrukciu (instruction fetch) alebo dta (data fetch or store). Preto musia existova 2 pry bzovch (relokanch) a limitnch registrov: jeden pr pre intrukcie a jeden pr pre dta.Pr registrov uren pre intrukcie je automaticky typu read-only, take programy mu by zdiean rozdielnymi pouvatemi.Prediskutujte vhody a nevhody takejto schmy.

    Odpove: Hlavn vhoda tejto schmy: je to efektvny mechanizmus na zdieanie kdu a dt. Naprklad v pamti je potrebn udriava len jednu kpiu editora alebo kompiltora a tento kd me by zdiean vetkmi procesmi vyadujcimi prstup ku kdu editora a kompiltora.alia vhoda je ochrana kdu pred chybnou modifikciou.Jedinou nevhodou je, e kd a dta musia by oddelen, o je zvyajne dodran v kde generovanom kompiltorom.

  • LOHA: Uvaujte logick adresov priestor s 8-mi strnkami. Kad strnka m vekos 1024 slov. Tento priestor je mapovan do fyzickej pamti pozostvajcej z 32 rmcov.a) Urte z kokch bitov pozostva logick adresab) Urte z kokch bitov pozostva fyzick adresa

    Odpove:logick adresa m: 13 bitov 8 strnok 1024 slov = 8192 ~ 213

    fyzick adresa m: 15 bitov 32 rmcov 1024 slov = 32768 ~ 215