Базові адреси таблиць глобальних i локальних дескрипторів
Під час виконання поточного завдання базові адреси таблиць глобальних i локальних дескрипторів містяться в спеціальних регістрах. При завантаженій селектора в сегментний регістр за другим розрядом поля Т визначається тип таблиці: якщо Г = 0, то таблиця глобальна, якщо Т = 1, то таблиця локальна.
Три розряди (поле Туре) в байті доступу сегмента визначають допустимі дії з кодами, розташованими в сегменті Один з розрядів задає тип сегмента (дат чи коди програми). Для сегмента даних можливий захист від запису. Для сегмента програмних кодів забезпечується захист від зчитування i (чи) виконання завдання з нижчим пріоритетом. Поле DPL визначає один з 4 рівнів привілеїв одного сегмента. Найбільш привілейованим є нульовий рівень. Він призначений для сервисный центр ядра операційної системи, найнижчий рівень надається завданням користувача. Рівень привілеїв поточного завдання визначається місткістю поля RPL у сегментному регістрі CS програмних кодів. При намаганні завантажити новий селектор у сегментний регістр даних DS відбувається апаратне порівняння поточного рівня (RPL 13 CS), рівня, що запитується (RPL \з селектора) i рівня доступу (DPL з байта доступу дескриптора). Якщо поточний та запитуваний рівні менші чи такі caмi, то завдання одержує доступ до сегмента даних.
Міжсегментні передачі керування, зокрема виклики Підпрограм i повернення з них, обробка переривань i винятків, виконуються тільки через спеціальні шлюзи (date), які теж задаються своїми дескрипторами. Формат дескриптора шлюзу подібний дескрипторові сегмента. Передача керування з сервис по ремонту ноутбуков менш привілейованої програми в ділянку з більшими привілеями поза шлюзами неможлива i зумовлює відповідний виняток.
Февраль 28th, 2011 at 12:41
дуже цікаво, спасибі