Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Сегментная защита памяти - Взаимодействие уровней привилегий23 января 2011Оглавление: 1. Сегментная защита памяти 2. Взаимодействие уровней привилегий Взаимодействие четырёх уровней между собой осуществляется посредством шлюзов. Дескриптор шлюза так же, как и дескриптор сегмента имеет поле PL. Обращение к шлюзу подчинено вышеописанным правилам, но существуют дополнительные правила, накладывающие естественные ограничения на сегмент кода/TSS, указанный в шлюзе:
Если посредством шлюза происходит обращение к неподчинённому сегменту с таким же уровнем привилегий, или к подчинённому сегменту кода с таким же или численно меньшим уровнем привилегий, то происходит простой переход: Push Flags ; Только для шлюзов прерывания и ловушки Push CS Push IP Jmp FAR Gate_Address Переключение стекаЕсли же происходит переход к неподчинённому сегменту кода с численно меньшим уровнем привилегий, то происходит переключение стека во избежание его переполнения на верхних уровнях. Напр. если происходит ошибка стека на нулевом уровне, то процессор останавливается. Сегмент TSS содержит три дальних адреса стека для уровней привилегий 0 – 2. При переходе с больших на меньшие уровни через шлюзы происходит смена привилегий, и, соответственно, переключение стеков. Алгоритм переключения выглядит несколько сложнее:
При выполнении команды RetF/IRet:
Просмотров: 2111
|