logo
AOM / Мельник А

10.3.4.2. Реалізація сторінкової організації пам'яті

Відповідно до наведених вище правил сторінкової організації пам'яті спочатку по­трібно розділити віртуальну та фізичну пам'ять на сторінки рівного об'єму, присвоїти цим сторінкам номери, та встановити відповідність між цими сторінками, як це для прикладу показано на рис. 10.19, де об'єм сторінки вибрано рівним 4КБ, а відповідні віртуальним сторінкам А, В, С, D фізичні сторінки розміщені як в основній, так і в зо­внішній пам'яті. При цьому відразу необхідно зауважити, що довільній віртуальній сто­рінці може відповідати довільна фізична сторінка, тобто відповідність між сторінками є повністю асоціативною.

Нехай віртуальна пам'ять має ємність V=2V слів, та поділена на 2к віртуальних сторі­нок, кожна з яких має об'єм 2s слів, тобто розрядність віртуальної адреси v = k + s, де k - адреса (номер) віртуальної сторінки, s - номер слова в сторінці. Тоді формат вірту­альної адреси буде мати вид, представлений на рис. 10.20.

Аналогічно, нехай основна пам'ять має ємність М=2т слів, та поділена на 2і віртуаль­них сторінок, кожна з яких має об'єм 2s слів, тобто розрядність адреси основної пам'яті m = 1 + s, де 1 - адреса (номер) сторінки основної пам'яті, s - номер слова в сторінці. Тоді формат адреси основної пам'яті буде мати вид, представлений на рис. 10.21.

382

Подібним чином, нехай зовнішня пам'ять має ємність Е=2е слів, та поділена на 2Р віртуальних сторінок, кожна з яких має об'єм 2sслів, тобто розрядність адреси осно­вної пам'яті e = р + s,де р - адреса (номер) сторінки зовнішньої пам'яті, s- номер слова в сторінці. Тоді формат адреси зовнішньої пам'яті буде мати вид, представлений на рис. 10.22.

Порядок перетворення адрес (номерів) віртуальних сторінок у фізичні задається у вигляді сторінкової таблиці, що вказує відповідність віртуальних і фізичних сторінок. Сторінкова таблиця формується, і при необхідності змінюється, операційною системою.

Процедура звернення до пам'яті така: номер віртуальної сторінки вибирається з вір­туальної адреси і використовується як вхід в сторінкову таблицю, яка вказує номер фі­зичної сторінки (рис. 10.23).

Слово сторінкової таблиці складається з трьох основних полів (про допоміжні поля буде сказано пізніше):

■ перше поле, яке займає один розряд, вказує тип пам'яті. Коли в цьому полі запи­ сано 0, це говорить про те, що сторінка відсутня в основній пам'яті. Коли записано 1 - це говорить про те, що сторінка наявна в основній пам'яті. Цей розряд зазвичай називають розрядом наявності (РН, або validbitV).

■ адреса сторінки в основній пам'яті (коли РН = 1). Якщо сторінка знаходиться в зовнішній пам'яті - це поле ігнорується.

■ адреса сторінки в зовнішній пам'яті (коли РН = 0). За цією адресою вибирають вміст сторінки із зовнішньої пам'яті та загружають до основної пам'яті. Крім того, ро­ биться відповідний запис в сторінковій таблиці, а після використання ця сторінка буде повернута назад в зовнішню пам'ять.

383

Перетворення віртуальної адреси у фізичну виконується так, як показано на рис. 10.24. Тобто номер віртуальної сторінки за допомогою сторінкової таблиці заміню­ється на номер фізичної сторінки, а номер слова в межах сторінки залишається без змін, причому залежно від значення розряду наявності (РН) формується або адреса основної пам'яті, або адреса зовнішньої пам'яті.


Перетворення віртуальної адреси у фізичну тут здійснюється відповідно до рис. 10.26.


Вище було розглянуто питання розподілу пам'яті, коли виконується лише одна про­грама. Насправді сучасні комп'ютери є багатопрограмними. В цьому випадку при сто­рінковій організації пам'яті кожна програма має свою віртуальну пам'ять з адресацією від нуля і до максимальної адреси, яка допускається розрядною сіткою. Так як написання різних програм проводиться незалежно одна від одної, вони можуть виконуватись в од­них і тих самих віртуальних адресах, які повинні належати до різних фізичних сторінок. Отже, сторінкова таблиця повинна враховувати також належність віртуальної сторінки різним програмам. Тобто номер фізичної сторінки є функцією двох змінних - номера віртуальної сторінки, та номера програми, як це показано на рис. 10.25. Іншими слова­ми, для кожної програми має бути своя сторінкова таблиця.

384