
- •Операційні системи та мережі ЕОМ
- •Розділювані сторінки
- •Приклад: Розділювані сторінки
- •Сегментна організація пам’яті (segmentation)
- •Програма з точки зору користувача
- •Архитектура сегментної организації пам’яті
- •Архітектура сегментної організації (продолження)
- •Архітектура сегментної організації (продолження)
- •Апаратна підтримка сегментного розподілення пам’яті
- •Приклад сегментної організації пам’яті
- •Спільне використання сегментів
- •Сегментно-сторінкова організація пам’яті – MULTICS; “Эльбрус”
- •Схема трансляції адрес у MULTICS
- •Сегментно-сторінкова організація пам’яті для Intel 386
- •Трансляція адрес в Intel 386

Операційні системи та мережі ЕОМ
Operating Systems
and Networking
Лекція 17

Розділювані сторінки
Розділюваний код
Єдина копія незмінного (реентерабельного - reentrant) коду, спільно використовуваного кількома процесами - текстові редактори, компілятори, графічні середовища і ін.
Розділюваний код також повинен розміщуватись по одним и тим же відносним адресам в логічних адресних прострах всіх процесів .
Локальний код и дані
Кожен процес зберігає окрему копію коду і даних
Сторінки з локальним кодом і даними можуть бути розміщені у будь-якому місті логічного адресного простору.
(C) В.О. Сафонов, 2 |
2 |
007 |
|

Приклад: Розділювані сторінки
(C) В.О. Сафонов, 2 |
3 |
007 |
|

Сегментна організація пам’яті (segmentation)
Схема розділення пам’яті, що відповідає користувацькій трактовці розділення пам’яті.
Програма – набір сегментів. Сегмент – це логічна одиниця, така, як, наприклад:
основна програма, процедура, функція, метод, об’єкт,
локальні змінні; глобальні змінні, загальний блок (COMMON blocks – Fortran), стек таблиця символів; масиви
(C) В.О. Сафонов, 2 |
4 |
007 |
|

Програма з точки зору користувача
5
007

Архитектура сегментної организації пам’яті
Логична адреса ~ пара: <segment-number, offset>,
Таблиця сегментів – служить для відображення логічних адрес у фізичні; кожен її элемент містить:
base – початкова адреса сегменту в оперативній (физической) пам’яті.
limit – довжина сегмента.
Базовий регістр таблиці сегментів - segment-table base register (STBR) містить адресу таблиці сегментів в пам’яті.
Регістр довжини таблиці сегментів - segment-table length register (STLR) містить число сегментів, використовуване програмою;
номер сегмента s корректний, якщо s < STLR.
(C) В.О. Сафонов, 2 |
6 |
007 |
|

Архітектура сегментної організації (продолження)
Переміщення (Relocation).
динамічне
с допомогою таблиці сегментів.
Спільний доступ (Sharing).
Разділювані сегменти
Один и той же номер сегменту
Стратегії розподілення пам’яті.
first fit / best fit
Зовнішня фрагментація
(C) В.О. Сафонов, 2 |
7 |
007 |
|

Архітектура сегментної організації (продолження)
Захист. С кожним елементом таблиці сегментів пов’язується:
validation bit = 0 невірний сегмент
read/write/execute - повноваження
Біти захисту пов’язуються з сегментами; спільний доступ до коду здійснюється на рівні сегментів.
Оскільки сегменти відрізняються по довжині, розподілення пам’яті у вигляді сегментів – це спільна задача динамічного розподілення пам’яті.
Приклад сегментної організації наведений на діаграмі на наступних слайдах
(C) В.О. Сафонов, 2 |
8 |
007 |
|

Апаратна підтримка сегментного розподілення пам’яті
9
007

Приклад сегментної організації пам’яті
10
007