Správa pamäti

  • Upload
    vicki

  • View
    39

  • Download
    2

Embed Size (px)

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

Citation preview

  • 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