Сторінкова схема організації віртуальної пам’яті.
Використовується в ОС Linux, OS/2, Windows.
При сторінковій схемі всі фрагменти задачі мають однаковий розмір і довжину. Довжина, як правило кратна ступеню двійки, тому операція додавання заміняється операцією конкатенації (з’єднуються два сегменти або дві сторінки).
Однакові частини програми називаються сторінками і тому вся пам’ять яка необхідна програмі розбивається на віртуальні сторінки. Частина з цих віртуальних сторінок розміщується в пам’яті, а частина – на зовнішніх носіях інформації.
Розбиття всієї оперативної пам’яті на сторінки приводить до того, що замість фактично одномірного адресного простору ми можемо користуватись двомірним. У цьому випадку перша координата – це номер сторінки, друга – зміщення в середині сторінки.
З метою відображення віртуальної адреси на фізичну пам’ять для кожної задачі необхідно мати спеціальну таблицю сторінок. Так само, як і при сегментній схемі для опису сторінок використовують дескриптор, у якому нема поля довжини сторінки. По номеру віртуальної сторінки в таблиці дескрипторів поточної задачі знаходиться відповідний елемент, якщо відповідний біт встановлений то ця сторінка знаходиться у фізичній пам’яті, в іншому випадку сторінка знаходиться на зовнішньому носію інформації.
Таким чином здійснюється трансляція віртуальної адреси на фізичній пам’яті, що показано на рис. 6.2.
Рис. 6.2. Сторінкова схема організації віртуальної пам’яті.
Механізм захисту сторінкової пам’яті базується на контролі доступу до кожної сторінки, при цьому рівні доступу можуть бути наприклад, тільки для читання і запису, виконання. Кожна сторінка в таблиці дескрипторів визначається спеціальним кодом доступу, і при обчисленні фізичної адреси здійснюється порівняння необхідного доступу з можливим. Якщо ці коди доступу не співпадають, то здійснюється переривання виконання програми.
Якщо об’єм фізичної пам’яті невеликий і сторінки не вдається розподілити в основній пам’яті, то виникає ситуація, коли завантаження чергової сторінки викликає переміщення в зовнішню пам’ять тієї сторінки, яка є активною в даному періоді. В цьому випадку необхідно збільшити об’єм доступної пам’яті. Зменшити кількість паралельно виконуваних процесів або використати іншу дисципліну.
В більшості сучасних ОС, наприклад OS/2 використовується дисципліна LRU, в Windows NT дисципліна заміщення FIFO. Так само як у випадку сегментного способу сторінковий механізм вимагає спеціальних апаратних засобів, наприклад кешування дескрипторів сторінок, що значно збільшує продуктивність обчислювальної системи в цілому.
У сучасних мікропроцесорах (486 і інші) використовується механізм асоціативного кешу, який дозволяє кешувати 32 дескриптори сторінок, при чому розмір сторінки містить 4 Кб, розмір максимально швидкого звернення до пам’яті дорівнює відповідно 128 Кб.
Основною перевагою сторінкової схеми організації віртуальної пам’яті є мінімальна фрагментація пам’яті, так як на кожну задачу може відводитись максимально одна незаповнена сторінка в пам’яті.
Є два недоліки:
· потребує значних витрат на розміщення таблиці сторінок в пам’яті, ці сторінки додатково потрібно обробляти, на що витрачається процесорний час;
· виконувані програми, як правило розділяють на сторінки випадковим чином, без врахування логічного зв’язку між частинами коду програми. Це приводить до того, що міжсторінкові переходи між частинами програми відбуваються значно частіше ніж у випадку сегментної схеми.
Дата добавления: 2016-07-27; просмотров: 1730;