Správa pamäte

1,035 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,035
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Správa pamäte

  1. 1. Argumentácia:Tento text som si vybral, pretože spadá do môjho odboru a jednoduchým spôsobom vysvetľujevybranú problematiku správy pamäte a stránkovania. Tieto akcie sa odohrávajú na pozadí v každompočítači a väčšina z užívateľov o nich ani nevie. Názov odborného textu odpovedá zvolenej tematike.Kľúčové slová:stránkovanie, program, adresný priestor, pamäťAnotácia: Odborný text opisuje problematiku stránkovania a prístupu do pamäte, ktoré vykonáva procesor prisvojej činnosti. V bodoch je vysvetlené čo sa vyžaduje od správy pamäte a kroky, ktoré sa vykonávajúpri vytváraní programu (prideľovanie pamäte, prevody medzi logickým a fyzickým adresnýmpriestorom pomocou jednotky pre správu pamäte).Správá pámáte (stránkovánie) V minulosti sa správa pamäte skoro nevyužívala. Výhody prvých počítačov bez správy pamäte(s priamym prístupom) boli rýchlosť, jednoduchosť implementácie a možnosť používania aj bezoperačného systému. Nebolo možné kontrolovať prístup do RAM. Počítače do 70. rokov minuléhostoročia nedisponovali veľkým množstvom pamäte, a preto nebola jej správa potrebná. Ako sa pamäťzväčšovala, pribúdali nové problémy, a preto bolo potrebné nájsť riešenia, ako ju čo najefektívnejšievyužiť.1.1 Význam Spáva pamäte je z hľadiska operačného systému neodmysliteľnou súčasťou modernýchpočítačov. Zjednodušene je jej funkciou alokovanie častí pamäte na žiadosť programov a ichuvoľňovanie (dealokácia), keď už viac nie sú potrebné. Zaisťuje, aby zdieľanie pamäte medzi súčasnebežiacimi procesmi bolo efektívne a bezpečné, udržiava informácie o stave obsadenosti adresnéhopriestoru a aktualizuje tabuľku stránok. Zabezpečuje ochranu pamäte a pri multitaskingovýchsystémoch musí podporovať (alebo minimálne nesmie brániť) súčasnému behu viacerých procesov.Správa pamäte patrí medzi činnosti OS. Bolo by nevhodné a nepraktické, v niektorých prípadoch aj
  2. 2. nebezpečné ponechať ju na programátorovi pri programovaní aplikácií. Procesy majú takto presneurčené, ktorú pamäť smú a nesmú používať. Proces nesmie čítať a zapisovať mimo pamäť, ktorá mubola alokovaná a teda nie je možné, aby získal prístup k pamäti iného procesu, alebo OS.Od správy pamäte vyžadujeme:  Možnosť relokácie programov (relocation) – programy v pamäti môžu byť umiestnené v rôznych častiach pamäte v rôznom čase. Je to tak preto, že pri swapovaní (odkladanie častí programov) na pevný disk a jeho opätovnom vrátení do hlavnej pamäte sa proces nemôže vždy vložiť na to isté miesto. Odkazy na pamäťové miesta uvedené programom sa musia prekladať na skutočné adresy (viď kapitola 1.2).  Nutnosť ochrany (protection) – kontrola adries hardvérom pri behu spusteného programu. Keďže adresy v programe kvôli ich prekladu nezodpovedajú skutočným adresám na pamäti RAM, je kontrolu možné vykonávať len za behu.  Možnosť zdieľania (sharing) – zdieľanie rovnakej časti pamäte viacerými procesmi súčasne bez toho, aby bola porušená ochrana pamäte. Zdieľaná pamäť je zároveň jedna z najrýchlejších metód medziprocesovej komunikácie.  Logická organizácia (logical organisation) – programy sú často organizované v moduloch. Niektoré z nich môže zdieľať viac programov naraz, iné sú určené len na čítanie (read-only) a niektoré obsahujú dáta, ktoré môžu byť zmenené (read/write). Moduly poznáme privátne a verejné. Logickú organizáciu dosahujeme využitím segmentácie.  Fyzická organizácia (physical organisation) – pamäť je zvyčajne rozdelená na rýchlu-primárnu (RAM) a pomalšiu-sekundárnu (pevný disk) pamäť. Správa pamäte spravuje presun informácií medzi týmito úrovňami pamätí.
  3. 3. Obr. 1.: Proces vytvárania programu Aby sa z programu spustením stal proces, je nutné, aby sa adresy inštrukcií v programenaviazali na adresy operačnej pamäte. Procesor je schopný vykonávať len inštrukcie, ktoré sú uloženév primárnej pamäti. Adresný priestor sa delí na FAP (Fyzický adresný priestor) a LAP (Logický adresnýpriestor). Adresa FAP je adresa operačnej pamäte. Adresa LAP (logická) je virtuálna adresa danáadresou v strojovom jazyku, ktorú generuje CPU. Je to adresa hypotetickej pamäte a môže odkazovaťna RAM alebo pevný disk.1.2 Adresný priestor Adresný priestor vymedzuje adresy cieľových objektov (napr. všetky internetové domény súadresný priestor). Adresný priestor príkazov programov interpretovaných procesorom je škála adries
  4. 4. hlavnej pamäte. V súčasných počítačoch je jeho úlohou umožniť každému procesu používať vlastnúabstrakciu adresného priestoru. Proces má takto pridelený virtuálny adresný priestor a môže svojeinštrukcie adresovať od nuly, aj keď skutočné adresy v čase behu vo FAP môžu byť (a vo väčšineprípadov sú) iné. Obr. 2.: Viazanie adriesViazanie adries (address binding) môže mať tri podoby:  Pri kompilácii – ak je umiestnenie známe pred kompiláciou je možné generovať absolútny kód, ale pri zmene umiestnenia sa musí preklad programu znova opakovať.  Pri zavádzaní – umiestnenie v pamäti nie je známe pred kompiláciou. Aby bolo možné program spustiť, generuje sa premiestniteľný kód (relocatable code).  Za behu – proces mení svoju pozíciu za behu a samotné viazanie adries sa odkladá na dobu behu. Základnou podmienkou tohto viazania je hardvérová podpora a to buď MMU, alebo DAT (Dynamic Address Translation).1.2.1 Memory Management Unit a relokačný register MMU (Memory Management Unit) alebo jednotka pre správu pamäte je hardvérový modulprevádzajúci logické adresy na adresy fyzické (a naopak). MMU delí virtuálny adresný priestor (LAP)na rovnako veľké stránky.
  5. 5. Najjednoduchšou formou MMU je relokačný (bázový register). Na počiatku sa nastaví spodnáhranica adresy pridelenej procesu vo FAP. Preklad adries následne spočíva v pripočítavaní obsahurelokačného registru k adresám inštrukcií užívateľského procesu v okamihu, keď sú tieto adresyodovzdávané ako ukazovatele do operačnej pamäte. Relokačný register je privilegovaný a jedostupný len pre operačný systém. Obr. 3.: Relokačný register1.3 Metódy prideľovania pamäte Historické techniky správy pamätí boli napr. prideľovanie súvislých oblastí (partitioning) voFAP na beh procesov, prideľovanie fixných oblastí, oblastí s premennou veľkosťou a prideľovaniepamäte s prekryvmi (overlays). V súčasnosti sa tieto techniky používajú v špeciálnych OS a v real-timeOS. Ich efektivita je zvýšená možnosťou presúvať obsah alokovaných oblastí z hlavnej pamäte napevnú a naopak – ide o metódu nazvanú Swapping. Dáta, ktoré neboli dlhšie použité, je možnépresunúť na pevný disk (swap out) pri nedostatku pamäte RAM, aby do nej mohli byť zavedené (swapin) iné, potrebné dáta. Swapping bol používaný v systémoch Linux alebo Windows v čase, keď eštenepodporovali virtualizáciu.
  6. 6. Odborné zdroje:LEVINE, John R. Linkers and loaders. San Francisco: Morgan Kaufmann, 2000, xv, 256 s. ISBN 15-586-0496-0.  John Levine je známy autor mnohých kníh a expert v svojom odbore, preto nepochybujem o odbornosti tejto knihy.KOLÁŘ, Petr. Operační systémy [online]. Liberec: 2005-02-01. S. 38-53 [cit. 2013-01-04]. Dostupné z:http://www.nti.tul.cz/~kolar/os/  Petr Kolář je erudovaný odborník vyučujúci na Technickej Univezite v Liberci, vyštudoval Karlovu Univerzitu a jeho učebný materiál tak môžem považovať za relevantný.Communications of the ACM: a monthly publication of the ACM Publications Office [online]. NewYork: Association for Computing Machinery, [cit. 2013-01-04]. MEMORY management (Computerscience). ISSN 0001-0782.  Association for Computing Machinery (ACM) publikuje mesačne odborné články, ktorých autori pracujú a vykonávajú výskum v odbore informačných technológií. Konkrétny článok z ktorého som čerpal informácie do mojej odbornej práce (Memory management) obsahoval odborníkmi spracovanú časť o základoch správy pamäte.

×