Виртуална памет




ИмеВиртуална памет
Дата на преобразуване09.01.2013
Размер135.16 Kb.
ТипДокументация
източникhttp://unicheats.net/files/tu_files/20081004_175228_786.Chapter8.doc
ГЛАВА 8:

ВИРТУАЛНА ПАМЕТ

Виртуалната памет е техника която позволява изпълнение на програми които не са поместени изцяло в основната пам-ет. Главното и предимст-во е, че потребителските програми могат да бъдат по големи от основната памет. Виртуалната па-мет се реализира чрез средствата на странич-на или сегментна или ст-ранично/сегментна орг-анизация, и чрез механ-изма за размяна.

8.1Същност на вирту-алната памет.Виртуал- ната памет е отделяне на потребителската лог-ическа памет от основн-ата памет. Виртуалната памет съществува пара-лелно със основната па-мет като м/у тях се осъ-ществява динамично съ-ответствие ч/з механиз-мите на страничната ор-ганизация. Виртуалната памет е адресно простр-анство разделено на стр-аници разположени в/у външно запомнящо уст-ройство. Работата на ви-ртуалната памет наподо-бява с-мите със страни-чна организация и разм-яна. На всяко избрано за изпълнение задание се заделя област от вирт-уалната памет, в която то се разполага като ня-кои от неговите страни-ци се прехвърлят в осн-овната памет като по време на изпълнение ст-раници постоянно се въ-веждат и извеждат. Сис-темен механизъм нареч-ен управление на втор-ичната памет, поддър-жа таблица с информац-ия за съответствието м/у виртуалните адреси и физ. разположение на данните в/у диска. Съо-тветствието м/у виртуа-лната и основната памет се управлява от страни-чен супервайзор, който динамично организира записа на необходимите страници в основната памет. Таблицата на ст-раниците е допълнена с бит за присъствие пока-зващ дали съответната стр. се намира в основн-ата памет. Ако страниц-ата е в основната памет, преобразуването на адр-есите става така:

фиг 7.3, стр. 160 

Деленето на страници се осъществява при тра-нслацията на програми-те, като указателите в командните адреси се състоят от две компоне-нти–номер на страни-ца(р) и отместване (d) спрямо началото на стр-аницата. Когато таблиц-ата се разполага в паме-тта обикновено процесо-рът е снабден с регист-ър PTR съдържащ нач-алния адрес на таблица-та. Към съдържанието на PTR се прибавя номе-рът на страницата и от таблицата се чете указа-телят към съответният кадър. За да се намери търсената дума в кадъ-ра, към указателя се добавя отместването d.

Ако страницата не е в основната памет настъ-пва прекъсване поради липса на страница–стр-анично прек., което из-виква страничния супе-рвайзор. Суперв. нами-ра свободен кадър и орг-анизира четенето на не-обходимата стран. от вт-оричната в основната памет. Докато се въведе нужната стр., се пуска друг готов процес, а те-кущия се привежда в състояние на очакване.

при повторно изпълнен-ие на прекъснатата про-гр. могат да възникнат някои проблеми. Ако пр-екъсването се случи по време на извличането на команда рестартира се нейното извличане. Ако прекъсването се случи по време на четенето на операнди, също трябва да се рестартира четене-то на командата. Пробл-ем настъпва при коман-ди модифициращи обла-сти на паметта, когато е невъзможно рестартира-нето на програмата. Въ-зможни са две решения на проблема:

1)Процесорът най-напр-ед се опитва да достигне границите на двете обл-асти, без да прехвърля

данни. Прехвърлянето ще се извърши, когато се знае че страниците са налице.

2)Другият подход е да се използват регистри за запомняне на съдържан-ието на припокриващи- те се области с оглед на възстановяване при пр-екъсване. Някои маши-ни имат регистър в кой-то се копира програмн-ия брояч, както и втори регистър, в който се по-мни кои регистри и с ко-лко са били модифицир-ани по време на изпълн-ение на командата. Дру-ги записват състоянието на процесора в стек, за да осигурят рестартира-не, трети микропрогра-мно връщат състоянието на процесора в точката преди стартирането на провалилата се команда.


8.2 Стратегии за въве-ждане на страници

Те определят в кой мом-ент трябва да се въведе страница от вторичната в основната памет.

