Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АВМиС - бывшее АПЭВМ / apvem / всякаявсячина.doc
Скачиваний:
42
Добавлен:
15.09.2014
Размер:
670.72 Кб
Скачать
  1. Привилегии и защита программ

МП 80386/80286 управляют межуровневым доступом к данным и процедурам согласно следующим правилам:

1) данные, хранящиеся в сегменте с уровнем привилегий р, могут быть доступны только при выполнении команд с такими же или меньшими привилегиями, чем р;

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

Отметим, что при работе с МП 80386 нужно иметь в виду, что под сегментами данных, кроме сегментов DS и ES, которые присутствуют и в МП 80286, понимаются все сегменты данных МП 80386, а именно: DS, ES, FS, GS.

Поэтому все правила работы с сегментами данных на различных уровнях привилегий распространяются и на сегменты FS, GS. Кроме того, МП 80386 предоставляет дополнительный тип защиты на базе страничной организации (при условии разрешенного к ней доступа).

Защита МП 80386/80286 включает в себя пять компонентов: 1) контроль типа дескриптора сегмента; 2) контроль границ (предела); 3) ограничение области адресуемости; 4) ограничение процедуры точек входа; 5) ограничение набора команд.

Аппаратура защиты МП 80386 - общая для обоих способов управления памятью, т.е. защита действует как при преобразовании сегмента, так и при преобразовании страниц.

Как в МП 80286, так и в МП 80386 каждое обращение к памяти контролируется для выяснения, удовлетворяет ли оно критерию защиты. Весь контроль происходит перед началом выполнения команды, а любое нарушение защиты приводит к его завершению и к прерыванию по исключительной ситуации. Благодаря тому, что контроль производится одновременно с формированием адреса, он позволяет исключить возможность возникновения непредсказуемых последствий в дальнейшем.

30.Механизм виртуальной памяти

Программист обращается к памяти с помощью некоторого набора логических имен, которые чаще всего являются символьными, а не числовыми и для которо­го отсутствует отношение порядка. Существует понятие физической оперативной памяти, собст­венно с которой и работает процессор, извлекая из нее команды и данные и по­мещая в нее результаты вычислений. Физическая память представляет собой упорядоченное множество ячеек, и все они пронумерованы, то есть к каждой из них можно обратиться, указав ее порядковый номер (адрес). Количество ячеек физической памяти ограничено и фиксировано.Системное программное обеспечение должно связать каждое указанное пользо­вателем имя с физической ячейкой памяти, то есть осуществить отображение пространства имен на физическую память компьютера. Это ото­бражение осуществляется в два этапа: сначала системой программи­рования, а затем операционной системой (с помощью специальных программ­ных модулей управления памятью и использования соответствующих аппаратных средств вычислительной системы). Между этими этапами обращения к памяти имеют форму виртуального или логического адреса. Множество всех допустимых значений виртуального адреса для некоторой программы определяет ее виртуальное адресное пространство или виртуальную память. Виртуальное адресное пространство программы прежде всего зависит от архитектуры процессора и от системы программирования и практически не за­висит от объема реальной физической памяти, установленной в компьютер. Адреса команд и переменных в готовой машинной программе, подготовленной к выполнению системой программирования, являются виртуальными адресами.В результате работы системы програм­мирования полученные виртуальные адреса могут иметь как двоичную форму, так и символьно-двоичную, т.е. некоторые программные модули и их переменные получают какие-то числовые значения, а те модули, адреса для которых не могут быть сейчас определены, имеют по-прежнему символьную форму и окончательная привязка их к физическим ячей­кам будет осуществлена на этапе загрузки программы в память перед ее непо­средственным выполнением. Частные случаи:

1)тождественность виртуального адресного пространства физическойпамяти. При этом нет необходимости осуществлять второе отображение. Cистема программирования генерирует абсолютную дво­ичную программу; в этой программе все двоичные адреса таковы, что программа может исполняться только в том случае, если ее виртуальные адреса будут точно соответствовать физическим. Часть программных модулей любой операционной системы обязательно должна быть абсолютными двоичными программами. Эти программы размещаются по фиксированным адресам и с их помощью уже мож­но впоследствии реализовывать размещение остальных программ, подготовлен­ных системой программирования таким образом, что они могут работать на раз­личных физических адресах (то есть на тех адресах, на которые их разместит операционная система).

2)тождественность виртуального адресного пространства исходному про­странству имен. Здесь уже отображение выполняется самой ОС, которая во вре­мя исполнения использует таблику символьных имен. Такая схема отображения используется чрезвычайно редко, так как отображение имен на адреса необходи­мо выполнять для каждого вхождения имени. Промежуточные варианты: транслятор-ком­пилятор генерирует относительные адреса, которые являются виртуаль­ными адресами с последующей настройкой программы на один из непрерывных разделов. Второе отображение осуществляется перемещающим загрузчиком. По­сле загрузки программы виртуальный адрес теряется, и доступ выполняется не­посредственно к физическим ячейкам. Более эффективное решение в том случае, когда транслятор вырабатывает в качестве виртуального адреса от­носительный адрес и информацию о начальном адресе, а процессор, используя подготавливаемую операционной системой адресную информацию, выполняет второе отображение не один раз (при загрузке программы), а при каждом обра­щении к памяти.Термин виртуальная память относится к системам, которые сохра­няют виртуальные адреса во время исполнения. Так как второе отображение осуществляется в процессе исполнения задачи, то адреса физических ячеек мо­гут изменяться. С пози­ции соотношения объемов упомянутых адресных пространств можно отметить наличие следующих трех ситуаций:а)Vv <Vp; б)vv = vp; в)vv> vp.Первая ситуация, при которой Vv < Vp, ныне практически не встречается, но тем не менее это реальное соотношение. Скажем, не так давно 16-разрядные мини-ЭВМ имели систему команд, в которых можно ад­ресовать до 216=64К адресов. А физически старшие модели этих мини-ЭВМ могли иметь объем оперативной памяти в несколько мегабайт. Обращение к памя­ти столь большого объема осуществлялось с помощью специальных регистров, содержимое которых складывалось с адресом операнда, извле­каемым и/или определяемым из поля операнда. Со­ответствующие значения в эти специальные регистры, выступающие как базовое смещение в памяти, заносила операционная система. Для одной задачи в регистр заносилось одно значение, а для второй (третьей, четвертой и т. д.) задачи, раз­мещаемой одновременно с первой, но в другой области памяти, заносилось, соот­ветственно, другое значение. Вся физическая память, таким образом, разбива­лась на разделы объемом по 64 Кбайт, и на каждый такой раздел осуществлялось отображение своего виртуального адресного пространства.Ситуация, когда Vv = vp| встречалась достаточно часто. В наше время ситуация Vv > Vp встречается даже в ПК.