SlideShare a Scribd company logo
1 of 6
Download to read offline
Argumentácia:

Tento text som si vybral, pretože spadá do môjho odboru a jednoduchým spôsobom vysvetľuje
vybranú problematiku správy pamäte a stránkovania. Tieto akcie sa odohrávajú na pozadí v každom
počí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 pri
svojej č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ým
priestorom 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 bez
operačného systému. Nebolo možné kontrolovať prístup do RAM. Počítače do 70. rokov minulého
storoč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šie
využiť.



1.1    Význam

        Spáva pamäte je z hľadiska operačného systému neodmysliteľnou súčasťou moderných
počítačov. Zjednodušene je jej funkciou alokovanie častí pamäte na žiadosť programov a ich
uvoľňovanie (dealokácia), keď už viac nie sú potrebné. Zaisťuje, aby zdieľanie pamäte medzi súčasne
bežiacimi procesmi bolo efektívne a bezpečné, udržiava informácie o stave obsadenosti adresného
priestoru a aktualizuje tabuľku stránok. Zabezpečuje ochranu pamäte a pri multitaskingových
systé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
nebezpečné ponechať ju na programátorovi pri programovaní aplikácií. Procesy majú takto presne
určené, ktorú pamäť smú a nesmú používať. Proces nesmie čítať a zapisovať mimo pamäť, ktorá mu
bola 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í.
Obr. 1.: Proces vytvárania programu




        Aby sa z programu spustením stal proces, je nutné, aby sa adresy inštrukcií v programe
naviazali 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
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 svoje
inštrukcie adresovať od nuly, aj keď skutočné adresy v čase behu vo FAP môžu byť (a vo väčšine
prípadov sú) iné.




                                       Obr. 2.: Viazanie adries




Viazanie 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ý modul
prevádzajúci logické adresy na adresy fyzické (a naopak). MMU delí virtuálny adresný priestor (LAP)
na rovnako veľké stránky.
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í obsahu
relokačného registru k adresám inštrukcií užívateľského procesu v okamihu, keď sú tieto adresy
odovzdávané ako ukazovatele do operačnej pamäte. Relokačný register je privilegovaný a je
dostupný len pre operačný systém.




                                      Obr. 3.: Relokačný register




1.3    Metódy prideľovania pamäte

         Historické techniky správy pamätí boli napr. prideľovanie súvislých oblastí (partitioning) vo
FAP na beh procesov, prideľovanie fixných oblastí, oblastí s premennou veľkosťou a prideľovanie
pamäte s prekryvmi (overlays). V súčasnosti sa tieto techniky používajú v špeciálnych OS a v real-time
OS. Ich efektivita je zvýšená možnosťou presúvať obsah alokovaných oblastí z hlavnej pamäte na
pevnú 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é (swap
in) iné, potrebné dáta. Swapping bol používaný v systémoch Linux alebo Windows v čase, keď ešte
nepodporovali virtualizáciu.
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]. New
York: Association for Computing Machinery, [cit. 2013-01-04]. MEMORY management (Computer
science). 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.

More Related Content

Similar to Správa pamäte

The New Distrowatch – Bachelor's thesis (SK)
The New Distrowatch – Bachelor's thesis (SK)The New Distrowatch – Bachelor's thesis (SK)
The New Distrowatch – Bachelor's thesis (SK)Jakub Žitný
 
Operacne systemy
Operacne systemyOperacne systemy
Operacne systemygymmoldava
 
Diplomová práca - Štúdia pokročilých vlastností operačného systému Solaris
Diplomová práca - Štúdia pokročilých vlastností operačného systému SolarisDiplomová práca - Štúdia pokročilých vlastností operačného systému Solaris
Diplomová práca - Štúdia pokročilých vlastností operačného systému SolarisMatus Kovacik
 
Kpi zaverecny ukol
Kpi   zaverecny ukolKpi   zaverecny ukol
Kpi zaverecny ukolmiso3113
 
Záverečná úloha KPI
Záverečná úloha KPIZáverečná úloha KPI
Záverečná úloha KPIhull666666
 
ukol KPI
ukol KPIukol KPI
ukol KPISlavoM
 
Sprava suborov zmaturuj
Sprava suborov zmaturujSprava suborov zmaturuj
Sprava suborov zmaturujgymmoldava
 

