Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posobie.doc
Скачиваний:
143
Добавлен:
09.04.2015
Размер:
969.22 Кб
Скачать

Стековая память

Стековая память обеспечивает дисциплину обслуживания «последним пришёл – первым вышел». Эта память обычно применяется для сохранения и восстановления содержимого регистров при обработке подпрограмм и прерываний. Принцип работы со стеком показан ниже.

В современных ЭВМ наиболее распространён внешний или аппаратно-программный стек, когда для хранения данных отводится область ОП. Обычно это область с наибольшими адресами (т.к. программа загружается, начиная с меньших адресов), а расширение стека производится в сторону уменьшения адресов.

В регистр SP предварительно помещается наибольший адрес области, отведённой под стек.

При занесении в стек очередного слова соответственно уменьшается значение в регистре SP, и оно затем используется как адрес ячейки, к которой было последнее обращение.

При считывании слова из стека в качестве адреса используется значение SP, а после извлечения слова его адрес соответственно увеличивается.

Защита памяти

Термин защита памяти на самом деле подразумевает защиту информации в памяти. Обычно в ЦП существуют специальные средства для защиты программ от вмешательства в работу друг друга.

Защита реализуется за счёт сочетания аппаратных и программных средств.

Независимо от принятых принципов построения подсистемы защиты памяти в основе её функционирования заложена проверка всех адресов, поступающих для обращения к ОП. В результате такой проверки формируется сигнал управления, разрешающий обращение к ОП, если адрес относится к выделенной для данной программы области памяти. В противном случае вырабатывается сигнал, запрещающий выполнение данной команды (при этом посылается запрос на прерывание реализуемой программы с целью установления причины нарушения границ разрешенной для использования области памяти).

Реализация идеи защиты памяти в любом случае не должна сопровождаться заметным снижением производительности машины и не требовать больших аппаратных затрат.

Рассмотрим некоторые методы решения проблемы защиты памяти

Ключи защиты

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

Кольца защиты

Аппаратно реализовано разделение системного и пользовательского уровня привилегий. В современным ПК введено 4 таких уровня. Наивысшим нулевым уровнем обладает ядро ОС, уровень 1 имеют утилиты ОС, уровень 2 – служебные системны программы. Наименее защищены пользовательские программы, они имеют уровень защиты 3. в системном режиме программе доступны все ресурсы ЭВМ, в пользовательском – есть ограничения. Переключение из пользовательского режима в системный осуществляется специальной командой, вызывающей прерывание.

Метод граничных регистров

Это самый распространённый метод защиты. В ЦП должны быть два специальных регистра, определяющих нижнюю и верхнюю границу области памяти, к которой имеет право доступа программа. Занесение значений границ в эти регистры выполняет ОС в привилегированном режиме при загрузке программы. При любом обращении пользовательской программы к ОП адрес сравнивается с установленными границами и если обнаруживается нарушение защиты, то доступ в память блокируется и формируется прерывание по нарушению защиты.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]