Има две стратегии:

въвеждане на страни-ца при поискване-стр-аница се въвежда при действително обръщение

към нея. От вторичната памет не се въвежда ст-раница до тогава, дока-то към нея изпълняван-ия процес не се обърне явно. При стартирането на процес в паметта ня-ма нито една негова стр-аница.

предварително въвеж-дане на страници –използват се методи за прогнозиране на

потребностите на проце-сите от нови страници и след това, при поява на свободно място,те се въ-веждат в основната па-мет.Тази стратегия поз-волява да се намалят пр-екъсванията поради ли-пса на страници, но в много случаи е трудно да се предскаже към кои страници ще се об-ръща процеса. 8.3.Стратегии за изве-ждане на страници.

Понякога при въвежда-нето на страница няма свободен кадър и е необ-ходимо някоя страница да бъде изведена обрат-но във вторичната пам-ет. За да се намали обе-мът на данните, е по уд-обно да се използва тра-екторията на страниц-ите отразяваща реда на извикване на страници-те на изпълнявания про-цес.С увеличаването на страниците в паметта се намаляват прекъсвания-та. Алгоритмите за изве-ждане на страници мог-ат да се прилагат спря-мо всички кадри на осн-овната памет(глобална стратегия) или спрямо кадрите на всеки процес поотделно (локална стр-атегия). Оптимално из-веждане. Биледи предл-ага алгоритъм спрямо който трябва да се изве-жда страницата , към която ще има обръщен-ие. Този алгоритъм е пр-актически нереализиру-ем-невъзможно е предс-казването на обръщени-ята към паметта. Извеж дане на случайна стра-ница. Страницата се из-бира равновероятно. Че-сто се изхвърлят необхо-дими страници,затова рядко се прилага този принцип. Извеждане на първата въведена стр-аница(FIFO). Със всяка страница се свързва мо-ментът на постъпването й в основната памет и при необходимост се из-вежда най старата стра-ница. Алгоритъмът е пр-ост но дава лоши резулт-ати. Често се изхвърлят нужни страници. За то-зи алгоритъм е характе-рна аномалията на Бил-еди, която се свежда до увеличаването на броя на прекъсванията с ув-еличаване на броя на кадрите. Извеждане на най-дълго неизползва-на страница(LRU). Със всяка страница се свър-зва времето на нейното използване, изхвърля се страница към която не е имало обръщение най –дълъг период от време. Необходимо е да се след-ят обръщенията към вс-яка страница за да се натрупа история. Решения:

1.С тях се пазят номе-рата на страниците. Ко-гато има обръщение към страницата, номерът й се извежда от стека и се записва на върха. По то-зи начин на дъното на стека се намира най-дъ-лго неизползваната стр-аница.

2.С всеки елемент на та-блицата на страницата се свързва регистър, а в процесора се включва логически таймер или брояч. При всяко обръ-щение към паметта съд-ържанието на брояча се увеличава. При обръще-ние към страница, стой-ността на брояча се коп-ира в съответния регис-тър на таблицата. Реали-зацията на всеки от алг-оритмите иска апаратна поддръжка, тъй като ст-екът или регистърът тр-ябва да се обновяват при всяко обръщение към паметта. Много сис-теми използват различ-ни апроксимации на LRU, които изискват ми-нимална апаратна подд-ръжка и дават задовол-ителна производително-ст. Малко системи пред-оставят апаратна поддр-ъжка за реализация на алгоритъма. В много си-стеми е на разположен-ие допълнителен бит за използване на страници , който се установява апаратно при обръщане при съответна страница.

Алгоритми апроксимир-ащи LRU:

Допълнителни битове на използване. С всяка страница може да се св-ърже поле, например ба-йт, и да се образува таб-лица в паметта. През оп-ределени интервали ОС копира бита на използв-ане на всяка страница в най-старшия бит на съо-тветния байт чрез прем-естване на дясно на бай-та. Така в байта се полу-чава историята на стра-ницата.

Втори шанс. В неговата основа е алгоритъмът FIFO. За да се избегне изхвърлянето на нужни страници, проверява се стойността на бита на използване на най-стар-ата страница. Ако е ну-ла страницата е стара и неизползвана, и се сме-ня незабавно. Ако битът е единица на страница-та се дава “втори шанс” като битът се нулира.

