Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Безпека.docx
Скачиваний:
164
Добавлен:
31.08.2019
Размер:
6.2 Mб
Скачать

10.1. Завдання апаратного захисту

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

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

За усталеною термінологією [91], до АЗЗЗ долучають засоби не за ознакою їх апаратної реалізації, а за колом завдань, що вони вирішують:

  • підтримка керування пам'яттю;

  • підтримка керування процесами (задачами);

  • підтримка взаємодії між процесами.

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

Слід зауважити, що в цьому контексті у складі АЗЗЗ не розглядають апаратні модулі, що виконують певні функції із захисту інформації, які не підтримує ОС, наприклад апаратні модулі шифрування.

10.2. Підтримка керування пам'яттю

Основними завданнями розподілу пам'яті є такі [92]:

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

  • трансляція адрес, що використовують програми;

  • організація віртуальної пам'яті;

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

10.2.1. Віртуальні адреси

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

Віртуальні адреси дають змогу однозначно адресувати команду або дані у ви­

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

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

Альтернативною моделлю є сегментна модель пам'яті. Адресний простір про­цесу поділяється на окремі частини, які називають сегментами (іноді секціями чи областями). У такому випадку віртуальна адреса задається парою чисел (п, т), де n позначає сегмент, a m — зміщення в ньому.