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

В захищеному, як і в реальному режимах є поняття логічної і фізичної адреси. Логічна адреса (віртуальна) складається з двох 16-ти розрядних компонент – селектора і зміщення. Селектор записується в ті ж сегментні регістри, що і сегментний адрес в реальному режимі. Перетворення логічної адреси в фізичну виконується за допомогою спеціальних таблиць перетворення адрес.

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

 

Селектор   Зміщення

 
+
 
 
 
базовий адрес
 
 
 

 

 

Селектор – не є сегментним адресом, це індекс з допомогою якого процесор отримує із спеціальної таблиці 24-розрядний базовий адрес сегменту.

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

Як уже зазначалось – операційні системи, що використовують реальний режим роботи процесора не захищені від прикладних програм. Підсистема управління пам’яттю в реальному режимі ґрунтується на розбитті всієї пам’яті на участки, на початку яких розміщаються блоки управління пам’яттю MCB (Memory Control Block). При старті програми DOS виділяє їй потрібну кількість блоків і загружає відповідним чином сегментні регістри. Якщо програма не змінює значення сегментних регістрів – то вона працює тільки з тими сегментами пам’яті які їй виділено. Однак ніщо не заважає любій програмі загрузити сегментні регістри своїми значеннями, в тому числі і адреси і адреси сегментів самої операційної системи.

В захищеному режимі реалізовано більш надійну схему захисту операційної системи і програм один від одного. В цій схемі використовуються пріоритети 4-ох рівнів від 0 до 3. Найбільші привілеї відповідають рівню 0. Як правило такими привілеями володіє ядро операційної системи (0). Мінімальні пріоритети у користувацьких програм – рівень 3.

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

3 кільце 0 – ядро операційної системи, системні

2 драйвери.

1 кільце 1 – програми обслуговування апаратури,

драйвери, програми, що працюють

0 з портами вводу/виводу комп’ютера.

кільце 2 – системи управління базами даних, розширення операційної системи.

кільце 3 – прикладні програми, що записуються користувачем.

 

 

Запущена програма отримує від операційної системи поточний рівень пріоритету, який вона може проаналізувати на основі вмісту регістру CS. Перед тим як програма звернеться до сегменту даних, вона повинна загрузити один із сегментних регістрів селектора, що відповідає потрібному сегменту даних. В селекторі вказується рівень пріоритету з яким хоче працювати програма (Requested Privilege Level). Програмі буде надано відповідний доступ до сегменту тільки в тому випадку коли рівень пріоритету дескриптора сегменту, що запрошується більший, або рівний найбільшому із значень поточного рівню пріоритету і рівню пріоритету, що запрошується.

Якщо програма спробує отримати доступ до більш привілегійованого сегменту пам’яті то її виконання буде перервано.

Нескладні програми (системи) можуть використовувати не всі кільця, а тільки деякі чи навіть одне.

 








Дата добавления: 2015-10-09; просмотров: 876;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.