Часовников алгорит-ъм. Въпреки че вторият шанс е приемлив алгор-итъм, той е неприемлив

поради постоянното пр-еместване на страници-те в списъка. По-добри резултати се получават ако списъкът е циклич-ен под формата на часо-вник и стрелката му со-чи най-старата страни-ца. Ако битът е равен на единица, той се анулира и стрелката преминава към следващата страни-ца, ако битът е нула стр-аницата се изхвърля.

Извеждане на най-ряд-ко използвана страни-ца(LFU). LFU поддържа брояч на обръщенията към всяка страница. Из-вежда се страница с най-малка стойност на брояча.

Извеждане на най-чес-то използвана страни-ца(MFU). Мотивацията e, че страницата с

най-малък брой обръщ-ения е вероятно току що използвана за това не е използвана.

Класове от страници. Освен бита за използва-не на страници, въвеж-да се още един бит

показващ дали страниц-ата е модифицирана.

8.4.Разпределение на кадри. При стартиране-то си всеки процес разп-олага с определено мно-жество страници в пам-етта, Например първата. След това със странично прекъсване се въвеждат необходимите му стран-ици. За да се намали бр-оят на прекъсванията, желателно е на всеки процес да се разпредели някакво количество ка-дри. Минималният брой кадри за процес се опре-деля от архитектурните особености на процесо-ра. Максималния брой кадри за процес е огран-ичен от обема на физич-еската (основната) пам-ет. Най-простото разп-ределение е еквивален-тното, при което всич-ки п/си получават една-къв брой кадри. С оглед да се отчетат нуждите на всеки процес може да се приложи пропорц-ионално разпределен-ие, при което процеси-те получават памет съгл-асно големината си. В зависимост от нивото на мултипрограмиране раз-пределената памет на всеки процес може да варира. При повишава-не на нивото (постъпил-ите нови процеси) проц-есите могат да загубят част от кадрите си, за да се осигури памет за нов процес и обратно. И две-те разпределения не отч-итат приоритетите на процесите. В някои слу-чаи е желателно важен процес да получи повече памет, за да се изпълни по-бързо. Едно решение е да се приложи пропор-ционално разпределен-ие, но съгласно приорит-етите, или комбинация-та от приоритет и голе-мина.Друг подход е да се разреши на процеси-те с висок приоритет да избират кадри при зам-яна на страници не само от собствените си кадри, но и от кадрите на по-ниско приоритетните п-си.

8.5. Локалност на обр-ъщенията.

Локалността е поведен-ие на процесите, изразя-ващо се в това, че разп-ределението на обръще-нията на процесите към паметта се характеризи-ра с висока степен на локална концентрация. Времева локалност оз-начава, че процеса, обр-ъщаш се към някаква клетка на паметта, с го-ляма вероятност скоро отново ще се обърне към същата клетка. Простр-анствена локалност, оз-начава че п/с обръщаш се към някаква клетка с голяма вероятност скоро ще се обърне към съсед-ни клетки. Локалноста е следствие на организац-ия на програмите и дан-ните, където са използв-ани цикли, от програми, стекове, броячи (време-ва локалност), масиви от данни, последователно изпълнение на прогр. (пространствена локалн-ост).





Процесът се характериз-ира с ф-ята p(s), която дава относителния брой прекъсвания на едно об-ръщане към паметта в зависимост от s(частта от страниците на проц-еса записани в паметта). Ако процесът се обръща случайно (с еднаква вер-оятност) към страниците си, вероятността да нас-тъпи прекъсване поради липса на страници p(s)= 1-s. Практическото пов-едение отчита локалнос-та на обръщението. При съставянето на кривата се предполага че за вся-ка с-ст на s най-подход-ящите страници се нам-ират в паметта.

