Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Сторінкова організація оперативної пам’яті. Віртуальна пам'ять




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

Вся оперативна пам'ять машини також ділиться на частини такого ж розміру, звані фізичними сторінками (або блоками).

Розмір сторінки зазвичай вибирається рівним ступеню двійки: 512, 1024 і так далі, це дозволяє спростити механізм перетворення адрес.

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

Мал. 2.12. Сторінковий розподіл пам'яті

При активізації чергового процесу в спеціальний регістр процесора завантажується адреса таблиці сторінок даного процесу.

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

У даній ситуації може бути використане багато різних критеріїв вибору, найбільш популярні з них наступні:

найдовше сторінка, що не використалася

перша сторінка, що попалася

сторінка, до якої останнім часом було менше всього звернень.

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

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

Розглянемо механізм перетворення віртуальної адреси у фізичний при сторінковій організації пам'яті (малюнок 2.13).

Віртуальна адреса при сторінковому розподілі може бути представлений у вигляді пари (p, s), де p - номер віртуальної сторінки процесу (нумерація сторінок починається з 0), а s - зсув в межах віртуальної сторінки. Враховуючи, що розмір сторінки дорівнює 2 в ступені до, зсув s може бути отримане простим відділенням до молодших розрядів в двійковому записі віртуальної адреси. Старші розряди, що залишилися, є двійковим записом номера сторінки р.

Мал. 2.13. Механізм перетворення віртуальної адреси у фізичний
при сторінковій організації пам'яті

При кожному зверненні до оперативної пам'яті апаратними засобами виконуються наступні дії:

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

з цього запису витягується номер фізичної сторінки

до номера фізичної сторінки приєднується зсув (молодші розряди віртуальної адреси).

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

На продуктивність системи із сторінковою організацією пам'яті впливають тимчасові витрати, пов'язані з обробкою сторінкових переривань і перетворенням віртуальної адреси у фізичний. При часто виникаючих сторінкових перериваннях система може витрачати велику частину часу даремно, на свопінг сторінок. Щоб зменшити частоту сторінкових переривань, слід було б збільшувати розмір сторінки. Крім того, збільшення розміру сторінки зменшує розмір таблиці сторінок, а значить зменшує витрати пам'яті. З іншого боку, якщо сторінка велика, означає велика і фіктивна область в останній віртуальній сторінці кожної програми. В середньому на кожній програмі втрачається половина об'єму сторінки, що в сумі при великій сторінці може скласти істотну величину. Час перетворення віртуальної адреси у фізичний в значній мірі визначається часом доступу до таблиці сторінок. У зв'язку з цим таблицю сторінок прагнуть розміщувати в "швидких" пристроях, що запам'ятовують. Це може бути, наприклад, набір спеціальних регістрів або пам'ять, що використовує для зменшення часу доступу асоціативний пошук і кешування даних.

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


 

 







Дата добавления: 2014-12-06; просмотров: 2365. Нарушение авторских прав; Мы поможем в написании вашей работы!


Рекомендуемые страницы:


Studopedia.info - Студопедия - 2014-2021 год . (0.002 сек.) русская версия | украинская версия