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

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

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

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

Добавлен: 24.12.2021

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

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

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

390

Таблиця 10.1

п/п

Характеристика

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

Сегментна організація пам'яті

1.

Чи повинен програміст знати, який вид організації пам'яті використовується?

ні

так

2.

Скільки є лінійних адресних просторів?

1

багато

3.

Чи може адресний простір перевищувати ємність пам'яті?

так

так

4.

Чи можуть бути розпізнані та окремо захищені процедури і дані?

ні

так

5.

Чи можна розміщувати таблиці змінного об'єму?

ні

так

6.

Чи можливе спільне застосування процедур декількома користувачами?

ні

так

7.

Для чого була розроблена дана організація пам'яті?

Для отримання великого адресного простору без необ­хідності збільшен­ня фізичної пам'яті

Для отримання можливості розміщувати програми і дані в логічно незв'язаних адресних просторах і для полегшення су­місного використання і захисту інформації

Формат віртуальної адреси та процес її перетворення в фізичну адресу при викорис­танні сегментної та сторінкової організації пам'яті ілюструє рис. 10.32.

Як видно з рисунка, для виконання перетворення необхідно два додаткових звернен­ня до пам'яті. Для скорочення кількості звернень для побудови сегментної таблиці може бути застосована, як і при сторінковій організації пам'яті, асоціативна пам'ять.


391

10.4. Захист пам'яті від несанкціонованих звернень

10.4.1. Задачі захисту пам'яті

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

Щоб перешкодити руйнуванню одних програм іншими, досить захистити область пам'яті даної програми від спроб запису в неї з боку інших програм (захист від запису). У ряді випадків необхідно мати можливість захисту і від читання з боку інших програм, наприклад при обмеженнях на доступ до системної інформації.

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

10.4.2. Захист пам'яті за допомогою регістра захисту


Коли розряд захисту рівний 1, то запис до пам'яті заборонено. Може бути декілька розрядів, які вказують режими роботи.


Цей спосіб захисту зазвичай використовують при відлагодженні нових програм па­ралельно з функціонуванням інших програм. Він передбачає захист окремих комірок або блоків пам'яті (рис. 10.33).


392

Реалізувати цей спосіб можна також шляхом виділення в кожній комірці пам'яті спе­ціального розряду захисту і під'єднання його до пристрою керування записом в пам'ять. Встановлення цього розряду в 1 блокує запис в дану комірку. Подібний спосіб викорис­товувався в обчислювальних машинах попередніх поколінь. Зокрема він був застосова­ний в системі Atlas.

10.4.3. Захист пам'яті за граничними адресами

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

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

Як вже було вказано, значення граничних адрес встановлюється операційною систе­мою. Цей спосіб вимагає займання комірок пам'яті підряд. Застосований в системі Stretch і ІВМ7090.

10.4.4. Захист пам'яті за значеннями ключів

Метод дозволяє організувати захист несуміжних областей пам'яті. Пам'ять умовно ділиться на блоки однакового розміру. Кожному блоку ставиться у відповідність деякий код, який називають ключем захисту пам'яті. Кожній програмі, у свою чергу, присво­юють код захисту програми. Умовою доступу програми до конкретного блоку пам'яті служить збіг ключів захисту пам'яті і програми, або рівність одного з цих ключів нулю. Нульове значення ключа захисту програми надає доступ до всього адресного простору і використовується лише програмами операційної системи. Розподілом ключів захисту програми відає операційна система. Ключ захисту програми зазвичай представлений у


393

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

Описаний спосіб є більш гнучким порівняно з попереднім, так як дозволяє зверта­тися до областей пам'яті, розміщених не підряд. Він був застосований в системі IBM 360. Схема захисту нам'яті за описаним способом в системі IBM 360 наведена на рис. 10.35.

В цій системі пам'ять складається з блоків. Кожний блок має код - ключ захисту пам'яті (КЗП). Кожна програма теж має код - ключ програми (КП). Ключі захисту пам'я­ті зберігаються в пам'яті ключів захисту (ПКЗ). Крім того, є іще тригер режиму захисту (ТгРЗ), в якому зберігається розряд режиму захисту (РРЗ). Доступ дозволений, якщо КЗП = КП. Коли КЗП = КП, а РРЗ = 0, то дозволено лише зчитування. Коли ж КЗП = КП, а РРЗ = і, то доступ до пам'яті заборонений. Об'єм блоку рівний 2048 байт. Одночасно обробляється 16 програм і, відповідно, використовується 16 варіантів КЗП і КП, тобто коди є 4-розрядними. КП вказується в спеціальному полі слова стану програми (ССП) або каналу (ССК). Коди КП і КЗП встановлює операційна система.

10.4.5. Кільцева схема захисту пам'яті

Захист адресного простору операційної системи від несанкціонованого вторгнення з боку призначених для користувача програм зазвичай організовують шляхом надання системного і призначеного для користувача рівнів привілеїв. Таку структуру прийня­то називати кільцевою системою захисту. На рис. 10.36 ця система зображена у вигляді концентричних кіл, де призначений для користувача режим представлений зовнішнім кільцем, а системний - внутрішнім колом. У системному режимі програмі доступні всі


394

ресурси комп'ютера, а можливості призначеного для користувача режиму істотно обме­жені. Перемикання з призначеного для користувача режиму в системний здійснюється спеціальною командою. Вперше описаний підхід був застосований в системі MULTICS на комп'ютері GE 645, де крім ключів захисту використовувалась кільцева схема захисту з 32 рів­нями привілеїв. У більшості сучасних комп'ютерів число рівнів привілеїв (кілець захисту) невелике, зокрема в процесорах фірми Intel передбачено чотири рівні привілеїв.

В ядрі операційної системи знаходяться програми ініціалізації комп'ютера та керу­вання доступом до пам'яті. Сегменти в внутрішніх кільцях більш захищені, ніж в зо­внішніх. Рівні захисту привілеїв задаються двома бітами у відповідних регістрах.

10.5. Короткий зміст розділу

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

  • чим менший час доступу до пам'яті, тим менша її ємність та вища вартість збері­гання в ній одного біта інформації;

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

  • існує значна різниця між продуктивністю процесора і основної пам'яті, а також між продуктивністю основної та зовнішньої пам'яті;

  • комп'ютерні програми володіють властивістю локальності за зверненням до пам'яті.

Ці властивості є підґрунтям доцільності використання при побудові системи пам'яті підходу, відомого як принцип ієрархічної організації пам'яті.

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