Файл: Дроздов Е.А. Многопрограммные цифровые вычислительные машины.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.04.2024

Просмотров: 301

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

ной

таблице. Общая

схема преобразования аналогична

схеме

рис.

10.3 с добавлением СОЗУ для размещения сегментной

таб­

лицы.

 

 

 

§

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

 

Характерной особенностью многопрограммных ЦВМ универ­ сального типа является то, что в их ОЗУ одновременно размещает­ ся несколько рабочих программ, которые выполняются в принятой последовательности. Кроме рабочих программ в оперативной па­ мяти всегда размещается часть общего программного обеспечения, представляемого в виде набора управляющих программ, некото­ рых стандартных подпрограмм, подпрограмм прерываний и т. п. При правильном распределении памяти и отсутствии ошибок в программах машина функционирует нормально, так как при реа­ лизации любой программы остальные программы и соответствую­ щие им данные не претерпевают никаких изменений. Однако ве­ роятность наличия ошибок в адресных частях команд никогда не равна нулю, что в конечном итоге приводит к искажению инфор­ мации по невыполняемым в данный промежуток времени програм­ мам. Пусть для некоторой г'-й программы отведен массив рабочих ячеек в ОЗУ с адресами от 0000 до 0127, а /-я программа записана в ячейках с адресами от 2000 до 3000. Пусть также одной из команд 1-й программы в результате ошибки предусмотрена запись слова в ячейку 2200. Тогда при реализации i-й программы /-я про­ грамма будет искажена. Обращение по считыванию информации к ячейкам страниц памяти, относящихся, к другим программам, не вызывает искажения этих программ, но тоже может считаться нежелательным.

Для предотвращения возможных случаев искажения информа­ ции при одновременном размещении в оперативной памяти не­ скольких или многих программ необходимо предусмотреть меры по защите программ от взаимного влияния. Поскольку каждой про­ грамме всегда отводится определенный массив ячеек памяти, то защита программ практически сводится к защите от возможных ошибочных обращений к страницам или блокам памяти, иначе говоря, защита программ сводится к защите памяти. Реализация мер защиты осуществляется системами защиты памяти. В общем случае под системой защиты памяти, именуемой иногда системой

323


защиты адресов памяти, понимается комплекс аппаратно-про­ граммных средств, обеспечивающий предотвращение взаимного ис­ кажения программ, одновременно находящихся в оперативной па­ мяти. Системы защиты оперируют, как правило, физическими адре­ сами, хотя возможна организация защиты памяти как на уровне физических, так и на уровне математических страниц. При сег­ ментации математической памяти защита осуществляется только программными метода ми.

Основу функционирования любой системы защиты памяти со­ ставляет проверка всех адресов, поступающих для обращения к оперативной памяти, по результатам которой вырабатываются сигналы управления. Если адрес относится к выделенному для данной программы массиву ячеек, то система защиты разрешает обращение к оперативной памяти; в противном случае система защиты прекращает выполнение данной команды и посылает за­ прос на прерывание реализуемой программы с целью установле­ ния причины нарушения границ массива ячеек, или страницы. Системы защиты физической оперативной памяти строятся по различным принципам, отвечающим возможностям размещения про­ грамм, допустимым затратам машинного времени и дополнитель­ ной аппаратуры, а также методам организации вычислительного процесса. Наибольшее распространение получили системы с за­ щитой памяти по кодам признаков, или маскам, и по ключам.

С и с т е м ы з а щ и т ы по м а с к а м

Способ защиты памяти, именуемый защитой по маскам, ис­ пользуется при страничной организации ОЗУ, причем физические страницы могут совпадать с конструктивными блоками ОЗУ. При реализации этого способа всегда выделяются номера страниц как старшие разряды кодов адресов. Используя введенные при фор­ мировании соотношения (10.5) обозначения, получаем, что раз­ рядность номера страницы Ыф.с равна величине d.

Для обеспечения доступа каждой рабочей программы только к выделенным физическим страницам управляющая программа в процессе распределения памяти и обмена страницами формирует специальные коды. Эти. коды называются кодами масок защиты памяти или кодами признаков физических страниц; для каждой рабочей программы формируется отдельный код маски. Разряд­ ность кода маски отвечает количеству физических страниц опера­

тивной памяти

и равно ему. Если

/-й разряд кода

маски (/ = 0, 1,

2, ..., Кф— 1)

содержит единицу,

то это означает,

что выполняе­

мой программе разрешен доступ к /-й странице; если же /-Й раз­ ряд кода маски содержит нуль, то доступ к }-й странице запрещен. Код маски всегда имеет столько единиц, сколько физических стра­ ниц выделено для данной рабочей программы.

