Paging a segmentace

Anonim

Správa paměti je jednou ze základních funkcí operačního systému. Moderní operační systémy umožňují každému procesu získat více virtuální paměti než celková velikost skutečné (fyzické) paměti v daném počítačovém systému. Hlavním cílem správy paměti je, že kombinací velké, ale pomalé paměti s malou, ale vysokorychlostní pamětí lze dosáhnout efektu větší paměti s vysokou rychlostí.

Co je stránkování?

Oddělení mezi pevným a variabilním rozdělením je neefektivní z hlediska využití paměti, neboť pevná partitioning má za následek vnitřní, zatímco dynamickou v externí fragmentaci. Možným řešením problému fragmentace je umožnit, aby proces nebyl zapisován do bloku nepřetržité paměti. Program může být libovolně rozptýlen v paměti. V tomto případě je pracovní paměť rozdělena na menší bloky s pevnou velikostí nazývané rámce. Logický adresový prostor programu je také rozdělen na bloky stejné velikosti, tzv. Stránky. Po vložení programu do paměti se stránky zapisují do volných paměťových rámců. Pro snadné převedení programů z disku do pracovní paměti je disk také rozdělen na rámy stejné velikosti jako paměťové rámy. Jeden snímek z disku je tedy zapsán do jednoho snímku pracovní paměti. Systém stránkování pracuje následujícím způsobem: když je program přijat k provedení, vypočítá se jeho velikost, což je vyjádřeno požadovaným počtem stránek. Je-li dostatečný počet rámců volný, proces se zaznamená na paměťovou stránku na stránku. Současně je v tabulce rámců zadán počet rámců, ve kterých je každá stránka zapsána.

Co je to segmentace?

Uživatelský program a přidružená data lze rozdělit na několik segmentů. Segmenty všech programů nemusí mít stejnou velikost, i když je maximální délka segmentu. Stejně jako při stránkování obsahuje logická adresa, která používá segmentaci, dvě části, v tomto případě počet segmentů a dislokace v rámci tohoto segmentu. Vzhledem k použití segmentů různých velikostí je segmentace podobná dynamickému rozdělení. Při absenci schématu překrytí nebo použití virtuální paměti je nutné, aby byly všechny segmenty programu načteny do paměti pro provedení. Rozdíl oproti dynamickému rozdělení je, že segmentace může mít více než jeden oddíl a tento oddíl nemusí být sousední. Segmentace řeší problém vnitřní fragmentace, ale i dynamické rozdělení, zůstává problém externí fragmentace. Nicméně, protože proces je rozdělen do několika menších částí, vnější fragmentace je typicky menší. Na rozdíl od stránkování, které je pro programátora neviditelné, je segmentace obvykle viditelná a vhodná pro organizaci programů a dat. Pro účely modulového programování lze program nebo data dále rozdělit na několik menších segmentů. Nevýhodou této techniky je, že programátor musí znát omezení maximální velikosti segmentu. Další výhodou použití segmentů různých velikostí je to, že neexistuje perspektivní spojení mezi logickými a fyzickými adresami. Podobně jako stránkování využívá technika jednoduché segmentace segmentovou tabulku pro každý proces a seznam dostupných bloků v hlavní paměti.

Rozdíl mezi stránkováním a segmentací

1. Koncepce stránkování a segmentace

Paging poskytuje virtuální a fyzický adresní prostor a sekundární paměťový prostor na bloky (stránky) stejné délky. To umožňuje nepřetržitému přidělování virtuálního adresového prostoru procesu rozptylu (ne nutně nepřetržitě distribuovanému) v reálném adresovém prostoru a sekundární paměti. Dokonce i stránka, jako pojem, odkazuje spíše na paměť než na logické objekty, které jsou viditelné na úrovni programu. Segmentace poskytuje virtuální adresový prostor na bloky (segmenty), které přímo odpovídají objektům na úrovni programu. Z tohoto důvodu segment nemá pevnou délku, takže i velikost segmentu může být během provádění programu měněna. Ochrana a rozdělení jsou proto možné na úrovni objektu a tam jsou viditelné procesy, kde se segmentace provádí.

2. Vlastnosti stránkování a segmentace

Vývojář aplikace nepozná stránkování. Napíše programy, jako kdyby je paměť lineární, a operační systém a procesor se obávají rozdělení a konverze na virtuální adresy. Programátor na segmentačních systémech však uvádí ve svých programech dvě části adresy, segmentu a stránky. Všechny stránky mají stejnou velikost, zatímco segmenty jsou různé. Segmentace má více lineárních adresových prostorů a stránkování je pouze jedno. Segmenty umožňují logické rozdělení a ochranu součástek aplikace a stránky nejsou.

3. Výhody stránkování a segmentace

Paging, který je pro programátora transparentní, eliminuje vnější fragmentaci a tím zajišťuje efektivní využití hlavní paměti. Části, které se pohybují v hlavní paměti a jsou mimo ni, jsou pevné a stejné velikosti, takže je možné vyvíjet sofistikované algoritmy správy paměti, které využívají chování programu. Segmentace je pro vývojáře viditelná a má schopnost řídit růst struktury dat, modularitu a podporu výměny a ochrany.

Stránkování vs. segmentace: Srovnávací graf

Stránkování

Segmentace

velikost pevných stránek segmenty nejsou fixní
neviditelný pro programátora viditelné pro programátora
jeden lineární adresový prostor více lineárních adresových prostorů
neumožňuje logické rozdělení a ochranu komponent aplikací umožňuje

Přehled stránkování a segmentace

  • Stránkování je založeno na distribuci celého adresního prostoru na blocích s pevnou délkou, které fungují jako kvantifikace paměti. Dále je nutné poskytnout prostředky pro označování dostupné paměti, které mohou být provedeny přítomností "záhlaví" každé stránky označující stav stránky (globálně propojený seznam, kde každý uzel ukazuje na další volnou stránku) nebo umístění volné stránky do globálního pole, což je obvykle nejhorší řešení.
  • Segmentace znamená rozdělení adresového prostoru na segmenty, které mají jednoznačně označené přístupová práva k procesoru MMU. V rámci segmentu procesy přidělují přesně tolik paměti, kolik potřebují, ale problém správy paměti je způsob, jak zajistit takovou alokaci, kde může zachovat dostatečně rozsáhlou nepřetržitou blokovou paměť, která může potřebovat nějaký čas.