Файл: Мельник А. Архітектура комп\'ютера.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.12.2021

Просмотров: 6783

Скачиваний: 22

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

386

Зазвичай число записів (входів) в TLB є невеликим (64-256), наприклад в комп'ютері Pentium III є 64 входи, при розмірі сторінки 4 КБ, що дозволяє отримати швидкий до­ступ до пам'яті ємністю 256 КБ.

Структура TLB, побудованої як частково-асоціативна кеш пам'ять, наведена на рис. 10.29.

Крім номерів програми, віртуальної сторінки та фізичної сторінки слово сторінкової таблиці включає п'ять ознак: РЗ, РВ, РН, РМ, та РД.

Для керування занесення інформації в асоціативні регістри до їх складу вводять до­даткові розряди: розряд зайнятості (РЗ) і розряд використання (РВ).


387

Ознака РЗ (розряд зайнятості) потрібна для реалізації стратегії заміщення вмісту асоціативних регістрів. РЗ встановлюється в 1 при записі інформації в асоціативні регі­стри. РЗ говорить про те, вільний чи зайнятий даний асоціативний регістр.

Так як зазвичай всі асоціативні регістри зайняті інформацією, то для запису нової необхідно звільнити якийсь асоціативний регістр. Звільняється той регістр, інформація в якому не використовувалась Для фіксації звернень до даної віртуальної сторінки ви­користовується ознака РВ (розряд використання), який встановлюється в 1 при звертан­ні до віртуальної сторінки. Якщо всі РЗ = 1, то нова інформація засилається в регістр, в якому РВ = 0. Якщо всі РВ = 1, то вони автоматично скидаються

Ознака РН (розряд наявності) встановлюється в одиницю, якщо віртуальна сторін­ка в даний момент знаходиться в основній пам'яті. В цьому випадку в асоціативному регістрі знаходиться номер фізичної сторінки. Якщо РН = 0, то при спробі звернення до даної віртуальної сторінки операційна система завантажує сторінку з зовнішньої пам'яті до основної. При цьому в асоціативному регістрі наявна інформація про місце розміщення сторінки в зовнішній пам'яті. Завантаження сторінки з зовнішньої пам'яті супроводжується записом до відповідного асоціативного регістра номера фізичної сто­рінки, до якої буде записана віртуальна сторінка

Сторінка в ОП може змінюватись. Тому, якщо вона не змінилася, немає необхідності її переписувати в ЗП, так як там вже є копія. Якщо ж змінилася, потрібно переписати. Для фіксації змін в сторінках ОП вводиться в сторінкову таблицю розряд модифікації РМ, який дозволяє суттєво зекономити час обміну

Ознака прав доступу ОД вказує вид доступу до сторінки: запис, читання чи дозволені або заборонені обидві операції, і призначений для вирішення питань захисту інформації

Потрібно відзначити, що при сторінковій організації пам'яті виникають ті ж пробле­ми з заміщенням сторінок в основній пам'яті, як це було для кеш пам'яті. Зазвичай в ОП немає вільних сторінок і при завантаженні нової інформації якусь сторінку доводиться видаляти з ОП. Необхідний алгоритм визначення сторінки, що підлягає знищенню. Тут використовуються ті ж самі методи заміщення сторінок, що і в кеш пам'яті: LRU - зни­щення сторінки з максимальним простоєм, LFU - знищення сторінки з мінімальною частотою звернення, FIFO - знищення сторінки згідно з чергою поступлення, RAND - зни­щення сторінки випадковим чином При цьому потрібно відзначити, що плата за промах (коли вміст потрібної сторінки відсутній в основній пам'яті) є досить великою (десятки мілі-секунд), оскільки потрібно робити звернення до повільної зовнішньої пам'яті

Важливим питанням сторінкової організації пам'яті є вибір об'єму сторінки. На ко­ристь малого об'єму сторінки говорять такі аргументи:


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

  • зменшується об'єм пересилань.

На користь великого об'єму говорять наступні аргументи:

■ зменшуються затрати на сторінкову таблицю;

■ зменшується час підготовчих операцій в ЗП.
Зазвичай вибирають об'єм сторінки в діапазоні 8КБ - 32КБ

Таким чином використання сторінкової організація пам'яті дає наступні переваги:

■ Віртуальна пам'ять представляється для програміста як пам'ять одного рівня,
що спрощує програмування.


388

Об єм віртуальної пам яті визначається довжиною адресного поля і може набага­то перевищувати ємність основної пам'яті,

  • Виключаються протиріччя, пов'язані з розподілом основної пам'яті між систем­ними і прикладними програмами Немає обмеження на кількість програм.

  • Виключається фрагментація основної пам'яті,

  • При мультипрограмуванні не потрібне послідовне розташування сторінок однієї програми в основній пам'яті,

  • Не потрібно переміщення інформації, як це є при розподілі з допомогою базових регістрів.

  • В основну пам'ять загружаються активні сторінки за потребою, неактивні сто­рінки залишаються в зовнішній пам'яті.

Разом з тим, використання сторінкової організації пам яті вимагає додаткових апа­ратних та програмних засобів, та ускладнює роботу комп'ютера.

10.3.5. Сегментна організація віртуальної пам'яті

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

Принципи сегментної організації пам'яті є наступними:

  • віртуальна пам'ять кожної програми ділиться на частини, що називаються сег­ментами*

  • всередині сегменту адресація байтів є незалежною, починаючи від нуля до яко­гось максимального значення;

  • різні сегменти можуть мати різну довжину;

  • довжина сегмента може змінюватись в процесі роботи;

  • так як кожний сегмент займає незалежний адресний простір, сегменти можуть рости і скорочуватися незалежно один від одного.


Щоб виконати звернення до такої сегментованої, або двовимірної пам'яті, програма повинна видати адресу, яка складається з двох частин: номера сегмента і внутрішньої


Як приклад на рис. 10.30 наведено сегменти пам яті деякої програми.


389

адреси сегмента. Тобто до віртуальної адреси необхідно додати додаткові розряди лівіше номера сторінки, які визначають номер сегмента.

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

Так як з точки зору програміста сегменти є самостійними логічними об'єктами, припус­тимо застосування для них різних видів захисту: дозволяється лише читання, запис і т. п.

Таким чином виникає певна ієрархія в організації програм, яка складається з чоти­рьох ярусів: програма, сегмент, сторінка, слово. Цій ієрархії програм відповідає й ієрар­хія таблиць перетворення віртуальних адрес у фізичні, як це показано на рис. 10.31.

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

Хоча в логічному відношенні сегментна і сторінкова організація пам'яті тісно пов'я­зані між собою та подібні в реалізації, цілі їх застосування різні. Порівняння сегментної і сторінкової організації пам'яті наведено в табл. 10.1.