озглянути вимоги до системи захисту інформації, загальні підходи до організації захисту пам'яті мультипрограмних ЕОМ, а також організація захисту пам'яті в персональній ЕОМ.

одування лінійних команд.

риклад 1.

Обидва операнди перебувають у регістрах загального призначення: (AX)=a; (CX)=b. Для звертання до операндів використовується пряма регістрова адресація.

Символічний запис команди:

ADD AX,CX

Згідно таблиці машинний вигляд цієї команди має вигляд:

000000dw md reg r/m

За умовою операнди займають повнорозрядні регістри довжиною 1 слово, отже, необхідно встановити w=1.

Тому що обідва операнда розташовуються в регістрах загального призначення, та кожної з них можна закодувати в поле reg. Тому команда може мати два різні вигляди в машинному коді. При цьому, якщо в поле reg закодований номер регістру AX, те біт приймача результату d=1. Якщо в поле reg закодований номер регістру CX, то біт приймача результату d=0.

 

 

або

 

Тут і далі в записі команд b означає двійкова вистава, h - 16-е.

Після виконання команди в AX буде записана сума вмісту регістрів AX і CX, а покажчик команди IP збільшиться на довжину виконаної команди (2 байта) і буде вказувати на перший байт наступної команди.

Тут і далі вистава інформації будемо давати в 16-м виді, якщо інше не застережене особливо.

Якщо перед початком виконання команди (AX)=0C34, (CX)=1020, (IP)=0012, то після її виконання (AX)=1C54, (CX)=1020, (IP)=0014.

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

 

Кодування лінійних команд

риклад 1.

Операнд a перебуває в слові оперативної пам'яті, адреса якого зберігається в регістрі BX, а операнд b - у регістрі AX. У цьому випадку адресація операнда a - регістрова непряма.

Символічний запис команди:

ADD [BX],AX

Машинна вистава:

 

 

Якщо перед виконанням команди (AX)=1234, (BX)=3474, [3474]=D7, [3475]=11, (IP)=0012, то в результаті виконання команди відбудуться наступні зміни: [3474]=0B, [3475]=24, (IP)=0014.

риклад 2.

Операнд a перебуває в AX. Операнд b є елементом масиву, перший елемент якого позначений міткою MAS, а положення операнда b у масиві визначається вмістом регістру BX (мал..1).

 


Мал. 1. Організація доступу до операнду при регістровій відносній адресації

 

Символічний запис команди:

ADD AX,MAS[BX]

При асемблюванні програми мітці ставиться у відповідність зсув відносно початку сегмента. Таким чином, операнд b буде визначатися в цьому випадку за допомогою регістрової відносної адресації (підсумовування значення зсуву й умісту регістру).

Нехай початок масиву MAS має зсув в 3000h байтів від початку сегмента DS. Тоді машинний код команди буде мати вигляд:

 

 

Якщо перед виконанням команди (AX)=1234, (BX)=0074, [3474]=E6, [3475]=64, (IP)=0102, то результатом буде: (AX)=771A, (IP)=0106.

Якщо початок масиву розташовується зі зсувом 70h байтів від початку сегмента DS, то програма Асемблера сформує більш короткий машинний код команди:

 

 

Якщо вихідний стан елементів зберігання збігається з попереднім, за винятком (BX)=3004, то й результат буде таким же, за винятком (IP)=0105.

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

 

Кодування лінійних команд

риклад 1.

Операнд a перебуває в регістрі AL. Операнд b є елементом масиву, початкова адреса якого перебуває в регістрі BX. Положення елемента в масиві визначається регістром DI (мал.1).У цьому випадку звертання до операнду b відбувається за допомогою базово-індексної адресації.

 


Мал.1. Розташування операнда при базово-індексної адресації

 

Символічний запис команди має вигляд:

ADD AL,[BX+DI]

Тому що перший операнд перебуває в регістрі AL, те він має довжину 1 байт. Тому в машинній виставі команди w=0, і вона виглядає в такий спосіб:

 

 

Якщо до початку виконання команди (AX)=25B7, (BX)=3000, (DI)=0474, [3474]=77, (IP)=2519, то після її виконання відбудуться наступні зміни: (AX)=252E, (IP)=251B. Оборотний увага на те, що вміст регістру AL являє собою молодший байт регістру AX. Тому що операція проводиться над байтами, то перенос у старший байт регістру AX блокується.

 

