Керiвництво программиста
Категория реферата: Рефераты по информатике, программированию
Теги реферата: реферат, решебник по алгебре класс
Добавил(а) на сайт: Smotrov.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 | Следующая страница реферата
Рівні захисту і привілей визначаються двома бітами, значення яких вказує номер кільця захисту. В залежності від місця розміщення біти мають різноманітне призначення.
Рівень привілей дескриптора DPL задається бітами 5 і 6 в байті доступу дескриптора. Значення DPL вказує рівень захищеності сегменту, т. є. Номер кільця захисту, до якого він відноситься.
Рівень привілей запитання RPL задається бітами 0 і 1 селектора.
Значення RPL визначає рівень привілей, ініціатора запитання-звертання до
сегменту. Ініціатором є програма або влаштування, що з допомогою селектора
буде в обігу до пам'яті системи.
Поточний рівень привілей CPL задається бітами 0 і 1 селектора, розміщеного в регістрі CS. Визначає рівень привілей в нинішній момент сегменту ,що виконується програми.
Процесор має спеціальну команду ARPL, що використається для корекції значення RPL селектора. При цьому селектор служить першим операндом команди. В якості другого операнда в регістр завантажується поточне значення CS. При виконанні команди порівнюються значення двох молодших бітів операндів, що містять RPL і CPL. Поле RPL селектора приймає максимальне з значень RPL і CPL, т. Е. Встановлюється мінімальний рівень привілей запитання. Якщо значення RPL при цьому змінилося, те встановлюється ознака ZF.
Звертання до сегментів кодів і даних в захищеному режимі виробляється з урахуванням описаної вище системи привілей. При цьому правила залежать від типу сегменту.
Звертання до сегментів даних виробляється з допомогою селекторів, що
завантажуються в регістри DS, ES, FS, GS. При звертанні аналізується
значення RPL селектора і CPL програми. Ефективний рівень привілей (EPL) для
запитання даних в цьому випадку визначається як максимальне з значень RPL і
CPL. Звертання до сегменту ,що запрошується даних дозволяється, якщо його
рівень захисту DPL і EPL. Порушення цього правила викликає прерывание типу
13.
Звертання до сегментів кодів, т. є. Передача керування реалізується при виконанні команд міжсегментних переходів. Правила звертання до сегментів кодів залежать від значення біта підпорядкованості в байті доступу дескриптора.
Звертання до підлеглих сегментів допускається тільки з програм, що є
такий же або більш низький рівень привілей. Таким чином, в програмах з
поточним рівнем привілей CPL можуть виконуватися міжсегментні команди JMP,
CALL з передачею керування підлеглому сегменту, що є DPL і CPL. При такій
передачі керування зберігається рівень вихідної (викликаючої) програми.
Звертання до непідлеглих сегментів з допомогою команд JMP і CALL
допускається тільки в випадку, якщо значення CPL поточної програми рівно
DPL сегменту. Крім того, команда CALL може викликати сегменти програм з
більш високим рівнем привілей, використовуючи механізм шлюзів (або
вентилів).
Менш привілейована процедура може викликати більш привілейовану, будучи в обігу до неї через дескриптор шлюзу виклика, що визначає доступну крапку входу. Цей засіб дозволяє програмам користувача бути в обігу до операційної системи. Формат дескриптора шлюзу виклика уявлений на рисунку 1.17.
В процесорі 80286 бвти з 48 по 63 не використовуються і повинні бути рівні 0.
П'ятибайтове поле WC вказує кількість параметрів, що переносяться в стек нової програми. Параметри подають собою 16-разрядные слова для 16- разрядных програм (в тому числі і для процесора 80286) і 32-разрядные слова для 32-разрядных програм.
При викликові програм через шлюз повинні виконуватися наступні правила.
Значення RPL селектора шлюзу і CPL викликаючої програми повинні бути менш
або рівним значенню DPL в байті доступу шлюзу.
Якщо програма, що викликається має інший (більш високий) рівень привілей для неї створюється новий стек. При цьому в регістри SS і (E)SP з сегменту TSS завантажується новий вміст, що визначає початкова адреса нового стека. В цей стек послідовно вводяться старі значення SS і (E) SP; параметри, переносимі з старого стека; старі значення CS і (E) IP. Число переносимих параметрів визначається полем WC, причому вибираються останні з завантажених в старий стек параметрів. Стать команді RET виробляється відновлення з стека старого вмісту регістрів SS, (E)SP і CS, (E)IP.
Реалізація введення-виведення в захищеному режимі виробляється з
урахуванням CPL програми, що виконується. Величина CPL порівнюється зі
значенням поля IOPL в регістрі (E)FLAGS. Введення-виведення виробляється
тільки при виконанні умови CPL менш або рівно IOPL.
Багатозадачність.
Багатозадачністю називається такий засіб організації роботи системи, при якому в її пам'яті водночас містяться програми і дані для виконання
декількох процесів обробки інформації (задач). При цьому повинен
забезпечуватися взаємний захист програм і даних, стосовних до різноманітних
задач, а також можливість переходу від виконання однієї задачі до другий
(переключення задач). Процесори починаючи з 80286 мають ефективні засоби
підтримки багатозадачного режиму. В якості таких засобів використовується
структура даних, організована в вигляді сегменту, що називається сегментом
стану задачі TSS. Апаратними засобами для підтримки багатозадачности
служить регістр задачі TR, в що з GDT може бути завантажений дескриптор
задачі.
Кожна задача має свій сегмент TSS, структура якого перебує з двох частин. Обов'язкова частина містить всю інформацію, необхідну процесору для рішення даної задачі. Додаткова частина може містити яку-або інформацію про задачу, що використається операційною системою, бітову карту, що визначає допустимі адреси приладів введення/висновку (тільки 80386+) і бітовую карту віртуальних перериваннь (тільки Pentium+). Розглянемо утримання обов'язкової частини TSS (таблиці 1.2 і 1.3).
Перші два байта використовуються для зберігання селектора TSS попередньої задачі, при виконанні якої відбувся виклик даної задачі. В це поле заноситься вміст регістру TR для попередньої задачі, якщо припускається повернення до неї. Окремі поля зберігають вміст всіх сегментных регістрів, регістрів загального призначення, регістру прапорів і покажчика команд. При переключенні задач вміст означених полів з викликаного TSS завантажується в відповідні регістри. При наступному переключенні поточний вміст регістрів заноситься в TSS даної задачі, після чого виробляється завантаження регістрів з TSS нової задачі.
Поля SS0, (E) SP0, SS1, (E) SP1, SS2, (E) SP2 служать джерелом нового покажчика стека при зміні поточного рівня привілей (передачі керування).
Біт ловушки T в TSS викликає при Т=1 переривання типу 1 при переключенні на дану задачу. Це переривання використовується при отладке програмного забезпечення.
Бітова карта перенаправлення перериваннь БКПП забезпечує можливість
автоматичного перенаправлення програмного переривання в віртуальном режимі.
Бітова карта введення-виведення БКВВ забезпечує індивідуальний захист
кожного порту введення-виведення. При записі в біті БКВВ нуля дозволяє при
CPL>IOPL звертання до відповідного порту. За останнім байтом БКВВ повинен
слідувати заключний байт, що містить 1 в усіх розрядах. Адреса цього байта
повинна відповідати межі сегменту.
Дескриптор TSS повинен зберігатися тільки в GDT. Тому звертання до
дескриптору TSS з допомогою селектора, що є біт TI=1, викликає виключення
10.
Для переключення задач процесор використає звичайні команди міжсегментного переходу JMP, виклика CALL і повернення IRET. Якщо селектор команди JMP або CALL вибирає з таблиці GDT системний дескриптор, у якого поле типу рівно 1 (для 80286) або 9 (для 80386+), виконується переключення задач. При цьому селектор заноситься в TR. Слідує відзначити, що команди передачі керування містять зміщення. Однак при переключенні задач воно ігнорується.
При переключенні задач з допомогою команд JMP або CALL повинні виконувати правила привілей, встановлені для доступу до даних: максимальне з CPL і RPL повинно бути менш або рівно DPL. Таким Чином допускається переключення на задачі, чий ступінь захисту менш або рівному рівню привілей поточної задачі.
Рекомендуем скачать другие рефераты по теме: сочинение сказка, 2 класс изложение.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 | Следующая страница реферата