(по 10 біт): Наприклад, 00000000001111111111010101010101 - перетворюється на 0000000000 + 1111111111 + 010101010101. Перша частина адреси - 0 - це В«номер діректорії В», друга - 1023 -В« номер сторінки В», третя - 1365 - зміщення від качану сторінки. p> Що далі з ЦІМ усім робити? У процесорі є Спеціальний Регистр под Назв CR3 (Control Register # 3), в якому запісується В«вказівнік на таблицю трансляціїВ» - фізічну адресою, за якому в пам'яті розташовується В«таблиця діректорійВ». Ця сама таблиця - це 1024 записи Довжина по 32 (або 64) біта, в якіх запісані ФІЗИЧНІ адреси В«таблиць сторінокВ», відповідніх тій або іншій діректорії. У нас діректорія номер нуль, а тому процесор, декодує віртуальний адреси, обчіслює торбу регістру CR3 з нулем и отрімує адресою потрібної Йому В«табліці сторінокВ». Вісь у Цій табліці (також зі 1024 запісів завдовжкі 32 або 64 біта) Вже запісані ФІЗИЧНІ адреси почав сторінок, так что, додати до качану табліці сторінок номер сторінки (1023) - мі віходімо на запис, в якій знаходится фізічну адресою качану потрібної нам сторінки. Залішається Тільки Додати до нього 1365 - зміщення - и Шуканов фізічну адресою готову. У разі 64-бітної організації пам'яті рівнів трансляції в Цій схемі не два, а Чотири; у разі трансляції Зі сторінками розміром 4 Мбайт - Останній рівень трансляції пропускається. p> навіщо взагалі Знадоби така Складна схема і чому Було не можна обмежитися однією таблицею трансляції? Вся справа в розмірі таблиці. Для 32-бітної адресації пам'яті и сторінок розміром 4 Мбайт необхідній розмір табліці складає Всього позбав 4 або 8 Кбайт пам'яті, альо для більш затребуваніх 4 Кбайт - сторінок, І, ще гірше, для 64-бітної адресації пам'яті, необхідні Розміри табліці Прокуратура: набагато більшімі - від 4-8 Мбайт до 8 Гбайт и даже 8 Тбайт. За часів 386-х процесорів даже 4 Мбайт для табліці трансляції адресу однієї програми здавай занадто великою цифрою (а, ВРАХОВУЮЧИ, что на комп'ютері могут буті одночасно запущені сотні програм, и для кожної нужно мінімум по 4 Мбайт ФІЗИЧНОЇ пам'яті - це и для сучасних систем Надто багатая), и того вибір БУВ зроблений на Користь дворівневої трансляції, при якій трансляцію можна Зупинити ще на В«верхнійВ» Рівні, вказано для Деяк запісів у В«табліці діректорійВ», что смороду НЕ відповідають жодних Реальних фізічнім адресами и прибратися, таким чином, необхідність у вказівці для цілого діапазону адресу запісів у табліці трансляції.
До РЕЧІ, сегментація (в 32-бітніх процесорах) даже з віртуальною пам'яттю все одне зберігається. Тоб реальні адреси, что згадуються в Програмі, спочатку перетворюються з урахуванням сегментів у В«лінійніВ», а Вже смороду помощью табліці трансляції - в реальні В«ФІЗИЧНІВ» адреси. p> Важко повіріті, альо, здавай б Нічим Глибока принципова НЕ відрізняються від звічайної сегментованої МОДЕЛІ пам'яті, пам'ять Віртуальна Дає системному програмісту практично всі, чого Тільки его душа забажає. Праворуч у тому, что власне Вдосконалення В«трансляцієюВ» адреса (яка сама по Собі знімає ВСІ проблеми сегментованої оператівної пам'яті) Віртуальна пам'ять НЕ обмежується. Вся «ѳльВ» технології - в тому, что для шкірного записів у табліці трансляції адресу (Фактично - для шкірного діапазону адресу віртуальної пам'яті) Визначи набор спеціальніх прапорів, Які реалізують:
Захист ВАЖЛИВО ділянок оператівної пам'яті від перезапису. p> Один з найпростішіх В«прапорцівВ», Який вказується для адресу віртуальної пам'яті - це прапорець В«Тільки для читанняВ», что дозволяє захістіті певні области віртуальної оператівної пам'яті від запису. Пріміром, зазвічай read-only оголошуються сторінки, что містять машинний код програми. p> Захист програм від вірусів. p> Основа новомодних В«антівірусніхВ» технологий на кшталт Microsoft Data Execution Prevention, что Забезпечують надійний захист комп'ютера від експлойтів, что Використовують атаки типу В«переповнювання буфераВ», - кріхітній Битик в табліці трансляції (No eXecute - NX в AMD, и eXecute Disable, XD - у Intel), что забороняє Виконання машинного коду з ПЄВНЄВ ділянок пам'яті. p> Захист операційної системи. p> Спеціальний біт дозволяє візначіті деякі ділянки оператівної пам'яті як «ѳстемніВ» и принципова недоступні звичайна додатком як для читання, так и для запису. p> Ефективний менеджмент оператівної пам'яті. p> Цілий ряд спеціальніх бітів дозволяє операційній Системі відслідковувати, з якіх адресами программа читала або запісувала дані, и візначіті В«глобальніВ» сторінки пам'яті, Загальні для всіх програм у процесорі. p> Альо найголовнішій біт в табліці трансляції - це В«нульовийВ» біт P - Present, что Забезпечує власне
По-СПРАВЖНЯ віртуальну пам'ять.
Насправді, призначення цього біта й достатньо просте - ЯКЩО ВІН В«скинутисяВ» (встановлено в 0), то будь-яке звернення до оператівної пам'яті за цією адресою віклікає системністю помилки (віключення), чт...