Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольна з ОС_Full.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
197.83 Кб
Скачать
  1. Дескриптор сегменту

У обчислювальній системі, що підтримує односегментную модель, повинен існувати регістр дескриптора сегменту, вміст якого складається з двох полів: початкової (базового) адреси сегменту в реальній пам'яті і довжини сегменту. Коли процес розміщується в пам'яті, для виділеного йому сегменту формується дескриптор, який записується у вектор полягання в контексті процесу. При перемиканні контексту дескриптор сегменту завантажується в апаратний регістр дескриптора сегменту і служить тією "таблицею трансляції", по якій апаратура переводить віртуальні адреси в реальні. Сама трансляція адрес відбувається по простому алгоритму. Оскільки віртуальний адресний простір процесу є лінійною послідовністю адрес, що починається з 0, віртуальна адреса є простим зсувом відносно початку сегменту. Реальна адреса виходить складанням віртуальної адреси з базовою адресою, вибраною з дескриптора сегменту.

  1. Багатосегментна модель

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

  1. Таблиця дескрипторів

Глобальна таблиця дескрипторів - загальна для всіх процесів, і саме вона може використовуватися для доступу до спільно використовуваної пам'яті. Розміщення в загальних віртуальних адресах зручно для системних програм і динамічних бібліотек, до яких відбуваються часті звернення із застосувань: якщо ці компоненти ОС знаходяться в адресному просторі процесу, то звернення до них не вимагають перемикання контексту. Але з іншого боку, це знижує надійність: якщо системні компоненти доступні для застосування, то вони можуть бути їм зіпсовані. Тому така "розкіш" може бути допущена тільки в однопользовательских системах.

  1. Сторінкова модель

Сторінкову організацію пам'яті легко представити як багато сегментну модель з фіксованим розміром сегменту. Такі сегменти називаються сторінками. Вся доступна реальна пам'ять розбивається на сторінкових кадрів (page frame), причому межі кадрів в реальній пам'яті фіксовані. Іншими словами, реальна пам'ять представляється як масив сторінкових кадрів. Віртуальна адреса складається з номера сторінки і зсуву в сторінці, система підтримує таблицю дескрипторів сторінок для кожного процесу. Дескриптор сторінки в основному подібний до дескриптора сегменту, але в нім може бути скорочена розрядність поля base, оскільки в нім зберігається не повна реальна адреса, а тільки номер сторінкового кадру, а необхідність в полі size взагалі відпадає, оскільки розмір сторінок фіксований. Проблема розміщення значно спрощується, оскільки будь-який сторінковий кадр підходить для розміщення будь-якої сторінки, необхідно тільки вести облік вільних кадрів. За рахунок цього сторінкова організація виявляється зручною навіть за відсутності свопінгу, оскільки дозволяє розмістити безперервний віртуальний адресний простір в несуміжних сторінкових кадрах. (Іноді для позначення свопінгу на рівні сторінок застосовують спеціальний термін "paging" - сторінковий обмін.) Зовнішні дірки в сторінковій моделі відсутні, зате з'являються внутрішні дірки за рахунок недовикористаних сторінок. За наявності в системі свопінгу нульове значення бита present викликає переривання-пастку "сторінкову відмову" (page falure) і підкачку сторінки в реальну пам'ять. Для обліку занятых/свободных сторінок підходить техніка бітової карти, але більшість ОС використовують як елементи карти (таблиці сторінкових кадрів) не биті, а куди складніші структури, з яких можуть складатися і багатозв'язкові списки (у тому числі і списки вільних кадрів).

Міркування, які можуть вплинути на вибір розміру наступні:

  • при малих сторінках виходять менші внутрішні дірки;

  • при малих сторінках менше вірогідність сторінкової відмови (оскільки більше сторінок поміщаються в пам'яті);

  • при великих сторінках менші апаратні витрати (оскільки розбиття пам'яті на великі блоки обійдеться дешевшим);

  • при великих сторінках менші заголовні дірки і витрати на пошук і управління сторінками (таблиці мають менший розмір);

  • при великих сторінках вище ефективність обміну із зовнішньою пам'яттю.