У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


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

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

4.3. Сегментний розподіл

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

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

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

Віртуальний адресний

простір процесу А Таблиця сегментів

процесу А

0

1

2

3 | Вивантажений

Вивантажений

Розділений

сегмент

Віртуальний адресний

простір процесу В Таблиця сегментів

процесу В

0

1 | Вивантажений

2

Рис. 24. Розподіл пам'яті сегментами

Система із сегментною організацією функціонує аналогічно системі зі сторінковою організацією: час від часу відбуваються переривання, зв'язані з відсутністю потрібних сегментів у пам'яті, при необхідності звільнення пам'яті деякі сегменти вивантажуються, при кожному звертанні до ОП виконується перетворення ВА у фізичну. Крім того, при звертанні до пам'яті перевіряється, чи дозволений доступ необхідного типу до даного сегмента.

ВА при сегментній організації пам'яті може бути представлений парою (g, s), де g - номер сегмента, а s - зсув у сегменті. Фізична адреса виходить шляхом додавання початкової фізичної адреси сегмента, знайденого в таблиці сегментів по номері g, і зсуву s.

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

4.4. Сторінково-сегментний розподіл

Як видно з назви, даний метод являє собою комбінацію сторінкового і сегментного розподілу пам'яті і, внаслідок цього, сполучить у собі достоїнства обох підходів. Віртуальний простір процесу поділяється на сегменти, а кожен сегмент у свою чергу поділяється на віртуальні сторінки, що нумеруються в межах сегмента. ОП поділяється на фізичні сторінки. Завантаження процесу виконується ОС посторінково, при цьому частина сторінок розміщається в ОП, а частина на диску. Для кожного сегмента створюється своя таблиця сторінок, структура якої цілком збігається зі структурою таблиці сторінок, використовуваної при сторінковому розподілі. Для кожного процесу створюється таблиця сегментів, у якій вказуються адреси таблиць сторінок для всіх сегментів даного процесу. Адреса таблиці сегментів завантажується в спеціальний регістр процесора, коли активізується відповідний процес. На рис. 25 показана схема перетворення ВА у фізичну для даного методу.

Віртуальний адрес (g , p , S)

Таблиці сегментів

 

Таблиця сторінок

сегменту g

 

Фізичний адрес

Рис. 25. Схема перетворення віртуальної адреси у фізичну для

сегментно-сторінкової організації пам'яті

5. Управління віртуальною пам’яттю

5.1. Організація ВП

ВП відрізняється від звичайної ОП тим, що якісь її рідко використовувані фрагменти можуть знаходитися на диску і довантажуватися в реальну ОП у міру необхідності. Така організація пам'яті дозволяє зняти обмеження, що накладається обсягом фізичної пам'яті, установленої на ЕОМ. Для реалізації ВП використовують, наприклад, динамічну переадресацію. Сегментом у термінах ВП називається область пам'яті з 2L сторінок. Спочатку по номеру в таблиці сегментів відшукується сегмент. Таблиця сегментів містить початкову адресу таблиці сторінок. Друга частина адресу використовується для звертання в цю таблицю, і по ній знаходиться фізичний адрес даної сторінки. Результати пошуку по таблицях запам'ятовуються у швидкодіючому асоціативному ЗП, названому TLB. Найбільш часто вживані адреси відкладаються в TLB і тому 98-99% звертань до пам'яті йдуть без перегляду таблиць.

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

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


Сторінки: 1 2 3 4 5 6 7 8 9 10 11