Rozdiel medzi stránkovaním a segmentáciou

Správa pamäte je jednou zo základných funkcií operačného systému. Moderné operačné systémy umožňujú každému procesu získať viac virtuálnej pamäte, ako je celková veľkosť skutočnej (fyzickej) pamäte v danom počítačovom systéme. Hlavným cieľom správy pamäte je to, že kombináciou veľkej, ale pomalej pamäte s malou, ale vysokorýchlostnou pamäťou sa dosiahne efekt väčšej vysokorýchlostnej pamäte..

Čo je stránkovanie?

Oddelenie medzi pevným a variabilným rozdelením je z hľadiska využitia pamäte neefektívne, pretože pevné rozdelenie má za následok interné, zatiaľ čo dynamické externé fragmentovanie. Možným riešením problému fragmentácie je umožniť, aby sa proces nezapisoval do súvislého pamäťového bloku. Program môže byť ľubovoľne rozptýlený v pamäti. V tomto prípade je pracovná pamäť rozdelená do menších blokov s pevnou veľkosťou nazývaných rámce. Logický adresný priestor programu je tiež rozdelený do blokov rovnakej veľkosti, ktoré sa nazývajú stránky. Po zadaní programu do pamäte sa stránky zapíšu do rámcov voľnej pamäte. Pre ľahší prenos programov z disku do pracovnej pamäte sa disk tiež rozdelí na snímky rovnakej veľkosti ako pamäťové snímky. Jeden rámec z disku sa teda zapíše do jedného rámca pracovnej pamäte. Stránkovací systém funguje nasledujúcim spôsobom: keď je program prijatý na vykonanie, vypočíta sa jeho veľkosť, ktorá sa vyjadrí s požadovaným počtom strán. Ak je k dispozícii dostatočný počet snímok, proces sa zaznamená na stránku s pamäťou na stránku. Zároveň sa do tabuľky rámcov zapíše počet rámcov, v ktorých je každá stránka napísaná.

Čo je segmentácia?

Užívateľský program a súvisiace údaje možno rozdeliť do niekoľkých segmentov. Segmenty všetkých programov nemusia mať rovnakú veľkosť, hoci existuje maximálna dĺžka segmentov. Rovnako ako pri stránkovaní, logická adresa, ktorá používa segmentáciu, pozostáva z dvoch častí, v tomto prípade z počtu segmentov a dislokácií v tomto segmente. Z dôvodu použitia segmentov rôznych veľkostí je segmentácia podobná dynamickému rozdeleniu. Ak neexistuje schéma prekrytia alebo použitie virtuálnej pamäte, je potrebné, aby sa do programu na vykonanie načítali všetky programové segmenty. Rozdiel v porovnaní s dynamickým rozdelením na oddiely spočíva v tom, že segmentácia môže trvať viac ako jeden oddiel a tento oddiel nemusí susediť. Segmentácia rieši problém vnútornej fragmentácie, ale aj pri dynamickom rozdelení zostáva problém externej fragmentácie. Pretože je však proces rozdelený na niekoľko menších častí, vonkajšia fragmentácia je zvyčajne menšia. Na rozdiel od stránkovania, ktoré je pre programátora neviditeľné, je segmentácia zvyčajne viditeľná a vhodná na organizovanie programov a údajov. Na účely modulárneho programovania sa program alebo dáta môžu ďalej rozdeliť do niekoľkých menších segmentov. Nevýhodou tejto techniky je, že programátor musí poznať obmedzenia maximálnej veľkosti segmentu. Ďalšou výhodou použitia segmentov rôznych veľkostí je to, že neexistuje žiadne potenciálne spojenie medzi logickými a fyzickými adresami. Podobne ako pri stránkovaní, aj v technike jednoduchých segmentácií sa používa tabuľka segmentov pre každý proces a zoznam dostupných blokov v hlavnej pamäti.

Rozdiel medzi stránkovaním a segmentáciou

1. Koncept stránkovania a segmentácie

Stránkovanie poskytuje virtuálny a fyzický adresný priestor a sekundárne pamäťové miesto na blokoch (stránkach) s rovnakou dĺžkou. To umožňuje, aby bol kontinuálny virtuálny adresový priestor pridelený procesu rozptylu (nie nevyhnutne nepretržite distribuovaný) v reálnom adresnom priestore a sekundárnej pamäti. Dokonca aj stránka ako termín označuje skôr pamäť ako logické objekty, ktoré sú viditeľné na úrovni programu. Segmentácia poskytuje virtuálny adresný priestor na blokoch (segmentoch), ktoré priamo zodpovedajú objektom na úrovni programu. Z tohto dôvodu segment nemá pevnú dĺžku, takže aj veľkosť segmentu sa môže počas vykonávania programu zmeniť. Ochrana a delenie sú preto možné na úrovni objektov a existujú segmenty, v ktorých sa vykonáva segmentácia.

2. Charakteristika stránkovania a segmentácie

Vývojár aplikácií nepozná stránkovanie. Píše programy, ako keby bola pamäť lineárna, a operačný systém a procesor sa zaujímajú o jeho rozdelenie a prevod na virtuálne adresy. Programátor v segmentačných systémoch však vo svojich programoch uvádza dve časti adresy, segmentu a stránky. Všetky stránky majú rovnakú veľkosť, zatiaľ čo segmenty sú rôzne. Segmentácia má viacero lineárnych adresných priestorov a paging iba jeden. Segmenty umožňujú logické rozdelenie a ochranu komponentov aplikácie a stránky nie.

3. Výhody stránkovania a segmentácie

Stránkovanie, ktoré je pre programátora priehľadné, vylučuje externú fragmentáciu, a tým zaisťuje efektívne využitie hlavnej pamäte. Kusy, ktoré sa pohybujú dovnútra a von z hlavnej pamäte, sú pevné a majú rovnakú veľkosť, takže je možné vyvinúť sofistikované algoritmy správy pamäte, ktoré využívajú správanie programu. Segmentácia je viditeľná pre vývojárov a má schopnosť riadiť rast dátovej štruktúry, modularity a podporu výmeny a ochrany..

Stránkovanie verzus segmentácia: porovnávacia tabuľka

paging

segmentácia

pevná veľkosť stránok segmenty nemajú pevnú veľkosť
neviditeľné pre programátora viditeľné pre programátora
jeden lineárny adresný priestor viacnásobné lineárne adresné priestory
nepovoľuje logické rozdelenie a ochranu komponentov aplikácie umožňuje

Zhrnutie stránkovania a segmentácie

  • Paging je založený na distribúcii celého adresného priestoru v blokoch s pevnou dĺžkou, ktoré sa prevádzkujú podľa kvantovania pamäte. Ďalej je potrebné poskytnúť prostriedky na označenie dostupnej pamäte, ktoré sa môžu vykonať prítomnosťou „hlavičky“ každej stránky označujúcej stav stránky (globálny prepojený zoznam, kde každý uzol ukazuje na nasledujúcu voľnú stránku) alebo pomocou umiestnenie bezplatnej adresy stránky do globálneho poľa, čo je zvyčajne najhoršie riešenie.
  • Segmentácia znamená rozdelenie adresného priestoru na segmenty, ktoré majú jasne označené prístupové práva k procesoru MMU. V rámci segmentu procesy prideľujú presne toľko pamäte, koľko potrebujú, ale problém správy pamäte spočíva v tom, ako zabezpečiť také rozdelenie, kde môže zachovať dosť veľkú pamäť súvislých blokov, ktorá môže potrebovať nejaký čas..