Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


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


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






Захист адресного простору задач.

7. Механізм шлюзів для передачі керування на сегменти коду з іншими рівнями привілеїв.

1. Реальний і захищений режими роботи процесора.

Широко відомо, що першим мікропроцесором, на базі якого була створена IBM РС, був Intel 8088. Цей мікропроцесор відрізнявся від першого 16-розрядного мікропроцесора фірми Intel — 8086 — насамперед тим, що в нього була 8-бітова шина даних, а не 16-бітова (як у 8086). Обидва ці мікропроцесори призначалися для створення обчислювальних пристроїв, які б працювали в однозадачному режимі, тобто спеціальних апаратних засобів для підтримки надійних і ефективних мультипрограмних ОС у них не було. Однак на той час, коли розробники усвідомили необхідність включення в мікропроцесор спеціальної апаратної підтримки для мультипрограмних обчислень, вже було створено дуже багато програмних продуктів. Тому для сумісності з першими комп'ютерами в наступних версіях мікропроцесорів була реалізована можливість використовувати їх у двох режимах — реальному (real mode — так назвали режим роботи перших 16-бітових мікропроцесорів) і захищеному (protect mode – означає, що рівнобіжні обчислення можуть бути захищені апаратно-програмними механізмами).

Докладно розглядати архітектуру перших 16-бітових мікропроцесорів i8086/i8088 ми не будемо, оскільки цей матеріал повинен вивчатися в попередніх дисциплінах навчального плану. Однак нагадаємо, що в цих мікропроцесорах (а виходить, і в інших мікропроцесорах сімейства і80х86 при їх роботі у реальному режимі) звертання до пам'яті з можливим адресним простором у 1 Мбайт здійснюється за допомогою механізму сегментної адресації (мал. 3.1). Цей механізм був використаний для збільшення кількості розрядів, що беруть участь у вказівці адреси комірки пам'яті, з якою у даний момент здійснюється робота, з 16 до 20 і тим самим збільшення обсягу пам'яті.

Конкретизуємо задачу й обмежимося розглядом визначення адреси команди. Для адресації операндів використовується аналогічний механізм, тільки беруть участь у цьому випадку інші сегментні регістри. Нагадаємо, що для визначення фізичної адреси команди вміст сегментного регістра СS (code segment) перемножується на 16 за рахунок додавання зправа (до молодших бітів) чотирьох нулів, після чого до отриманого значення додається вміст покажчика команд (регістр ІР, instruction pointer). Виходить двадцатибітівое значення, що і дозволяє вказати будь-який байт із 220. Насправді, оскільки відбувається саме додавання і кожен з доданків може мати значення в інтервалі від нуля до 216-1 = 65535 – 64К, ми можемо вказати адресу початку сегмента, рівний FFFFFFFF00Н, і до нього додати зсув FFFFFFFFН. У цьому випадку ми одержимо переповнення розрядної сітки, але для сучасних 32-бітових процесорів (і для вже забутого i80286) мається можливість вказати перші 64Кбайт вище першого мегабайта.

Мал. 3.1 Схема визначення фізичної адреси для процесора 8086.

У захищеному режимі роботи визначення фізичної адреси здійснюється зовсім інакше. Насамперед використовується сегментний механізм для організації віртуальної пам'яті. При цьому адреси задаються 32-бітовими значеннями. Крім цього, можлива сторінкова трансляція адрес, також з 32-бітовими значеннями. Нарешті, при роботі в захищеному режимі, що за замовчуванням припускає 32-бітовий код, можливе виконання подвійних програм, створених для роботи мікропроцесора в 16-бітовому режимі. Для цього введений режим віртуальної 16-бітової машини і 20-бітові адреси реального режиму транслюються за допомогою сторінкового механізму в 32-бітові значення захищеного режиму. Нарешті, є ще один режим — 16-бітовий захищений, що дозволяє 32-бітовим мікропроцесорам виконувати захищений 16-бітовий код, що був характерний для мікропроцесора 80286. Правда, слід зазначити, що цей останній режим практично не використовується, оскільки програм, створених для нього, не так вже і багато.

Для вивчення цих можливостей розглянемо спочатку нові архітектурні можливості мікропроцесорів i80х86.

 

2. Нові системні регістри мікропроцесорів і80x86.

Основні регістри мікропроцесора і80x86, знання яких необхідно для розуміння захищеного режиму роботи, приведені на мал. 3.2. Варто звернути увагу на наступне:

· покажчик команди ЕIP — 32 бітовий регістр, молодших 16 розрядів цього регістра є регістр IP;

· регістр флагів EFLAGS — 32 біта, молодших 16 розрядів представляють регістр FLAGS;

· регістри загального призначення ЕАХ, ЕВХ, ЕСХ, EDX, а також ESP, EBP, ESI, EDI — 32-бітові, однак їх молодші 16 розрядів являють собою відомі регістри АХ, ВХ, СХ, DX, SP, BP, SI, DI;