риклад 2.

Операнд a перебуває в оперативній пам'яті по прямій адресі 3474. Адреса операнда b, що також перебуває в оперативній пам'яті, утримується в регістрі SI.

Додавання цих операндів неможливо виконати, використовуючи тільки одну команду, тому що система команд не передбачає додавання операндів формату " пам'ять-пам'ять". Тому одним з можливих варіантів розв'язку цього прикладу може бути:

MOV AX,[SI]; AX=bADD [3474h],AX; a=a+b

Кодування кожної із цих команд проводиться за розглянутими вище правилами.

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

 

Кодування лінійних команд

риклад 1.

Операнд a перебуває в регістрі AH. Операнд b є елементом двовимірного масиву, перший елемент якого позначений міткою MAS. Довжина (у байтах) від початку масиву до початку рядка, у якому розташований операнд, зберігається в регістрі BX, а в регістрі DI зберігається кількість байт від початку поточного рядка до операнда b (мал.1).

 


Мал.1. Розташування операнда при відносній базово-індексної адресації

 

Символічний запис команди:

ADD AH,MAS[BX+DI]

Машинний код команди буде залежати від того, як далеко відносно початку сегмента розташовується початок масиву (див. приклад 6). Якщо цей зсув займає 2 байта й, наприклад, рівно 1D25, то машинний код команди має вигляд:

 

 

Якщо зсув більш короткий і може бути записаний в одному байті, наприклад, 2D, то машинне представлення команди наступне:

 

 

При (AX)=84A3, [(BX)+(DI)+disp8]=3474, [3474]=77, (IP)=0110 результат буде (AX)=FBA3, (IP)=0114 у першому випадку й (IP)=0113 у другому.

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

Кодування команд переходів

риклад 1.

Команда JMP short L здійснює передачу керування команді, позначеної міткою L.

Нехай ця команда переходу записано за адресою 010A. Тоді якщо мітці L відповідає, наприклад, адреса 011A, той зсув у команді переходу буде рівно:

 

011A - (010A+2)=011A-010C=011A+FEF4=0E

 

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

Машинна вистава команди наступна:

 

 

Оборотний увага на те, що в якості поточного значення IP узята адреса команди переходу, збільшений на 2, тому що довжина самої команди переходу рівна 2 байтам.

Якщо команда, позначена міткою L, розташовується за адресою 00C1, то зсув буде рівно:

 

00C1-010C=00C1+FEF4=FFB5

 

Отриманий зсув має довжину 2 байта, що неприпустимо для даного формату команди. Але тому що старший байт являє собою знакове розширення молодшого байта (FFB5h = 11111111 10110101b), той цей зсув можна закодувати в 1 байті, і команда буде мати машинне представлення: EBB5h.

Якщо мітці L відповідає адреса 0224, то необхідна величина зсуву, рівна 0224-010C=0118, не може бути записана в 8-розрядному форматі. Отже, за допомогою команди короткого переходу здійснити перехід на зазначену адресу неможливо.

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

Кодування команд переходів

риклад 1.

Нехай команда JMP near L має машинне представлення E964A6h. Тоді якщо вона розташовано за адресою 310A, те керування буде передано на команду з адресою:

(310A+3)+A664=D771

Якщо команда переходу перебуває за адресою C224, то керування буде передано на команду з адресою 688B (C224+3+A664 з урахуванням ігнорування переносу за межі 16- розрядної сітки).

У першому випадку перехід відбувся убік більших, а в другому - убік менших адрес.

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

Внутрішнсегментну пряму адресацію часто називають відносною адресацією, тому що тут зсув обчислюється щодо поточного значення IP.

 

При внутрішньосегментному непрямому переході вміст IP заміняється значенням 16-розрядного регістру або слова пам'яті, які адресуються полями md і r/m постбайта за допомогою будь-якого режиму адресації, крім безпосереднього. Схема цієї дії представлена на мал.1.

 


Мал. 1. Схема внутрішньо-сегментного непрямого переходу

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

Кодування команд переходів

риклад 1.

