Странична организација меморије

Програм, односно његов адресни простор, који укључује извршни код, податке и стек, дели се на делове фиксне дужине који се називају странице. Оперативна меморија се посматра као низ делова фиксне дужине који се зову блокови или оквири, при чему је дужина блока једнака дужини странице. Адреса у програму се посматра као логичка адреса састављена од два дела: број странице (p) и помераја унутар странице (d). Ако се програм дели на n страница онда важи: 0<=p<=n-1, при чему је укупан број страница n=2p. За страницу величине k важи: 0<=d<=k-1, што значи да број битова који учествује у формирању адресе помераја одређује величину странице.

 

stranica1

Оперативна меморија се посматра као низ блокова, а свака ћелија, односно адреса ћелије посматра се као физичка адреса у којој d одређује померај (иста вредност као код логичке адресе!!!), а b број блока.

 

stranica2

На тај начин свака страница програма заузима један блок, али није ограничено како и где ће која страница бити смештена у меморији, што значи да странице једног програма могу бити разбацане по оперативној меморији. На тај начин се решава проблем екстерне фрагментације, али се захтева механизам за пресликавање логичке адресе у физичку.

Основу овог пресликавања чини таблица пресликавања (PMT) која се конструише у оперативној меморији. Таблица има онолико врста колико програм има страница (n), и број странице одговара броју врсте у табели. За сваки процес се конструише посебна PMT, а то се обавља у тренутку креирања PCB-а. Када се страница упише у неки блок у одговарајућу врсту (p) се упише вредност блока (b), и неке додатне информације. Све информације уписане у одговарајућу врсту PMT образују дескриптор странице. На почетак PMT указује регистар PMTAR. Пресликавање логичке адресе у физичку може се представити са четири микроинструкције:

страница1читање дескриптора. У MAR (меморијски адресни регистар) уписује се адреса записа странице у табели страница, односно дескриптор странице. У MBR (меморијски регистар података) уписује се адреса меморијске локације на коју указује MAR (M), а то је дескриптор странице

страница2читање/упис у меморију. У MAR се уписује физичка адреса, која се добија спајањем редног броја блока (b) и помераја (d). Ако се врши читање из меморије тада се у MBR уписује меморијска локација на коју указује MAR, а то је, у ствари тражена физичка адреса добијена из дескриптора таблице. У случају уписа у меморију у адресу на коју указује MAR уписује се садржај MBR, односно жељени податак.

Од додатног хардвера потребан је сабирач, који сабира садржај регистра PMTAR, односно адресу почетка PMT и редни број странице (p). Број странице се може прочитати из програмског бројача, ако се ради о инструкцији, или из регистра ефективних адреса, ако се ради о операндима или резултату.

Поред PMT која се конструише за сваки процес, потребна је и табела слободних блокова (FBT). FBT је само једна, и у свакој врсти уписује се број слободног блока. Уместо FBT може се користити и листа слободних блокова (FBL). Од додатних програма потребан је програм који конструише PMT и програм који конструише и ажурира FBT, односно FBL.

Заштита програма реализује се на страничном нивоу. У процесору постоји регистар у који се уписује највећи број странице. Тај број спада у контекст процесора и уписује се у PCB. Када процес добије процесор у регистар највећег броја странице упише се одговарајућа вредност из PCB-а. Затим се свака адреса, односно њен p део пореди са овом вредношћу. Ако је p>pmax обавештава се програмер, а процес убија. Ако је p<=pmax тада се приступа превођењу логичке адресе у физичку.

Advertisements

One thought on “Странична организација меморије

  1. Повратни пинг: Управљање меморијом – Рачунари и програмирање

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се / Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се / Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се / Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се / Промени )

Повезивање са %s