· сегментні регістри CS, SS, DS, ES, FS, GS — 16-бітові. При кожному з регістрів CS, SS, DS, ES, FS, GS зображені пунктиром сховані від програмістів (недоступні нікому, крім власне мікропроцесора) 64-бітові регістри, у які завантажуються дескриптори відповідних сегментів;

· регістр-покажчик на локальну таблицю сегментів поточної задачі- - LDTR (16 бітів). При цьому регістрі також є «тіньовий» (схований від програміста) 64-бітовий регістр, у який мікропроцесор заносить дескриптор, що вказує на таблицю дескрипторів сегментів задачі, що описують її локальний віртуальний адресний простір;

· регістр-покажчик задачі TR (task register, 16 бітів). Указує на дескриптор у глобальній таблиці дескрипторів, що дозволяє одержати доступ до дескриптора задачі TSS2 — інформаційній структурі, що підтримує мікропроцесор для керування задачами;

· регістр CDTR1 (48 бітів) глобальної таблиці GDT, що містить як дескриптори загальних сегментів, так і спеціальні системні дескриптори. Зокрема, у GDTR знаходяться дескриптори, з допомогу яких можна одержати доступ до сегментів TSS;

· регістр IDTR (48 бітів) таблиці дескрипторів переривань. Містить інформацію, необхідну для доступу до ”таблиці переривань” IDT;

· керуючі регістри CR0 - CR3 (32-бітові) і деякі інші регістри.

Мал. 7.2 Основні системні регістри мікропроцесорів і80x86.

Керуючий регістр CR0 містить цілий ряд флагівв, що визначають режими роботи мікропроцесора. Самий молодший біт (РЕ, protect enable) цього регістра визначає режим роботи процесора. При РЕ=0 процесор функціонує в реальному режимі роботи, а при одиничному значенні мікропроцесор переключається в захищений режим. Самий старший біт регістра CR0 (біт PG, paging) визначає, включений (PG=1) чи немає (PG=0) режим сторінкового перетворення адрес.

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

 

3. Підтримка сегментного способу організації віртуальної пам'яті.

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

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

· щоб існував загальний (розподілений) адресний простір.

Тому в мікропроцесорах і80x86 реалізований сегментний спосіб організації розподілу пам'яті. Крім цього, в цих мікропроцесорах може бути задіяна і сторінкова трансляція. Оскільки для кожного сегмента потрібний дескриптор, пристрій керування пам'яттю підтримує відповідну інформаційну структуру. Формат дескриптора сегмента приведений на мал. 3.3. Поля дескриптора (базова адреса, поле межі) розміщені в дескрипторі не безупинно, а в розбивку, по-перше, через те, що розробники постаралися мінімізувати кількість перехресних з'єднань в напівпровідниковій структурі мікропроцесора, а по-друге – унаслідок необхідності забезпечити повну сумісність мікропроцесорів (попередній мікропроцесор і80286 працював з 16-бітовим кодом і теж підтримував сегментний механізм реалізації віртуальної пам'яті). Необхідно помітити, що формат дескриптора сегмента, зображений на мал. 3.3, справедливий тільки для випадку перебування відповідного сегмента в оперативній пам'яті. Якщо ж біт присутності в полі прав доступу рівний нулю(сегмент відсутній в памяті), то всі біти за виключенням поля прав доступу, вважаються невизначеними і можуть використовуватися системними програмістами (для вказівки адреси сегмента в зовнішній пам'яті) довільним чином.


Читайте також:

  1. III. Захист інтересів клієнта
  2. V. Антропогенне забруднення навколоземного простору.
  3. Аварійно-рятувальні підрозділи Оперативно-рятувальної служби цивільного захисту, їх призначення і склад.
  4. Авілум – “син чоловіка” – повноправна людина, охороні його життя, здоров’я, захисту його майнових інтересів присвячена значна частина законника.
  5. Адміністративний захист об’єктів інтелектуальної власності від недобросовісної конкуренції
  6. Адміністративно-правовий захист об’єктів інтелектуальної власності
  7. Адміністративно-правовий захист права інтелектуальної власності
  8. Адміністративно-правовий спосіб захисту прав
  9. Адміністративно-правовий спосіб захисту прав
  10. Акустичні засоби|кошти| захисту
  11. Аналіз паралельного інтерейсу з DSP-процесорами: запис даних в ЦАП, що під’єднаний до адресного простору пам’яті
  12. Аналіз паралельного інтерфейсу з DSP-процесорами: читання даних з АЦП, що під’єднаний до адресного простору пам’яті




Переглядів: 1068

<== попередня сторінка | наступна сторінка ==>
Алгоритм Деккера. | Мал. 7.3 Дескриптор сегменту.

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.005 сек.