2.4. Strankovani pameti
- Metody pridelovani sekci vychazeji z predpokladu, ze sekce musi tvorit souvislou oblast. Strankovani pameti umoznuje tento pozadavek
obejit.
- Adresovy prostor kazde ulohy se rozdeli na stejne useky - stranky. Na stejne velke
dily se rozdeli operacni pamet - bloky, fyzicke stranky, strankove
ramy.
- Pomoci technickeho vybaveni pro transformaci adres lze pak kazdou stranku vlozit do
libovolneho bloku.
- Stranky jsou logicky souvisle vzhledem k uziv. programu, ale odpovidajici bloky na sebe
nemusi navazovat.
- Stejne jako u sekci nemaji transformace zadny vliv na uziv. ulohu.
- Pro kazdou stranku musi byt vyhrazen samostatny registr. Registry - tabulky stranek - PMT
tj. Page Map Tables. - Registry jsou bud soucasti technickeho vybaveni, nebo jsou ve
vyhrazenem useku pameti.
- Efektivnost cele technologie znacne ovlivnuje velikost stranky. Velke stranka - v podstate
totez co pridelovani sekci => fragmentace. Mala stranka - prilis mnoho registru,. coz
zvysuje cenu vyp. systemu a zpomaluje jeho chod. Optimalni velikost je mezi 1kB az 4kB.
- Strankovani resi problem fragmentace bez fyzickych presunu
- Ctyri fce modulu pridelovani pameti lze realizovat takto:
- Sledovani stavu se provadi pomoci tabulek.
- pro kazdou ulohu jedna tabulka stranek - pro kazdou stranku jeden zaznam
(stranka,blok)
- systemova tabulka bloku pameti (Memory Block Table) - pro kazdy blok
pameti zaznam zda je "volny" nebo "uzity"
- Rozhodovani o pridelovani pameti provadi planovac uloh - prideli se mnozina
volnych bloku pameti, ktere se naleznou nejdrive.
- Prideleni pameti = stranky se zavedou do prirazenych bloku a aktualizuji se
zaznamy v tabulce stranek a tabulce bloku.
- Uvolneni pameti = v tabulce bloku se odpovidajici zaznamy uvedou do stavu
"volny"

Obr. 13 Strankovani pameti
- Na obr. 13 je jednoduchy priklad strankovani pameti. Rozsah stranky = 1000 slabik.
Adresovy prostor ulohy 2 = 3000 slabik => je rozdelena do tri stranek str. 0 v bloku 2, str. 1 v
bloku 4 a str. 2 v bloku 7. Napr. Instrukce LOAD 1,2108 na adreses 0518 (str. 0, slabika 518)
je ve skutecnosti na absolutni adrese 2518 (str. 2, slabika 518). Stejne tak konstanta 015571 na
logicke adrese 2108 je v operacni pameti na adrese 7108.
- K dispozici je 2000 slabik => je mozno jeste uspokojit ulohu s pametovymi naroky max.
2000 slabik, a to BEZ NUTNOSTI PRESUNU v pameti. V systemu dynamickeho pridelovani
sekci by bylo nutne provest zhustovani, aby vznikla jedina oblast pozadovaneho rozsahu. V
systemu strankovani se jednoduse uloze priradi dva volne bloky - napr. blok 3 pro stranku 0 a
blok 9 pro stranku 1.

Obr. 14 Transformace efektivni adresy na fyzickou
Priklad
V systemu IBM/370 je rozsah stranky 4 kB = 4096 B = 212 B => pro adresovani v ramci jedne
stranky je treba 12 bitu adresy. Pro co nejjednodussi transformaci adres se delka stranky
volijako mocnina 2. Cela efektivni adresa ma delku 24 b => system adresuje maximalne 4096
bloku pameti a cela pamet systemu muze byt max. 16777216 B = 16 MB. Kazda polozka v
tabulce stranek (kazde cislo bloku) musi byt ulozeno ve dvou bytech - bity 0 - 11 obsahuji
cislo stranky, bity 12 - 15 nejsou vyuzity.

Obr. 15 Cislo bloku
- Adresa je rozdelena na 2 casti:
- bity 8 - 19 obsahuji cislo stranky
- bity 20 - 31 obsahuji doplnek (relativni adresu ve strance)

