Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.pdf

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

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

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

Добавлен: 09.04.2024

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

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

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

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

ствующей в обмене.

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

11-2. А П П АРАТН Ы Е С Р ЕД С ТВ А М УЛЬТИПРОГРАМ М НОЙ СИСТЕМ Ы

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

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

Прерывание программ. Мультипрограммные системы должны обладать развитой системой прерывания. Часть функций, которые должна выполнять система прерыва­ ния при мультипрограммной работе, свойственна и обыч­ ным однопрограммным системам: обеспечение парал­ лельной работы периферийных устройств и процессора, синхронизация работы вычислительной системы с внеш­ ними по отношению к ней устройствами, например ме­ ханизмами управляемого объекта и др. Некоторые дру­ гие функции являются специфическими для мульти­ программного режима. Рассмотрим, например, вопрос об обнаружении ошибок, допущенных программистом при составлении или прогоне программы. Если в однопро­ граммной машине произошло обращение к памяти по несуществующему в данном комплекте машины адресу,

574


то машина остановится и программист может понять Си­ туацию по показаниям индикаторов пульта.

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

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

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

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

рывания, которые должны воздействовать только на ка­ кую-либо одну целевую программу (например, перепол­ нение при сложении), при маскировании должны игнорироваться. В противном случае они могут нарушить работу другой целевой программы, если в последней маска для данного прерывания снята.

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

В мультипрограммных системах размещение всех це­ левых программ полностью в ОЗУ во многих случаях

I 675


невыполнимо: программы часто имеют большую длину, а объемы существующих запоминающих устройств на сердечниках ограничены. Следует учитывать также, что в памяти должны постоянно располагаться значитель­ ная часть супервизора и некоторые часто используемые стандартные программы. Однако нет принципиальной необходимости в том, чтобы вся целевая программа на­ ходилась в ОЗУ, так как в любой момент времени рабо­ та программы концентрируется на определенных сравни­ тельно небольших участках. Таким образом, в ОЗУ сле­ дует хранить только активные части разных целевых программ, а их неработающие в данный период части могут располагаться в ВЗУ. При переключениях про­ грамм может понадобиться отсылка какой-либо части неактивной в данный период программы в ВЗУ для раз­ мещения на ее месте части другой программы, становя­ щейся активной. При восстановлении первоначальной программы для следующего периода активности супер­ визор может поставить ее на другой участок памяти.

Из сказанного следует, что, во-первых, мультипро­ граммная система с супервизорным управлением долж­ на иметь внешнюю память достаточно большого объема и со сравнительно быстрым доступом и, во-вторых, целе­ вые программы не могут быть привязаны к определенным адресам оперативной памяти. Программируя целевую программу, пользователь не знает, в комбинации с каки­ ми другими программами будет выполняться его про­ грамма, какое место в памяти отведет ей супервизор и как будет распределяться его информация между ОЗУ и ВЗУ.

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

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

S76


программе ставится в соответствие свое базовое число (базовый адрес), устанавливаемое супервизором. При всех обращениях к памяти за командами либо данными базовое число прибавляется к условному адресу, опреде­ ленному целевой программой, образуя истинный адрес памяти. Таким образом, если программа составлена в ус­ ловных адресах от 0 до 1000, то, установив базовое чис­ ло равным а, мы, не перерабатывая программу, можем поместить ее и заставить работать в области памяти с адресами от а до а+ 1 000. В аппаратуру машины требу­ ется ввести базовый регистр и суммирующие схемы, осу­ ществляющие данную операцию. Работа супервизора за­ ключается в нахождении места в памяти для целевой программы и установке соответствующего ей числа в ба­ зовый регистр — эти операции должны производиться не при каждом обращении целевой программы в память, а только при переключении активности программ. Раз­ работаны и другие более гибкие методы динамического распределения памяти, в частности один из них — стра­ ничная организация памяти, будет рассмотрен отдельно

(§ П-4).

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

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

37—333

577


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

Лреры8ание} переход к супервизору

Ламять

I

«У

Р е ги с т р н и ж ­ Р а зр е ш е ­

 

ч

н е й гр а н и ц ь р

н и е

 

ч

 

о б р а щ е ­

 

 

н и я

 

 

 

Р а з р е ш е н ­

 

г-раницы^ ь....

 

 

 

н а я о б л а ст ь

 

 

п а м я т и

ч

Р е ги с т в е р х н е й ^

 

а+Л'

 

 

 

 

 

 

 

 

Л р е р ь / д а н и е ,

 

 

 

п е р е х о д к

 

 

 

су п ер ви зор у

 

Рис. 11-3. Защита памяти с помощью граничных регистров.

программа-супервизор

и, следовательно, выйдет из

строя вся система.

Защита от вторжения программ в чужие области па­ мяти может быть осуществлена различными путями.

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

578