Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



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

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

Кожен сегмент – лінійна послідовність адрес, що починається з 0. Максимальний розмір сегменту визначається розрядністю процесора (при 32-розрядній адресації це 232 байт або 4 Гбайт). Розмір сегменту може мінятися динамічно (наприклад, сегмент стека). У елементі таблиці сегментів окрім фізичної адреси початку сегменту зазвичай міститься і довжина сегменту. Якщо розмір зсуву у віртуальній адресі виходить за межі розміру сегменту, виникає виняткова ситуація.

Логічна адреса – впорядкована пара v=(s,d), номер сегменту і зсув усередині сегменту.

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

Рис. 10.3. Перетворення логічної адреси при сегментній організації пам'яті

Апаратна підтримка сегментів поширена мало (головним чином на процесорах Intel). У більшості ОС сегментація реалізується на рівні, не залежному від апаратури.

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

Рис. 10.4. Спрощена схема формування фізичної адреси при сегментно-сторінковій організації пам'яті

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





Дата публикования: 2014-11-04; Прочитано: 3433 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...