8.6. Боксуване Със зам-яната на страници е св-ързан и проблема с така нареченото ‘боксуване’ (задръстване), което озн-ачава ,че изчислителни-те способности на систе-мата рязко спада в сле-дствие на интензивното изв. и въвежд. на едни и същи страници по прич-ина на недостатъчен об-ем оперативна памет, притежавана от отделн-ите п/си. Процес боксу-ва, ако изразходва пове-че време за смяна на ст-раници отколкото за из-пълнение на програма-та. При локална стратег-ия всеки п/с получава фиксиран брой кадри, които могат да се окаж-ат недостатъчни при на-растване на работните им множества от стран-ици. При глобална стра-тегия процес може да отнеме нужни кадри на друг п/с, който от своя страна отнема кадри на следващ п-с и т.н., което води до усилване на дв-ижението на страници. Затова правило е, че на процесите трябва да се разпредели неох. обем памет. Единственото ефикасно средство про-тив боксуването е да се ограничи броят на проц-есите, получаващи пам-ет. За целта обикновен-но се ограничава опаш-ката на готовите п-си или се управлява нато-варването. Управлени-ето на натоварването може да се извърши по различни начини-ч/з преустановяване и въз-обновяване на процеси, очаква се оператора да забележи боксуването и да вземе мерки. Принц-ипно решение на пробл-ема дава концепцията на работното множест-во:

8.6.1. Работно мно-во

Всеки п/с в даден мом-ент t има работно множ-ество от страници w(t,T), представляващо съвкуп-ността от страници, към които п-сът се е обръщ-ал в течение на интерва-ла от време (t-T,t). Или в работното м-во влизат тези страници към кои-то е имало обръщение през последните Т един-ици прозесорно време на п-са. То се нарича ра-змер на на прозореца на работното м-во и негов-ият избор на решаваща роля за ефективноста на управлението на памет-та. Нов процес може да се стартира и изпълнява само, ако има достатъч-но място за работното му множество. Страни-ца може да се изхвърли само , ако не е член на работното му множество на изпълнявания проц-ес. По време на работата на процес работните му множества динамично се променят- към текущ-ото множество могат да се добавят или изваждат страници.Съществуват различни форми на мо-дела на работното множ-ество (например не е не-обходимо наличието на множеството в паметта- достатъчно е само да се разпредели на процеса, преди да бъде активиз-иран определеният брой кадри).

8.6.2. Честота на стр-анични прекъсвания

Директен начин да се контролира боксуването е да се използва честота-та на страничното прек-ъсване(PFF) или PFF ал-горитъм за разпредел-ение. Когато тази често-та е твърде висока това означава че на процеса са необходими повече кадри, и обратното. Мо-же да се установи горен и долен праг на желана-та честота. Ако се дости-гне горната граница, на процеса се разпределят нови кадри. При достиг-ане на долния праг от процеса се отнемат кад-ри.

8.7. 1. Възможности за предварително въвеж-дане на страници.

Свойството на въвежд-ането при поискване е големия брой прекъсва-ния при стартирането на програмите. В систе-мите, използващи работ-но множество, може да се приложи следното. Когато трябва да се пре-установи процес, запом-ня се работното му мно-жество и при възобновя-ването му отново се във-ежда в оперативната памет.

8.7.2. Локална или гл-обална стратегия. В мултипрограмните сист-еми е възможно алгорит-ъмът за въвеждане на страници да избира стр-аници, без оглед на това към кой процес принад-лежат(глобална стратег-ия) или да следи работ-ното пространство на всеки процес поотделно.

При локалната стратег-ия броят на кадрите, ра-зпределени на процес, не се променят, докато при глобалната стратег-ия един процес може да увеличи своя брой кадри за сметка на други про-цеси.При глобалната ст-ратегия ОС прилага ед-ин алгоритъм за смяна на страници, докато при локалната добре изград-ена ОС може да се изпо-лзват различни алгорит-ми за различни класове задачи. При глобалната стратегия възниква про-блем с определянето на принадлежността на ст-раниците към процесите

8.7.3. Таблици на стр-аниците на повече ни-ва. За да се избегне по-местването на цели таб-лици на страниците в паметта, много компют-ри прибягват към табли-ци на повече нива.

Фиг.8.5. стр.183 


Виртуалният адрес вкл-ючва три полета. Първо-то поле p1 индексира та-блица на стратегиите на първо ниво. Определен-ият елемент съдържа ад-реса или номера на кад-ъра , съдържащ таблица от второ ниво. Чрез пол-ето p2 се индексира изб-раната таблица, за да се определи номера на кад-ъра, в който е записана страницата. Третото по-ле d е отместването в ст-раницата. Ако адресът е 32 битов, полетата p1 и p2 са 10 битови , а d е 12 битово.