Схема аппаратной части системы защиты памяти по маскам приведена на рис. 10.4, где кроме собственно блока защиты БЗ обозначены отдельные узлы оперативного запоминающего устрой­

324


ства, включая его блок управления БУ ОЗУ. Регистр адреса РгА условно разделен на две части, фиксирующие младшие и старшие разряды кода адреса, т. е. Уф.с и -Ас.с соответственно. Старшие разряды кода адреса, обозначающие номер физической страницы, подаются для анализа в блок защиты.

Собственно блок защиты состоит из регистра маски РгМ, де­ шифратора номера страницы ДшНС и ряда логических элементов. Логические элементы И, количество которых равно разрядности регистра маски, и элемент ИЛИ служат для формирования сигна­ ла г разрешения обращения к памяти. Если г = 0, то за счет ис­ пользования в схеме элемента НЕ обеспечивается формирование сигнала нарушения границ q, по которому осуществляется запрос на прерывание выполняемой программы.

I

Рис. 10.4. Схема защиты памяти по маскам

Пусть Кф= 16 и в регистре РгМ зафиксирован код 0101100000000110. Тогда при поступлении в РгА кода адреса 0001 1 ... 01 обращение к оперативной памяти возможно. Дейст­ вительно, в этом случае код Уф.с, подаваемый на входы ДшНС, обеспечит возбуждение выхода 1 дешифратора. Так как в первом разряде (счет разрядов начинается с нуля) содержится единица, то на выходе соответствующего элемента И формируется сигнал разрешения обращения к памяти. Аналогично будет протекать ра­ бота схемы при поступлении в РгА кодов 1110 0 ... 11, 1100 1 ... 00, 10110 ... 10, 0010 0 ... 01 ит. п. Иначе говоря, для всех кодов адре­ сов, четыре старших разряда которых, дающие номера страниц Уф.с, содержат комбинации 0001, 0010, 1011, 1100, 1110, обращение к памяти возможно.

В рассматриваемом случае для выполняемой программы выде­ лены страницы с N1 с = 1, с= 2 , N * c = 11, N ^ = 12 и с=

325

= 14. Если же в процессе реализации данной программы один из

кодов

адресов будет содержать номер

запрещенной

для обра­

щения

страницы, например

с Мф.с = 5,

то

произойдет

следующее.

В регистре РгА фиксируется

код 0101

0

... 10, по которому воз­

буждается выход 5 дешифратора. Так как пятый разряд РгМ со­ держит код нуля, то на выходе соответствующего элемента И формируется значение г = 0, а на выходе элемента НЕ — значение <7=1. Обращение к памяти не осуществляется; происходит преры­ вание выполнения данной рабочей программы.

С и с т е м ы з а щ и т ы по к л ю ч а м

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

