Защита в многозадачном режиме



Виды защиты:

· задачи от задачи

· ОС от прикладных задач

· одну часть ОС от другой части

· защита задач от собственных ошибок

Привилегии

Многие средства защиты основаны на понятии привилегии. Уровень привилегии задачи определяется уровнем привилегии сегмента, в котором эта программа расположена. В каждом дескрипторе сегмента памяти выделяется поле DPL (подполе в поле атрибутов) уровень привилегии дескриптора. Существует 4 уровня привилегий. 0 уровень - самый высокий уровень привилегии. Возможно отключение механизма защиты (0 уровень у всех). Пример полного использования механизма защиты:

уровень 0 - ядро ОС (отлажено и изменению не подлежит)

уровень 1 - драйверы

уровень 3 - СУБД

уровень 4 - БД

Уровень привилегии ограничивает доступ к кодовому сегменту и накладывает ограничения на использование в этой программе команд.

Привилегированные команды - подмножество системных команд, которые используются в программах с уровнем 0.

Процессор может использовать ту память, которая определена как сегмент и описана соответствующим дескриптором в таблице дескрипторов. Каждое обращение к памяти проверяется на соответствие атрибуту защиты.

1. Это команды, связанные с распределением памяти (описание сегментов), изменение таблиц дескрипторов:

· LGDT - загрузка глобальной таблицы дескрипторов

· SGDT - хранение глобальной таблицы дескрипторов

· LTR - загрузка регистра задач

2. Команды, связанные с организацией ввода/вывода:

· in, out - используются в программах с определенным уровнем привилегий. В регистре флагов есть двухразрядное поле: IOPL - определяет минимальный уровень привилегий программы, которая может использовать команды ввода/вывода

Защита сегментов

Защита основана на согласованности атрибутов защиты.

Атрибуты защиты:

1. Привилегии

программе запрещается:

· данные из сегмента с некоторым уровнем привилегий могут быть считаны из программы того же или более высокого уровня привилегий. DPL - в поле атрибутов существует подполе, которое определяет уровень привилегий сегмента.

· межсегментный переход. Процедура из сегмента с некоторым уровнем привилегий может быть вызвана из программы того же уровня или менее привилегированной программы. Из менее привилегированных программ вызов процедур осуществляется с помощью шлюза вызова. В шлюзе вызова определена точка входа в процедуру. Так же каждый уровень привилегий имеет свой стек. При переключении на другой уровень не может разрушаться исходный стек.

· Все команды, поддерживающие сегментирование и механизмы защиты - привилегированные.

2. Предел (граница)

· обращаться к сегменту возможно в его пределах

· с его помощью обнаруживается переполнение стека, неверное указание индекса массива

3. Тип сегмента (определяется в поле атрибутов дескриптора)

· сегмент кода

· сегмент данных

4. Права доступа

Дескриптор сегмента может быть отмечен некоторыми правами, ограничивающими набор операций, производимых с его сегментом (чтение, запись, исполняемый или нет).

 


Дата добавления: 2016-01-04; просмотров: 32; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!