Нехай необхідно здійснити передачу керування на команду, позначену міткою L, що й розташовується в іншому програмному сегменті з наступними координатами: (CS)=AA66, (IP)=11C2. Символічний запис такої команди переходу буде наступною:

 

JMP far L

а її машинна вистава:

 

При міжсегментному непрямому переході нові значення IP і CS утримуються не в самій команді, а у двох суміжних словах оперативної пам'яті. Адреса цієї області пам'яті визначається постбайтом команди переходу в будь-якому режимі адресації, крім безпосереднього й прямого регістрового. Схема виконання команди представлена на мал.1.

 


Мал.1. Схема міжсегментного непрямого переходу

 

Відмінність внутрішнсегментного непрямого переходу від міжсегментного непрямого в символічному записі команди визначається типом використовуваного операнда. Якщо операнд визначений як слово, передбачається внутрішнсегментний перехід, а якщо як подвійне слово - міжсегментный.

У сумнівних випадках тип переходу може задаватися явно за допомогою префіксів word ptr і dword ptr відповідно для внутрішнсегментного й міжсегментного переходів.

 

 

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

Кодування команд переходів

риклад 1.

Нехай (BX)=24A4, [24A4]=11, [24A5]=12, [24A6]=13, [24A7]=5A.

Тоді команда JMP dword ptr [BX] має машинне представлення

 

 

і передає керування команді, розташованої в кодовому сегменті (CS)=5A13 зі зсувом (IP)=1211.

 

Команда JMP word ptr [BX] має машинне представлення

і передає керування команді, розташованої в тому ж кодовому сегменті зі зсувом (IP)=1211.

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

риклад 2

Нехай команда JZ L розташовано за адресою 2010h, а мітка L відповідає адресі 2072h. Одержимо машинне представлення цієї команди.

Зсув буде рівно:

 

2072 - (2010+2)=2072+DFEE=0060

Це число зі знаком може бути закодоване в 1 байті, отже, такий перехід можливий. Використовуючи код команди з табл. 1., одержимо машинне представлення цієї команди: 7460 h.

Розглянута команда передасть керування за адресою 2072, якщо до моменту її виконання ZF=1. При стані ознаки ZF регістру прапорів, рівному нулю, керування буде передано наступній команді, тобто за адресою 2012.

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

Кодування команд переходів

риклад 1.

Представити символічний запис команди, що має наступну машинну форму: 81475D398B h.

Переходимо до двійкового прелставлення команди:

 

 

Перший байт, згідно з таблицею машинного представлення команд, відповідає команді додавання з безпосереднім операндом. Постбайт у цьому випадку кодує місце розташування лише одного операнда, яке визначається полями md і r/m: (BX)+disp8, а середнє поле постбайта є розширенням коду операції.

Адресація операнда вимагає вказівки в команді 8-розрядного зсуву. Воно міститься відразу ж за постбайтом. Останні байти команди кодують безпосередній операнд. Значення sw=01 у першому байті команди вказує на те, що безпосередній операнд - 16-розрядний. Враховуючи, що при кодуванні в команді двухбайтовых величин спочатку записується їхній молодший байт, одержимо наступний символічний запис команди:

ADD [BX+5D],8B39h

риклад 2.

Нехай машинна форма вистави команди наступна: 0445h. Тоді її двійковий вид:

 

 

По таблиці машинної вистави команд визначаємо, що це команда спеціального формату, що забезпечує підсумовування акумулятора з безпосереднім операндом.

Тому що w=0, те безпосередній операнд має довжину 1 байт, а в якості акумулятора використовується регістр AL. При цьому команда має такий вигляд: ADD AL,45h

 

 

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

Оцінка впливу структури програми на час її виконання

риклад 1.

ADD ES:[BX],DX

Команда формату " пам'ять-регістр".

Базовий час: 16+EA.

Час обчислення EA (регістрова непряма адресація): 5 тактів.

Позначення "ES:" у символічному записі команди показує, що в процесі формування фізичної адреси операнда відбувається заміна сегментного регістру. Замість використовуваного за замовчуванням при даному режимі адресації сегментного регістру DS використовується регістр ES. Ця операція вимагає 2 тактів синхронізації.

