logo
AOM / Мельник А

10.3.3. Віртуальна пам'ять

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

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

За своєю суттю віртуалізація пам'яті - це спосіб реалізації ієрархічної організації пам'яті на рівні взаємодії основної та зовнішньої пам'яті.

Віртуальна організація пам'яті дозволяє здійснювати керування пам'яттю, коли ви­конується паралельно багато програм, з забезпеченням захисту даних та наданням в розпорядження кожної програми всього адресного простору комп'ютера.

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

Розглянемо приклад. Нехай процесор посилає до основної пам'яті віртуальну адресу 520 004 096, причому ємність основної пам'яті рівна 512МБ, а ємність зовнішньої пам'яті рівна 80 ГБ (рис. 10.18).

В комп'ютерах без застосування віртуальної пам'яті використовується пряма адре­сація. Тому звертання за вказаною адресою викликало б програмне переривання з таким повідомленням: "Адресована неіснуюча область пам'яті", оскільки вказана адреса вихо­дить за межі основної пам'яті. В комп'ютерах з віртуальною пам'яттю виконується така послідовність кроків:

380