8.7.5.Заключване на кадри и забрана. В ня-кои случаи заключване на кадри е необходимо, например като се извър-шва вход/изход с потр-ебителската памет. Док-ато се чака извършване-то на операцията, кадъ-рът, съдържащ буфера може да се раздели на друг процес и по късно обменът да се извърши с друга страница. Има две решения:

1)Обмен да се извърши само със системната памет като Данните се копират между двете

памети

2.Да се свърже бит за заключване с всеки ка-дър.Този бит за заключ-ване може да се изпол-зва и за нормална замя-на на страници.Ако ни-скоприоритетен п-с за-яви сраница той ще ча-ка в опашката на дисп-ечера. Но докато чака по високоприоритетен п-с може да поиска стр-аница и да му бъде раз-пределен кадъра на по-нископриоритетния п-с и на нископриоритетн-ия п-с може да му се наложи да чака за см-етка на високо приори-тетния п-с. Тук обаче се губи време за въвежда-не на сраница на ниск-оприоритетния п-с-тя трябва отново да се въ-веде. Може тази новов-ъведена страница да не се извежда, докато не се използва поне ведн-ъж като се използва бит за заключване.Когато се кешират таблици ма-шините които нямат от-делно адресно простра-нство за вх-изх. у-ва използват адресното пространство на памет-та и те обикновенно имат допълнителен бит в таблицата на страни-ците, които забранява кеширането на съотве-ната страница.Така при входно-изходна коман-да, апаратурата използ-ва прочетената дума от у-вото,а не кешираното копие.

8.7.6. Размер на стра-ниците

-С намаляване размера на страниците се увели-чава броят на страниц-ите, от тук и размерът на таблицата на стра-ниците. Като се има в предвид, че всеки п-с има своя таблица нееф-ективно се използва оп-еративната памет.

-По големият размер на страниците намалява времето за вх-изх. опер-ации (четене/запис на сран.) по време на изп-ълнение на прогр.

-По-големият размер води до въвеждане на излишна инф., която може и да не потрябва;

-Намаляването на р-ра на стран. позволява по компактно работно м-во от страници, съдър-жащи най-използвани-те обекти.

-по-малката стр. води до намаляване на вътр-ешната фрагментация, която е половината от последната страница;

8.7.7.Единни м-ва на виртуална памет

Виртуалната памет мо-же да бъде използвана по два начина:

ОС с единна виртуална памет-една за всички потребители, образува се с общо логическо ад-ресно просранство.ОС с множествена виртуална памет-създават се отде-лни адресни пространс-тва за заданията на вс-еки потребител. Всеки потребител има възмо-жност за монополно из-ползване на цялата ви-ртуална памет.

8.9.Пример:INTEL80486.Допуска сегментна, странично/сегментна и странична организация

Виртуалният адрес има две съставни-селектор и отместване. Селектор-ът се използва за инде-ксиране на системни дескрипторни таблици. Дескрипторите описват системни обекти. Сегм-ентите на паметта се описват от сегментни дескриптори. Отмества-нето е спрямо на1алото на сегмент със стойност 32 бита. Виртуалната памет в 386/486 изпол-зва 2 таблици LDT (лок-ална таблица на дескр), GDT (глобална табл. на дескр.). Има само една обща за всички програ-ми глобална таблица GDT, описваща всички системни сегменти. Вс-яка програма има собс-твена локална табл.LDT. Достъпът до даден сег-мент се извършва ч/з селектора му, който се зарежда в един от ше-стте сегментни регист-ри. Селекторът има дъ-лжина 16 бита, битове-те-0-1 определят нивото на защита (0-3), бит 2-в коя таблица е описан сегм. и битовете 3-15-индекс на елемент на таблица.

Фиг 8.9 от стр. 188. 

