Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО / конспект_укр.doc
Скачиваний:
43
Добавлен:
03.03.2016
Размер:
634.37 Кб
Скачать

Звільнення і виділення блоків

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

Кожен вид стратегії діє у встановленому для нього діапазоні адресного простору пам'яті:

  • 1,2 і 3-я стратегії діють в межах основної пам’яті.( від 0 до 640 Кbyte пам'яті);

  • 4,5 і 6-а стратегії діють в межах від 640 Кbyte до 1 Мbyte пам'яті (область UMB);

  • 7,8 і 9-а стратегії діють в межах від 0 до 1 Мbyte пам'яті.

Стратегії:

1) діє лише в межах основної пам'яті і виділяє блок пам'яті відповідного розміру починаючи з молодших адрес;

2) діє в тому ж діапазоні, але виділяє найбільш оптимальний блок виходячи з вказаного розміру;

3) виділяє будь-який відповідний за розміром блок що максимально наближається до кінця основної пам’яті;

4,5,6) алгоритми абсолютно ідентичні 1,2 і 3, але діють в діапазоні від кінця основної пам'яті. до 1 Мbyte пам'яті.

7,8,9) алгоритми абсолютно ідентичні 1,2 і 3-у, але на початку здійснюється спроба виділити блок в UMB, і якщо спроба була невдала, то дії повторюються ще раз, але вже в основній пам'яті. Якщо і цьому випадку отримано негативний результат, то видається системне повідомлення про відсутність необхідного обсягу пам'яті. Резервування пам'яті для будь-якої стратегії починається з об'єднання вільних блоків, що стоять, поруч в один блок

Алгоритм першої стратегії.

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

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

DL_NEW_FREE_BLOCK = DL_FREE_BLOCK – DL_IS – 1

Де DL_FREE_BLOCK – довжина знайденого вільного блоку

DL_IS – довжина резервованого блоку

1 – довжина MCB.

Якщо знайдений блок був останнім, то другому блоку необхідно привласнити маркер останнього блоку «Z», інакше маркер «М».

Алгоритм 2-ої стратегії, повторює 1 з корекцією на те, що зі всіх вільних блоків вибирається той, довжина якого ближче до потрібної. Алгоритм 3-ей стратегії повторює 1, але до розгляду береться відповідний вільний блок в самих старших адресах.

Звільнення

Вказується адреса блоку і звільнення зводиться до того, що в MCB в полі власника прописується значення «0».

Тема 5. Організація доступу до пам'яті в захищеному режимі

  • Поняття адресних областей

  • Логічна і фізична адресація

  • Перетворення логічної адреси у фізичний

  • Таблиці глобальних і локальних дескрипторів

  • Розподіл адресного простору в ОС

  • Менеджер віртуальної пам'яті

Організація доступу до пам'яті в захищеному режимі

У реальному режимі максимальний розмір пам'яті обмежений 1 Mbyte.

Починаючи з Мп80386 існує 3 різних адресних області (пам'яті): логічна, лінійна і фізична, і відповідно до цього три типи адрес логічні, фізичні і лінійні.

Логічна адреса складається з 2-х складових:

14 селектор 0

31 зсув 0

Максимальна логічна адреса адресує область до 246 = 64 Tbyte. Така віртуальна область доступна програмістові (214 * 232 = 246 = 64 Tbyte).

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

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

Соседние файлы в папке СПО