Команда обробляє слово. Якщо слово має непарну адресу, то

Т=16+5+2+2*4=31 (такт)=310 (нс)

Якщо слово має парну адресу, то

Т=16+5+2=23 (такту)=230 (нс)

риклад 2.

MUL [BX]

Множення без знака вмісту AL на операнд, адреса якого заданий у команді. Операнд перебуває в пам'яті.

Базовий час: (76...83)+EA.

Час обчислення EA (регістрова непряма адресація): 5 тактів.

Т=(76...83)+5 = (81...88) тактів = (810...880) нс

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

Оцінка впливу структури програми на час її виконання

риклад 1.

JZ MET ; перейти на MET, якщо "нуль"

Базовий час: 4 такту, якщо немає переходу, і 16 тактів, якщо перехід виконується.

Інших витрат часу немає.

Т=4 такту=40 нс переходу немає.Т=16 тактів=160 нс перехід виконується.

риклад 2.

JMP dword ptr [SI+15] ; міжсегментний непрямий перехід.

Базовий час: 24+EA.

Час обчислення EA (регістрова відносна адресація): 9 тактів.

Є 2 звертання до пам'яті за новими значеннями IP і CS.

Якщо адреса слова парна, то

Т=24+9=33 (такту)=330 (нс).

Якщо адреса слова непарна, то

Т=24+9+2*4=41 (такт)=410 (нс).

Час виконання лінійної ділянки програми дорівнює сумі часу виконання всіх команд цієї ділянки.

Оцінимо час виконання розгалудженої програми на прикладі наступного завдання:

 

 

Нижче представлений текст відповідної програми в припущенні, що A, B і y - змінні довжиною 1 байт ідентифікатори, що мають, MA, MB і MY відповідно. Тут і далі вважаємося, що використовувані адреси в сегменті даних - парні. Поруч із кожною командою зазначена кількість тактів синхронізації, необхідне для її виконання (ідентифікатори відповідають прямому режиму адресації):

 

MOV BL,5 ; 4 MOV AL,MA ; 10 CMP AL,MB ; 15 JG OUT ; 4/16 INC BL ; 3OUT: MOV MY,BL ; 15

Таким чином, якщо A>B, те програма виконується за 60 тактів, а якщо ні, то - за 51 такт.

 

15. Розглянути особливості функціонування персонального комп'ютера при автоматичному виконанні команди. Розглядаються особливості 32-розрядного мікропроцесора з архітектурою IA-32.

 