Дескрипторите имат дължина 8 байта. Имат следната структура: ба-зов адрес, граница и сл-едната информация: Бит G-гранулация на сегмента (G=0-байтова, G=1-странична). D-вид процесор (D=0-работи се с 16 битово отместв-ане за 286,D=1-работи се с 32 битово отместв-ане за 386/486), бит AVL-за използване от системни програмисти, бит Р-присъствие на се-гм. в основната памет (Р=1 да, Р=0 не), поле DPL-ниво на привилег-ия, бит S-сегментен (S=1-сегмент на памет-та, S=0-друг обект), по-ле Type-тип на сегмента и защитата, и бит А-до-стъпен. Дескриптор 0 е забранен-той индицира забрана за използване на регистъра.Когато се-лектор се зареди в сегм-ентен регистър, достъп-ът до съответния дескр-иптор се реализира, ка-то най-напред се изби-ра, въз основа на бит2, таблица LDT/GDT. Сел-екторът се копира в ра-ботен р-р и трите млад-ши бита се нулират. Ад-ресът на избраната таб-лица се прибавя към него и се получава указ-ател към дескриптор, който чете от таблицата и се пази в работен р-р.

По-нататък двойката (селектор- отместване) се преобразува във фи-зически адрес.Ако вси-чко е наред, 32 битова-та база се събира с отм-естването, в резултат на което се получава 32 битов линеен адрес.

Фиг 8.10.стр 189.

Полето БАЗА е разделе-но на три части и оси-гурява съвместимост с модел 286, който има база 24 бита. Полето ос-игурява произволен на-чален адрес в 32 битов-ото адресно пространс-тво. Ако не се използва странициране, което се отбелязва с бит в глоба-лен управляващ регист-ър, линейният адрес се разглежда като физиче-ски и може да се чете и пише в паметта. По то-зи начин се реализира чиста сегментация. Ако страницирането е разрешено, линейният адрес се преобразува във физически с изпол-зване на таблиците на страниците. Всяка зад-ача има справочник на страниците, който има 24 елементи и е резид-ентен. Той са адресира с помощта на глобален регистър CR3. Линейн-ият адрес включва три полета: справочник(d), страница(p) и отмества-не (о).

Свързани:

Виртуална памет iconВиртуална памет
Главното и предимство е, че потребителските програми могат да бъдат по големи от основната памет. Виртуалната памет се реализира...
Виртуална памет iconViii. Виртуална памет дискутираните в гл. VII стратегии за управление на паметта имат за цел да държат, с оглед на мултипрограмирането, много процеси в
Но както беше посочено, те изискват цялото адресно пространство на процеса да бъде поместено в основната (оперативната) памет, преди...
Виртуална памет iconПрограма на курс за системни администратори
Процеси. Състояние, планиране, приоритети Странично-сегментна виртуална памет. Апаратна поддръжка
Виртуална памет iconПрограмата да конструира отделни самостоятелни части – сегменти
Виртуална памет. Странична организация на паметта. Реализация и механизми. Стратегия за замяна на страниците
Виртуална памет iconКакво е vct?
На български често казваме „Виртуална класна стая”. Това понятие не е много добро, тъй като се бърка с он-лайн форми на обучение,...
Виртуална памет iconПамет. Видове памет след процесора един от най-важните компоненти на всеки компютър е неговата памет. Паметта на компютъра е неговата работна област, където той временно съхранява всички файлове, които са му необходими, за да работи
Размерите на паметите са драстично намалени, те станаха по-евтини, тъй като материалите, от които се произвеждат, се смениха от вакуумни...
Виртуална памет iconПредставяне на проекта "Виртуална България"
На конференцията имах удовоствието да запозная присъстващите с проекта "Виртуална България"
Виртуална памет iconМагистърска програма по Виртуална култура Росица Илийчева Дикова су философия бал
Специалност философия редовно обучение Магистърска програма по Виртуална култура
Виртуална памет iconIii. Топологии на свързване и особености на мпа с разпр памет. 1
Всеки един процесор притежава освен лок памет и по-голяма по обем разпределена памет, която може да бъде използвана както от него...
Виртуална памет iconВ края на ноември Hewlett-Packard анонсира нова фамилия модулни дискови масиви hp storageWorks msa (Modular Smart Array), която е предназначена за малкия и
Покриват широк спектър от приложения – das (директносвързана дискова памет към един или няколко сървъра), дискова памет за клъстърни...
Поставете бутон на вашия сайт:
Документация


Базата данни е защитена от авторски права ©bgconv.com 2012
прилага по отношение на администрацията
Документация
Дом