
книги из ГПНТБ / Дроздов Е.А. Многопрограммные цифровые вычислительные машины
.pdfлюбого адреса при обращении к СОЗУ в процессе выполнения данной рабочей программы. Вторая часть кода адреса для обра щения к СОЗУ, хранящего данные страничной таблицы, составляет номер математической страницы Ум.с, вводимый из РгК в РгА|. В ячейках СОЗУ записаны номера физических страниц, поэтому при обращении к сверхоперативной памяти из нее как бы извле кается значение Уф.с, которое через выходные собирательные схе мы передается в Ргд-/ ■Выходной регистр в СОЗУ не показан, так
как считается, что это ЗУ выполнено на триггерных регистрах.
|
|
|
|
|
Г " |
|
|
|
|
|
|
|
РгНП |
ОЗУ |
|
|
|
|
СОЗУ |
1 |
|
|
|
|
|
|
|
1 |
|
|
/024 |
|
|
|
|
г |
|
|
|
-ч: |
|
|
• |
• Сб 'фс |
|
|
|
• |
3 |
• |
3 |
|
|||
о. |
• |
■ч |
• |
* |
• |
|
1 |
|
• |
|
|
||||
|
|
|
|
16 |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 Лес |
|
• |
|
|
|
|
|
OJ |
• |
|
РгК |
|
ко |
^мс |
|
Ксс |
3 |
• |
|
|
4 |
|
||||
|
|
|
. |
|
|
|
/024 |
|
|
|
|
|
|
|
|
|
|
|
Рис. |
10.3. Схема преобразования страниц |
|
В регистр РгАг' из РгК вводится адрес Лс.с, поэтому дешифра
тор Дш2" обеспечивает выборку необходимого слова из любого блока ОЗУ. Обращение к требуемому блоку обеспечивается де шифратором Дш2' совместно со схемой коммутации блоков СхК. Отметим, что схема рис. 10.3 может быть дополнена узлами и це пями, обеспечивающими смену информации в PrAi и РгАг' толь
ко при переходах от одной математической страницы к другой и от реализации данной рабочей программы к реализации после дующей рабочей программы. Это в конечном итоге сокращает вре мя общего цикла обращения к оперативной памяти.
Обмен информацией между внешней и оперативной памятью осуществляется постранично. Страница из внешней памяти вы зывается для размещения Екр машинных слов в оперативной па мяти, как правило, тогда, когда при преобразовании очередного математического адреса устанавливается, что требуемая страница не записана в ОЗУ. Пересылка требуемой страницы в ОЗУ воз
320
можна только в том случае, когда хотя бы одна физическая стра ница оперативной памяти свободна. Если же оперативная память на момент вызова страницы из внешней памяти полностью за полнена информацией, то необходимо решать вопрос о выборе мас сива информации, отсылаемого во внешнюю память для освобо ждения группы ячеек, т. е. страницы, ОЗУ.
Страницу, удаляемую из ОЗУ при обмене, необходимо выби рать так, чтобы минимизировать количество обменов между опе ративной и внешней памятью и время, затрачиваемое на выявле ние наиболее подходящей страницы—-кандидата на удаление из ОЗУ. Поэтому за основу стратегии обмена принимается положе ние об удалении из ОЗУ той страницы, обращение к которой при дальнейшей реализации соответствующей рабочей программы про изойдет позже, чем в любой другой странице, располагающейся в момент обмена в ОЗУ. Непосредственная реализация указанного положения затруднена, так как управляющая программа может оперировать только теми данными, которые были накоплены в процессе реализации рабочих программ до момента обмена стра ницами. Поскольку время, затрачиваемое на выявление кандидата для удаления из ОЗУ, должно минимизироваться, то конкретные правила удаления страниц упрощают, а объем накапливаемой ин формации по использованию страниц уменьшают. При установле нии правил обмена учитываются также общие характеристики уз лов и устройств конкретной многопрограммной ЦВАЙ.
Для учета характеристик использования страниц одна из под программ управляющей программы в процессе решения задач формирует в соответствующем участке оперативной памяти таб лицу использования страниц. Каждая страница, т. е. некоторый массив информации, может характеризоваться, например, значе ниями периодов ее неиспользования [41]. Тогда в таблице исполь зования страниц помещаются такие данные:
T2j— длительность предыдущего, т. е. до последнего использова ния, периода, в течение которого /-я страница не исполь зовалась; сюда лее включается время нахождения стра ницы во внешней памяти;
TXj — длительность периода неиспользования /-й страницы к моменту данного обмена страницами.
При каждом обмене страницами всегда осуществляется преры вание процесса решения задач. Поэтому значения Т2}- и Т1;- могут выражаться количеством прерываний с момента последнего ис пользования /-й страницы.
Если в таблице использования для всех страниц имеются зна чения Т2 и Г], то подпрограмма выявления кандидата на удале ние из оперативной памяти мол<ет строиться в соответствии со следующими правилами:
— из оперативной памяти удаляется страница Sj, для которой величина T2j — 7'1;- отрицательна и имеет наибольшее значение по модулю; это правило отвечает удалению страницы, которая к дан ному обмену оставалась в ОЗУ неиспользованной дольше, чем она
321
оставалась в бездействии последний раз, среди всех остальных страниц;
—• если нет страниц с T2j — Ги<0, то удаляется страница, для которой Tij=£ 0 и T2j — Ти имеет наибольшее значение; это пра вило отвечает удалению страницы, для которой ожидаемый момент использования наступает позже, чем для остальных страниц;
— если для всех страниц Ти = 0, то удаляется страница, для которой Т2j имеет наибольшее значение; это правило отвечает уда лению страницы, которая имеет тенденцию дольше остальных оста ваться неиспользуемой.
С е г м е н т а ц и я п р о г р а м м и п а м я т и
Страничная организация памяти в основном осуществляется для уменьшения количества обменов между оперативными и внеш ними ЗУ, обеспечивая в то же время определенные удобства для пользователей, реализующих свои программы на многопрограмм ных ЦВМ. Ее характерной особенностью является то, что поль зователь может и не знать конкретные принципы распределения и организации памяти, имея в своем распоряжении определенную совокупность ячеек с последовательными номерами. В ряде слу чаев рабочие программы, составляемые пользователями, имеют сложную структуру и состоят из нескольких слабо связанных ме жду собой частей—-главной ветви программы, набора стандарт ных подпрограмм, нескольких массивов данных и т. п. Причем длина массивов слов по каждой части заранее может быть неиз вестной.
При составлении таких программ целесообразно, чтобы каж дый массив занимал отдельную совокупность ячеек, пронумеро ванных начиная с нуля. Рассмотренные выше принципы странич ной организации памяти, главным образом математической, таких возможностей не предоставляют. Поэтому в ряде многопрограмм ных ЦВМ нашел применение принцип сегментации программ и математической памяти, представляющий собой дальнейшее раз витие принципов страничной организации памяти.
Сегментация математической -памяти заключается в разделе нии всех имеющихся математических страниц на группы-сегменты с независимой адресацией слов внутри каждой части; в границах каждого сегмента математические страницы могут относиться как к оперативной, так и к внешней памяти. При программировании каждая часть сложной программы размещается в отдельном сег менте математической памяти; адрес любого слова теперь состоит из трех частей: номера сегмента, номера страницы и адреса слова внутри страницы. Программа в этом случае оказывается раз битой на сегменты, сегменты делятся на страницы и страницы —
на слова.
Для осуществления переходов от математических адресов к физическим в многопрограммных ЦВМ с сегментной организацией
322
памяти управляющая программа в процессе ввода рабочих про грамм и распределения памяти формирует кроме страничных таб лиц еще сегментные таблицы и программную таблицу. Программ ная таблица указывает, какая сегментная таблица относится к дан ной рабочей программе. Каждая сегментная таблица указывает, к какой страничной таблице необходимо обратиться по заданному номеру сегмента. В процессе преобразования математического адреса в физический сначала происходит обращение к программ ной таблице, затем к сегментной таблице и, наконец, к странич
ной |
таблице. Общая |
схема преобразования аналогична |
схеме |
рис. |
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
из |
ОЗУ КС |
при первом обращении к одной |
из |
ячеек страницы, |
то |
сигнал г |
формируется без потерь времени |
на |
выборку КС из |
памяти ключей. |
|
|
После выполнения текущей программы все регистры блока защиты устанавливаются в состояние нуля, а ячейки ОЗУ КС очи щаются. Эти же действия осуществляются и при прерывании вы полнения программы; стираемая в узлах блока защиты инфор мация при этом не запоминается, так как все ключи хранятся в ос новной памяти машины до окончания выполнения соответствую щих программ.