
- •Организация электронно-вычислительных машин
- •07092012 Лекция 1 Сегментная адресация и сегментная структура программ
- •Создание выполнимой программы на ассемблере с использованием 1,2 и 3 сегментов
- •21092012 Лекция 2 Защита памяти
- •Кольца защиты памяти
- •Альтернативные методы защиты
- •05102012 Лекция 3 Средства аппаратной поддержки управления памятью и многозадачность среды процессора класса i386
- •Средства поддержки сегментации памяти
- •19102012 Лекция 4
- •02112012 Лекция 5 Средства вызова подпрограмм и задач
- •30112012 Лекция 6 Параллелизм как основа высокопроизводительных вычислений
- •Уровни параллелизма
- •Классификация параллельных вс
- •14122012 Лекция 7 Организация памяти вычислительной системы
Кольца защиты памяти
У современных систем и машин используются аппаратно-программное разделение системного и пользовательского уровней привилегий: процессор работает в одном из двух режимов – пользовательский и системный (супервизор).
Уровни защиты – кольца. Системное кольцо – более привилегированное. Внешнее – пользовательское – менее.
Количество колец может быть увеличено. Например, процессор x86 (с полным набором команд) имеет 4 кольца защиты, но в целом они подчиняются системе двух колец.
В системном режиме разрешено управлением уровней прерываний процессора и доступ к регистрам диспетчера памяти.
Обычно программа, выполняющаяся в системном режиме, имеет доступ к адресному пространству пользовательских программ.
В пользовательском режиме процессор может выполнять только обычные команды обработки данных и не имеет доступа к адресному пространству системных программ.
Проблемы:
Защита программ ОС друг от друга
Защита пользовательских программ друг от друга
Защита пользовательских программ от программ ОС
И наоборот
Защита пользовательских программ от внутренних ошибок
Данная архитектура имеет самую широкую распространенность, хотя обладает рядом недостатков: сложность разделения памяти между задачами (что особенно актуально при разделении кода) и снижение производительности алгоритмов подкачки (более сложное управление файлом подкачки). Все это приводит к снижению эффективности работы памяти, особенно это касается сетевых ОС.
Альтернативные методы защиты
Большинство альтернативных подходов к защите памяти были разработаны в конце 60-х годов. В этих системах использовалась сегментная виртуальная память, но все задачи разделяли общую таблицу описателей сегментов. Все задачи разделяли общее адресное пространство.
Пользовательская программа не могла самостоятельно формировать указатели, так как машины имели тэговую архитектуру – каждая ячейка снабжается тэгом (или описателем), который указывает на тип данных, хранящийся в ячейке.
Команда создания и идентификации указателей является привилегированной и доступна только в специальных модулях ядра. Это привело к усложнению процессора.
С появлением CISC архитектур адресное пространство памяти разбивается на объекты различных типов. Каждый тип имеет свой набор атрибутов. И структура большинства объектов скрыта от прикладных программ. Доступ к объектам осуществляется по специальным командам.
В традиционных RISC архитектурах пользователь не может сформировать и запустить произвольную последовательность команд, и вообще не имеет доступа к реальному процессу.
Ещё один варианта альтернативного подхода – взаимно не доверяющие подсистемы.
Во взаимно недоверяющих подсистемах пользовательская задача не должна предоставлять ОС прав доступа ко всем своим данным. Вместо этого задача выделяет мандат на доступ к буферу или нескольким буферам, предназначенным для обмена данными. Все процедуры обмена данными между всеми задачами происходит с помощью мандатов.
Проблемы:
При использовании страничных диспетчеров памяти можно отображать в чужие адресные пространства только те объекты, которые выровнены на границу страницы и имеют размер, кратный размеру страницы (3кБайта).
Использование супервизора, который отвечает за раздачу мандатов и за отображение объектов в чужих адресных пространства, затруднено. Функции супервизора сложны как для аппаратной, так для программной реализации.
Пример: процессор Intel iAPX432, где используется усложненный диспетчер памяти и алгоритм разрешения виртуальных адресов (аналог сложных команд в CISC процессор). Процессор остался экспериментальным, поскольку показал низкую производительность, слишком сложный кристалл не доведен до массового производства. Стал прародителем процессора 386.