загрузка...
загрузка...
На головну

Сегментна організація пам'яті

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

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

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

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

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

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

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

Віртуальна пам'ять «-- попередня | наступна --» Сторінкова організація віртуальної пам'яті
загрузка...
© om.net.ua