Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Дроздов Е.А. Многопрограммные цифровые вычислительные машины

.pdf
Скачиваний:
22
Добавлен:
25.10.2023
Размер:
15.96 Mб
Скачать

любого адреса при обращении к СОЗУ в процессе выполнения данной рабочей программы. Вторая часть кода адреса для обра­ щения к СОЗУ, хранящего данные страничной таблицы, составляет номер математической страницы Ум.с, вводимый из РгК в РгА|. В ячейках СОЗУ записаны номера физических страниц, поэтому при обращении к сверхоперативной памяти из нее как бы извле­ кается значение Уф.с, которое через выходные собирательные схе­ мы передается в Ргд-/ ■Выходной регистр в СОЗУ не показан, так

как считается, что это ЗУ выполнено на триггерных регистрах.

 

 

 

 

 

Г "

 

 

 

 

 

 

 

РгНП

ОЗУ

 

 

 

 

СОЗУ

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

из

ОЗУ КС

при первом обращении к одной

из

ячеек страницы,

то

сигнал г

формируется без потерь времени

на

выборку КС из

памяти ключей.

 

 

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

Соседние файлы в папке книги из ГПНТБ