Защита памяти по ключам организуется, как правило, при стра­ ничной организации памяти; в большинстве случаев полагается, что / ( ф < П 6 . При распределении памяти или перед активизацией данной рабочей программы каждой физической странице опера­

тивной

памяти ставится

в соответствие

вполне определенный

ключ;

разрядность

ключа

равна d.

Если,

например,

/Сф =16, то

с?=4, и ключи выражаются кодами 0000, 0001, 0010, ...,

1111. Сле­

дует

подчеркнуть,

что

каждой

физической странице может

отвечать любой ключ из возможных; более того, один и тот же ключ может «придаваться» нескольким физическим стра­ ницам.

В процессе распределения памяти каждой рабочей программе также ставится в соответствие некоторый ключ, который по своему кодовому значению входит в множество ключей, определенных для физических страниц. Ключи, относящиеся к страницам ОЗУ, на­ зывают ключами страниц, а ключи, относящиеся к программам,— ключами защиты памяти. При каждом обращении к ОЗУ сравни­ ваются ключ страницы с ключом защиты памяти, присвоенным данной выполняемой программе. Если ключи совпадают, то об­ ращение к памяти разрешается; в противном случае обращение за­ прещается и формируется сигнал запроса на прерывание выпол­ няемой программы. Для увеличения гибкости системы защиты по ключам дополнительно принимается следующее. Ключ 0 (0...00) считается сравнимым со всеми остальными возможными ключами; это означает, что программа с ключом 0 имеет доступ ко всем

326


страницам оперативной памяти, а страница с ключом 0 доступна для всех выполняемых программ; ключ 0 обычно присваивается основным управляющим программам.

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

Организация защиты памяти по ключам иллюстрируется схе­

мой рис.

10.5.

На этой схеме выделены основные элементы и узлы

блока защиты

БЗ

и отдельные узлы оперативного запоминающего

 

Дш А

 

 

Я

 

Код КЗП

 

 

 

БЗ

А

1

 

 

?

t** • !

 

 

 

 

 

в г

 

 

Рг кзп

 

 

 

 

 

 

 

 

Т Ч

\

■ • •

*

 

 

 

 

 

N/pc

 

Асе

РгА

 

 

уск,

 

 

 

 

 

 

 

 

 

 

 

 

т

т

Е Ш

 

 

 

 

 

 

УСК 2

 

 

 

 

 

 

т

 

РгКС

 

 

 

 

 

 

I

тт

 

 

 

 

t Т Т

 

 

 

 

 

 

 

ОЗУ

РгНС

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ОЗУ (СОЗУ)

 

 

 

 

 

 

 

 

КС

 

 

 

 

 

 

 

 

4

4

4.

 

 

 

 

 

 

 

ввоТкс

 

 

 

 

Рис. 10.5. Схема защиты памяти по ключам

 

 

устройства.

Ключи страниц,

определяемые

для

каждой

рабочей

программы в процессе распределения памяти, вводятся перед активизацией данной программы в специальную память ключей. Эта память обычно представляет собой либо отдельное ОЗУ с ем­ костью, равной Кф, либо регистровое сверхоперативное запоминаю­ щее устройство СОЗУ той же емкости.

Для схемы рис. 10.5 принято, что /Сф =16 и d = 4; поэтому ем­ кость ОЗУ (СОЗУ) ключей ДОЗУ = 16. Кроме памяти ключей

страниц, т, е. ОЗУ КС или СОЗУ КС, в состав блока защиты вхо­

327


дят: дешифратор номеров страниц ДшНС, регистр номера стра­ ницы РгНС, регистр ключа страницы РгКС (если используется регистровое СОЗУ КС, то этот регистр в состав блока защиты может не включаться), регистр ключа защиты памяти РгКЗП, узел сравнения кодов ключей УСКь узел сравнения кодов номеров страниц УСКг; кроме того, на схеме выделен элемент НЕ, назначе­ ние которого то же, что и в схеме рис. 10.4.

Регистр адреса РгА оперативного запоминающего устройства условно разделен на две части, служащие для размещения кода номера физической страницы Nф.с и кода адреса слова (номера ячейки) внутри страницы Ас,с. Код номера страницы выдается из РгА в БЗ через группу вентилей В|. Содержимое РгА передается на дешифратор адреса ДшА оперативного ЗУ через группу вен­ тилей В2.

Узлы сравнения кодов, используемые в рассматриваемой схе­ ме, различны не только по выполняемым функциям, но и по прин­ ципам работы. УСК1 предназначен для формирования сигнала г разрешения обращения к памяти. Так как ключ 0 имеет особое значение, то УСК1 формирует сигнал г не только при совпадении сравниваемых ключей, находящихся в РгКС и РгКЗП, но и при равенстве нулю одного из сравниваемых ключей. УСКг выполняет в смысле защиты памяти второстепенные функции; но они обеспе­ чивают повышение производительности системы оперативной па­ мяти за счет уменьшения среднего времени ожидания разрешения на обращение. В УСКг сравниваются коды, находящиеся в стар­ ших разрядах РгА и в РгНС. Сигнал р, по которому производится передача кода номера страницы из РгА на ДшНС, формируется УСКг только при несовпадении сравниваемых кодов. Очевидно, что при обращении к одной и той же странице информация в ре­ гистрах БЗ не изменяется.

Функционирование рассматриваемой схемы отвечает общим принципам защиты памяти по ключам. К началу выполнения про­ граммы ее ключ введен в РгКЗП, а ключи страниц — в ОЗУ КС. При обращении к оперативной памяти в процессе выполнения про­ граммы всегда осуществляется анализ ключей КС и КЗП. Пусть содержимое РгНС не совпадает с кодом номера страницы, введен­ ным при данном обращении к памяти в РгА. Тогда УСКг форми­ рует сигнал р, и код номера страницы подается из РгА как в РгНС, так и на дешифратор ДшНС. Этот дешифратор обеспечи­ вает выборку из ОЗУ КС ключа страницы и засылку его в РгКС. Если ключ страницы совпадает с ключом защиты памяти или один из них равен нулю, то УСК1 формирует сигнал г; обращение к памяти разрешается. В противном случае формируется сигнал q как сигнал запроса на прерывание.

При последовательных обращениях к ячейкам одной страницы оперативной памяти объем действий, выполняемых в блоке защи­ ты, значительно сокращается. Действительно, в этом случае на УСКг подаются одинаковые коды, и сигнал р не формируется. По­ скольку в РгКС сохраняется ключ данной страницы, поступивший

328