Obr. 16 Stranka, blok, tabulka stranek, registr tabulky stranek
- Podle tabulky stranek se nahradi cislo stranky cislem bloku a tak vznikne adresa pametoveho
mista, ktere ma byt pouzito. (viz. obr. 14).
Tabulky stranek
- Vyhradit pevne misto v pameti pro tabulku stranek aktualni ulohy je nevyhodne, protoze
by bylo nutno menit tabulku pokazde, kdyz se procesor prideluje jine uloze. Lepsi je ponechat
moznost umisteni tabulky na lib. miste pameti (vetsinou se pro tabulky vyhradi cast pameti
urcena pro OS) a toto misto urcit pomoci tzv. registru adresy tabulky stranek - PMTAR Page
Map Table Register.

Obr. 17 Tabulky uzivane pri strankovani pameti
- Kdyz se procesor prideli jine uloze, je treba zmenit pouze obsah registru PMTAR tak, aby
udaval umisteni tabulky stranek aktualni ulohy. Adresy stranek jdou v pameti souvisle za
sebou, v PMTAR je umisteni prvni adresy a jejich pocet. (viz obr. 16).
- Pri technicke realizaci strankovani tak jak bylo uvedeno by se snizil vykon vyp. systemu na
polovinu (kazdy pristup do pameti by vlastne znamenal dva - jeden pro zjisteni absolutni
adresy). Aby se tomuto zamezilo, uzivaji se tzv. hybridni tabulky stranek. Cast
tabulky je v pameti a cast v super rychlych registrech, kterych neni mnoho. Kdykoli je to
mozne uzije se udaje z registru - prenos udaju do registru se provadi tech. prostredky tak, aby
v nich byly vzdy ty nejpouzivanejsi udaje. Tak lze obvykle redukovat rezii strankovani pameti
na mene nez 5%.
- OS se stara o 3 zakladni tabulky:
- tabulka uloh (Job Table)
- tabulka bloku (Memory block table)
- tabulka stranek (Page Memory Table)
- V tabulce uloh je pro kazdou ulohu polozka obsahujici udaje o umisteni a delce jeji tabulky
stranek a dalsi stavove informace. Tabulka bloku udava stav kazdeho bloku pameti ("volny" /
"uzity"). (viz. obr. 17).
- Pokud nekterou stranku vyuziva vice procesu (napr. cast OS) voli se technika prekryvani
stranek.
2.4.1. Vyhody
- Eliminuje fragmentaci a umoznuje zvysit pocet uloh, pro ktere lze vytvorit pametove
prostory soucasne => lepsi vyuziti procesoru a operacni pameti.
- Eliminuje se rezije zhustovani, ktere je nezbytne pri dynamickem pridelovani
sekci
2.4.2. Nevyhody
- Technicke prostredky pro transformaci stranek zvysuji obvykle cenu vypocetniho systemu
a soucasne snizuji jeho rychlost.
- Uchovavani tabulek (zejm. PMTs) zabira cast operacni pameti. Soucasne se zvysuje rezie
(cas procesoru) o dobu potrebnou k udrzovani techto tabulek.
- Fragmentace jako takova je eliminovana, vyskytuje se ale tzv. vnitrni fragmentace.
4kB_stranka, uloha vyzaduje 5 kB pameti => nutno pridelit 2 bloky => 3 kB zustanou
nevyuzity. Prumerne pripada na kazdou ulohu nevyuzita asi polovina stranky. Problem
zmirnuje zmenseni stranek, ktere ale zaroven zvysuje rezii spravy pameti. Pri tvrobe OS se
strankovanim pameti je vhodne znat prumerny rozsah uloh.
- Nevyuzita zustava i pamet, ktera je sice volna, ale nestaci k pokryti pametovych naroku
prisedsi ulohy. Jsou volne 2 stranky (8 kB) a uloha pozaduje 8200 b. Kvuli 8 b zustava
nevyuzito 8 kB operacni pameti. Rozsah pameti nevyuzite z techto duvodu byvaa priblizne
polovina adresoveho prostoru prumerne ulohy.
- Stejne jako v minulych technikach i tady mohou byt v pameti po celou dobu vypoctu
zavedeny udaje, ktere se pouziji bud jen zridka nebo dokonce nikdy.
- Adresovy prostor je limitovan fyzickym rozsahem operacni pameti.
Zpet
Obsah
Vpred