Структура такого комп'ютера наведена на мал.1. У складі ЕОМ крім традиційних пристроїв комп'ютера із класичною архітектурою (оперативний запам'ятовувальний пристрій, арифметико-логічний пристрій і основний схеми пристрою керування) виділимо наступні блоки:

  • регістрова пам'ять;
  • блок формування адреси операнда (БФАО);
  • двадцятирозрядні суматори для одержання фізичних адрес даних (ФАД) і фізичних адрес команд (ФАК).


Мал.1. Структурна схема базової моделі персональної ЕОМ

На входи регістрової пам'яті із БФАО надходять номера регістрів, до яких проводиться обіг. На входи обираних регістрів надходять із АЛП результати виконання операції й значення сегментних регістрів, установлюваних операційною системою ЕОМ. У регістрах зберігаються складові ефективних адрес даних, вихідні й проміжні дані, що брати участь у виконанні операції, старші 16 розрядів базових адрес сегментів.

 

На блок формування адреси операнда надходять:

  • сигнали від тактового генератора мікропроцесора;
  • коди полів другого байта виконуваної команди, що перебуває в РК; ці коди визначають режими адресації першого (поля md і r/m) і другого (поле reg) операндов;
  • коди двох молодших розрядів першого байта команди (d і w), які визначають, відповідно, операнд, на місце якого записується результат операції, і розрядність операндів.

БФАО виробляє наступні вихідні сигнали:

  • коди номера обираних регістрів;
  • сигнали зчитування кодів з обраних регістрів;
  • сигнали зчитування зсувів (disp L і disp H);
  • сигнали зчитування безпосередніх операндів (data L і data H).

 

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

 

 

16. Розглянути особливості функціонування персонального комп'ютера при автоматичному виконанні команди. Розглядаються особливості 32-розрядного мікропроцесора з архітектурою IA-32.

Архітектура 32-розрядного мікропроцесора

В 1985 році фірма Intel випустила 32-розрядний мікропроцесор, що став родоначальником сімейства IA-32. Розвиток цього сімейства пройшов ряд етапів, серед яких можна виділити наступні: реалізація блоку обробки чисел із плаваючої коми безпосередньо на кристалі МП (мікропроцесор I486), уведення Mmx-Технології обробки даних з фіксованою крапкою за принципом SIMD - single instruction multi data (один потік команд - безліч потоків даних) у мікропроцесорі Pentium MMX і розвиток цієї технології на числа із плаваючої коми (SSE - streaming SIMD Extention), що з'явилося вперше в МП Pentium III.

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

Архітектура 32-розрядного мікропроцесора (мал.1)суттєво відрізняється від архітектури 16-розрядного. Деякі із цих відмінностей чисто кількісні, інші носять принциповий характер.

 

Мал.1. Структура 32-розрядного мікропроцесора

 

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

Регістри блоку обробки чисел з фіксованою крапкою стали 32-розрядними. До кожного з них можна звертатися як до одному подвійному слову (32 розряду). До молодших 16 розрядів цих регістрів можна звертатися так само, як і в 16-розрядному мікропроцесорі.

У блоці сегментних регістрів відбулися як кількісні, так і якісні зміни. До використовуваних у реальному режимі чотирьом регістрам CS, DS, SS і ES додані ще два: FS і GS. Хоча розрядність регістрів цього блоку залишилася колишньою (кожний по 16 біт), у формуванні фізичної адреси оперативної пам'яті вони використовуються по-іншому.

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

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

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

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

 

 

озглянути основні поняття мультипрограмного режиму роботи ЕОМ, апаратні й програмні засоби, що забезпечують роботу ЕОМ у цьому режимі, показники, що характеризують мультипрограмний режим роботи, і їх залежність від коефіцієнта мультипрограмування.

риси мультипрограмного режиму:

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

Мультипрограмування призначене для підвищення пропускної здатності обчислювальної системи шляхом більш рівномірного й повного завантаження всього її встаткування, у першу чергу процесора. При цьому швидкість роботи самого процесора й номінальна продуктивність ЕОМ не залежать від мультипрограмування.

Мультипрограмний режим має в ЕОМ апаратну й програмну підтримку:

· апаратна:

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

· програмна:

    • мультизадачна операційна система (ОС);
    • системні програми, що управляють роботою пристроїв уведення-виводу й спеціалізованих засобів обчислювальної системи.

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

Продуктивність мультипрограмної ЕОМ оцінюється кількістю завдань, виконаних в одиницю часу (пропускна здатність) і часом виконання кожної програми Тi.

При аналізі роботи ЕОМ важливо визначити ступінь використання її ресурсів. Для цього широко застосовуються наступні показники:

  • kq - коефіцієнт завантаження q-го пристрою;
  • kq=Tq/T, де Tq - час зайнятості пристрою q за загальний час T роботи ЕОМ;
  • Lq=lqi*ti/T - середня довжина черги запитів до пристрою q, де Lqi - довжина черги до пристрою q на інтервалі часу ti і ti=T

Нехай робота деякого пристрою q характеризується діаграмою, наведеної на мал. 1.

 

 

Мал. 1. Оцінка основних показників використання апаратних ресурсів

 

18. Розглянути вимоги до системи захисту інформації, загальні підходи до організації захисту пам'яті мультипрограмних ЕОМ, а також організація захисту пам'яті в персональній ЕОМ.

 

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

 

 

Мал. 1. Захист пам'яті методом граничних регістрів

 

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

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

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

 

озглянути вимоги до системи захисту інформації, загальні підходи до організації захисту пам'яті мультипрограмних ЕОМ, а також організація захисту пам'яті в персональній ЕОМ.

 

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

Пам'ять у логічному відношенні ділиться на однакові блоки, наприклад, сторінки.

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

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

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

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

Функціонування цього механізму захисту пам'яті пояснюється схемою на мал.1.

 


Мал.1. Захист пам'яті методом ключів захисту

 

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