Глава 8 - Виртуална памет
| Информационни технологии | 2009-12-04 | 103 сваляния |
ГЛАВА 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.Разпределение на кадри. При стартиране-то си всеки процес разп-олага с определено мно-жество страници в пам-етта, Например първата. След това със странично прекъсване се въвеждат необходимите му стран-ици. За да се намали бр-оят на прекъсванията, желателно е на всеки процес да се разпредели някакво количество ка-дри. Минималният брой кадри за процес се опре-деля от архитектурните особености на процесо-ра. Максималния брой кадри за процес е огран-ичен от обема на физич-еската (основната) пам-ет. Най-простото разп-ределение е еквивален-тното, при което
Тагове от реферата: поместени, туална, пълнение, програми, позволява