Similar to Správa pamäte (10)

Php sec
Php secPhp sec
Php sec
 
Storage con fmtos_v01
Storage con fmtos_v01Storage con fmtos_v01
Storage con fmtos_v01
 
The New Distrowatch – Bachelor's thesis (SK)
The New Distrowatch – Bachelor's thesis (SK)The New Distrowatch – Bachelor's thesis (SK)
The New Distrowatch – Bachelor's thesis (SK)
 
Clanok
ClanokClanok
Clanok
 
Operacne systemy
Operacne systemyOperacne systemy
Operacne systemy
 
Diplomová práca - Štúdia pokročilých vlastností operačného systému Solaris
Diplomová práca - Štúdia pokročilých vlastností operačného systému SolarisDiplomová práca - Štúdia pokročilých vlastností operačného systému Solaris
Diplomová práca - Štúdia pokročilých vlastností operačného systému Solaris
 
Kpi zaverecny ukol
Kpi   zaverecny ukolKpi   zaverecny ukol
Kpi zaverecny ukol
 
Záverečná úloha KPI
Záverečná úloha KPIZáverečná úloha KPI
Záverečná úloha KPI
 
ukol KPI
ukol KPIukol KPI
ukol KPI
 
Sprava suborov zmaturuj
Sprava suborov zmaturujSprava suborov zmaturuj
Sprava suborov zmaturuj
 

Správa pamäte

  • 1. Argumentácia: Tento text som si vybral, pretože spadá do môjho odboru a jednoduchým spôsobom vysvetľuje vybranú problematiku správy pamäte a stránkovania. Tieto akcie sa odohrávajú na pozadí v každom počí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 pri svojej č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ým priestorom 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 bez operačného systému. Nebolo možné kontrolovať prístup do RAM. Počítače do 70. rokov minulého storoč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šie využiť. 1.1 Význam Spáva pamäte je z hľadiska operačného systému neodmysliteľnou súčasťou moderných počítačov. Zjednodušene je jej funkciou alokovanie častí pamäte na žiadosť programov a ich uvoľňovanie (dealokácia), keď už viac nie sú potrebné. Zaisťuje, aby zdieľanie pamäte medzi súčasne bežiacimi procesmi bolo efektívne a bezpečné, udržiava informácie o stave obsadenosti adresného priestoru a aktualizuje tabuľku stránok. Zabezpečuje ochranu pamäte a pri multitaskingových systé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. nebezpečné ponechať ju na programátorovi pri programovaní aplikácií. Procesy majú takto presne určené, ktorú pamäť smú a nesmú používať. Proces nesmie čítať a zapisovať mimo pamäť, ktorá mu bola 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. Obr. 1.: Proces vytvárania programu Aby sa z programu spustením stal proces, je nutné, aby sa adresy inštrukcií v programe naviazali 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. 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 svoje inštrukcie adresovať od nuly, aj keď skutočné adresy v čase behu vo FAP môžu byť (a vo väčšine prípadov sú) iné. Obr. 2.: Viazanie adries Viazanie 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ý modul prevádzajúci logické adresy na adresy fyzické (a naopak). MMU delí virtuálny adresný priestor (LAP) na rovnako veľké stránky.
  • 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í obsahu relokačného registru k adresám inštrukcií užívateľského procesu v okamihu, keď sú tieto adresy odovzdávané ako ukazovatele do operačnej pamäte. Relokačný register je privilegovaný a je dostupný len pre operačný systém. Obr. 3.: Relokačný register 1.3 Metódy prideľovania pamäte Historické techniky správy pamätí boli napr. prideľovanie súvislých oblastí (partitioning) vo FAP na beh procesov, prideľovanie fixných oblastí, oblastí s premennou veľkosťou a prideľovanie pamäte s prekryvmi (overlays). V súčasnosti sa tieto techniky používajú v špeciálnych OS a v real-time OS. Ich efektivita je zvýšená možnosťou presúvať obsah alokovaných oblastí z hlavnej pamäte na pevnú 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é (swap in) iné, potrebné dáta. Swapping bol používaný v systémoch Linux alebo Windows v čase, keď ešte nepodporovali virtualizáciu.
  • 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]. New York: Association for Computing Machinery, [cit. 2013-01-04]. MEMORY management (Computer science). 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.