необходимую последовательность операций ввода-выво да, проверку ненормальных ситуаций в периферийных устройствах и т. п. Это в общем несколько снижает про изводительность системы и приводит к удорожанию периферийных устройств. Поэтому объединенный интер фейс получил распространение главным образом в ма лых машинах (мини-ЦВМ), где объем периферийного оборудования невелик и невысоки требования к общей производительности системы. В то же время унифика ция всех связей между устройствами дает определенные преимущества, позволяя при программировании адресо вать и обрабатывать информацию в регистрах перифе рийных устройств так же, как и в ячейках ОЗУ.
Рассмотрим основные особенности объединенного ин терфейса на примере системы связи Unibus, приме ненной в малой машине PDP-11. Упрощенная структур ная схема объединенного интерфейса приведена на рис. 10-23. Тонкими линиями на рисунке изображены одиночные шины, жирными — группы шин.
Шины интерфейса проходят через процессор, модули ОЗУ и периферийные устройства. Большинство шин яв ляется двунаправленными, т. е. по одной и той же шипе сигнал может поступать в устройство и выходить из него. На рисунке показано в качестве примера, что в процес соре к двунаправленной шине присоединены как вход ной усилитель, принимающий сигналы из интерфейса, так и выходной формирователь, посылающий сигнал в другие устройства.
В каждый момент времени одно из устройств, присо единенных к интерфейсу, выступает в роли ведущего устройства, и одно из устройств играет роль исполни тельного устройства. Все устройства, кроме модулей ОЗУ, могут выступать в качестве ведущих. Модули ОЗУ могут быть только исполнительными устройствами. Ведущее устройство получает интерфейс в свое распоря жение на определенный промежуток времени.
Роли устройств в интерфейсе в процессе работы ма шины непрерывно меняются. Устройства, обнаружив шие необходимость передачи информации, соревнуются за право получения магистралей интерфейса и пооче редно могут становиться ведущими или исполнитель ными устройствами. Например, при выборке операн да из памяти процессор является ведущим устройством и организует связь с модулем ОЗУ. Во время получения
сигнала прерывания процессор является исполнительным
устройством, |
а ведущим — периферийное |
устройство |
(источник прерывания). |
|
разделить |
Шины объединенного интерфейса можно |
на две группы: шины, предназначенные |
для |
передачи |
информации |
(данных, адресов, приказов |
и т. |
п.), и ши |
ны, обеспечивающие выбор ведущего устройства.
Для передачи информации используются следующие шины:
а) набор шин данных, по которым между ведущим и исполнительным устройствами передаются данные параллельным кодом (например, параллельно переда ется 16-разрядное слово);
б) набор шин адреса, на которых ведущее устройст во устанавливает код адреса, выбирая тем самым испол нительное устройство. Система адресации в PDP-11 строится таким образом, что старшие 4 096 адресов от носятся не к ячейкам памяти, а к регистрам периферий ных устройств. Таким образом, адресные шины интер фейса обеспечивают ведущему устройству возможность
обращения как к модулям ОЗУ, так и |
к |
любым |
пери |
ферийным устройствам системы. Точно |
так же |
любое |
периферийное устройство, став ведущим, |
может |
обра |
щаться, минуя процессор, к любому модулю ОЗУ или любому другому периферийному устройству. Последнее свойство позволяет организовать в объединенном ин терфейсе автономный обмен информации между двумя периферийными устройствами (например, перепись ин формации на разные носители), не привлекая для этой работы процессор;
в) набор шин управления для передачи сигналов, определяющих вид операции и направление движения информации, а также синхронизирующих передачу. Для
синхронизации используются |
два сигнала — |
синхро |
импульс ведущего устройства |
и синхроимпульс |
испол |
нительного устройства. Эта пара сигналов обеспечива ет передачу параллельных кодов по шинам интерфейса, используя метод передачи с квитированием.
Выбор ведущего устройства производится на основе сравнения приоритетов, присвоенных устройствам. Когда от периферийных устройств нет запросов на за нятие интерфейса, ведущим устройством является про цессор, регулярно связывающийся с ОЗУ для получения команд и операндов. Процессор при выполнении разных
программ может иметь различный приоритет, устанав* ливаемый в слове состояния при пуске программы.
Периферийное устройство при необходимости занять интерфейс посылает сигнал по одной из шин запроса (на рис. 10-23 для простоты показано только 3 шины запроса, хотя в реальных системах их может быть больше).
Каждой шине запроса соответствует свое значение приоритета. В зависимости от типа и технических ха рактеристик устройства или от важности предстоящей операции ввода-вывода устройства используют шины запроса с разными приоритетами. На одну шину запро са могут поступать (по схеме ИЛИ) сигналы от несколь ких устройств; в этом случае приоритет между ними определяется порядком присоединения их к интерфейсу.
Процессор игнорирует запросы от шин с приорите тами, меньшими, чем текущий приоритет процессора. При поступлении запроса с более высоким приоритетом процессор начинает процедуру передачи управления интерфейсом запросившему устройству (рассматриваеемая дисциплина обслуживания подобна методу «псев донумерации», см. § 8-3).
В ответ на принятый запрос процессор посылает сигнал по соответствующей данному запросу шине раз решения. Шины разрешения отличаются от всех других шин интерфейса тем, что являются однонаправленными и последовательно обходят все периферийные устройст ва системы (подобно шине ВБР-К в интерфейсе пери ферийных устройств, см. выше § 10-5).
Первое из устройств на пути распространения сигна ла разрешения, пославшее ранее запрос соответствую щего приоритета, прекращает распространение сигнала разрешения и становится кандидатом в ведущие уст ройства.
Это устройство фактически станет ведущим устрой ством после того, как получит от старого ведущего устройства сигнал об освобождении им интерфейса. Таким образом, процедура выбора следующего ведуще го устройства совмещается во времени с работой пред шествующего ведущего устройства.
Г л а в а о д и н н а д ц а т а я
МУЛЬТИПРОГРАММНЫЕ И МНОГОПРОЦЕССОРНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ
СИСТЕМЫ. СИСТЕМЫ С РАСПРЕДЕЛЕНИЕМ ВРЕМЕНИ
1 1 - 1 . О С Н О В Н Ы Е П О Н Я Т И Я и К Л А С С И Ф И К А Ц И Я
Развитие вычислительной техники за последнее деся тилетие привело, с одной стороны, к повышению быстро действия и логических возможностей машин, а с дру гой — к увеличению их сложности и стоимости. Перед конструкторами вычислительных систем возникла новая проблема— обеспечить эффективное использование до рогостоящих вычислительных средств.
Прежде всего это относится к ликвидации возможных простоев оборудования системы. Одна из главных при чин простоев заключается в несоответствии скоростей работы процессора и периферийных устройств, поэтому усилия конструкторов были направлены в первую оче редь на обеспечение параллельной работы нескольких периферийных устройств, а также периферийных уст ройств и процессора. Однако простои возможны и при совмещении во времени операций ввода-вывода с обра боткой данных. Это произойдет, если, например, процес сор не может продолжать работу, пока не будут введе ны в систему новые данные. Неразумно требовать от программиста, чтобы он предвидел необходимость вво да информации заранее и предусмотрел ввод с соответ ствующим опережением во времени; во многих случаях это явилось бы для него непосильной задачей.
Существуют и другие причины, приводящие к поте рям машинного времени. Рассмотрим, например, вычис лительную машину, управляющую технологическим про цессом в реальном масштабе времени. Часто в подоб ных системах пуск программ управления производится по сигналам времени или сигналам из управляемого объекта, воздействующим на машину через систему пре рывания программ. Выполнив программу управления, машина останавливается в ожидании очередного запро са прерывания. Очевидно, что машина должна успевать за период между запросами выполнять даже наиболее длинную ветвь программы. Больше того, характеристи
ки машины должны быть выбраны так, чтобы и в наи худшем случае оставался надежный резерв времени. С другой стороны, очевидно также, что подобный режим работы машины приведет к существенному недоисполь зованию вычислительного оборудования.
Простои возникают при отладке новых программ на вычислительной машине. Во время поиска ошибок, допу щенных при программировании, выполнение сравнитель но коротких кусков программы чередуется с паузами, затрачиваемыми человеком на обдумывание, набор дан ных на пульте, внесение исправлений в текст програм мы и другие ручные операции.
В рассмотренных выше примерах простои оборудо вания принципиально связаны с тем, что на машине од новременно выполняется только одна задача; нет воз можности загрузить машину полезной работой в пери оды ее вынужденного бездействия. Поэтому стремление повысить эффективность использования вычислительной системы привело к разработке систем, которые могут одновременно выполнять несколько программ.
Следует уточнить, что, как и в обычных машинах, процессор, выполняющий одновременно несколько программ, работает последовательно, т. е. выполняет в данный момент времени только одну команду в порядке, предусмотренном программой. Когда мы говорим об од новременности выполнения программ, то имеем в виду, что машина после выполнения части одной задачи мо жет перейти к выполнению части другой и т. д., сохра няя возможность вернуться позднее к неоконченным за дачам и продолжать их решение. При этом моменты и очередность переключений программ должны быть выб раны так, чтобы повысить общую эффективность вычи слительной системы, хотя время, в течение которого решается каждая отдельная задача, по сравнению с од нопрограммной машиной может даже увеличиться.
Полезность такого подхода особенно хорошо видна при одновременном решении задач с различным характе ром требований к вычислительным средствам. Напри мер, математические задачи, требующие большого объ ема вычислений, обычно сильно загружают процессор и очень слабо — периферийное оборудование. С другой стороны, при обработке экономической информации ин
тенсивно |
используются периферийные |
устройства и в |
меньшей |
степени — процессор. При |
комбинировании |
Двух таких работ оборудование системы используется очень эффективно. В общем случае сочетание задач бу дет, как правило, менее удачным, но и тогда следует ожидать от системы, выполняющей одновременно не сколько программ, более высокой эффективности.
В современной литературе метод одновременного вы полнения нескольких программ на одной вычислитель ной машине, при котором не требуется окончания ни од ной из программ для пуска или продолжения любой из других программ, называется мультипрограммировани ем. Вычислительная система называется мультипрограм мной, если в ней автоматически реализуется выполнение нескольких программ методом мультипрограммирова ния. В противоположном случае вычислительная систе ма может быть названа однопрограммной.
Классификация систем по формам обслуживания.
В решении задач на вычислительной машине участвуют два объекта: машина и пользователь, т. е. лицо, которое ставит машине задачу и получает от нее результаты ре шения. Процесс решения задачи может рассматри ваться как обслуживание пользователя вычислитель ной машиной. Рассмотрим основные формы обслужи вания.
И н д и в и д у а л ь н о е п о л ь з о в а н и е . Машина полностью принадлежит одному пользователю, по край ней мере на время решения его задачи. Пользователь имеет непосредственный доступ к машине и может вво дить информацию в оперативную память машины (или выводить из нее), используя пульт управления или ап параты ввода-вывода.
П а к е т н а я о б р а б о т к а . В этом режиме потреби тели не имеют непосредственного доступа к вычисли тельной машине. Подготовленные ими задачи (програм мы) передаются персоналу, обслуживающему машину, и затем накапливаются во внешней памяти машины (на магнитных лентах, дисках и т. п.). Машина последова тельно либо по заранее составленному расписанию вы полняет накопленный пакет программ, перенося их по очередно на время исполнения в оперативную память машины.
Р а с п р е д е л е н и е в р е м е н и — форма обслужи вания, при которой возможен одновременный доступ не скольких независимых пользователей к одной вычисли тельной машине.
Одновременность доступа означает, что: 1) каждому пользователю должны быть предоставлены собственные средства связи с машиной (пульты, аппараты ввода-вы вода), с помощью которых он может обращаться к ма шине в любой, удобный для него момент времени; 2) при одновременном обращении нескольких пользователей машина должна реагировать на их запросы с задержкой времени, которая с точки зрения каждого пользователя
представляется такой же (или почти такой |
же), как |
и при индивидуальном пользовании. |
пользо |
Независимость пользователей означает, что |
ватели могут ставить перед машиной не связанные друг с другом задачи и каждый пользователь программирует свою задачу так, как будто вся машина находится пол ностью в его распоряжении.
Конечно, одновременность доступа есть иллюзия, вы текающая из факта несоответствия скоростей реакции человека и современных вычислительных машин. Задер жка в получении ответа из машины на десятые доли се кунды не ощущается человеком, машина же за это вре мя может выполнить операции, затребованные многими пользователями. Вычислительные системы с распреде лением времени иногда называют системами коллектив ного пользования или коммунальными, желая тем самым подчеркнуть, что в таких системах характер обслужива ния пользователя вычислительными средствами напоми нает обслуживание такими коммунальными системами, как телефонная связь, электроснабжение и др.
Режим индивидуального пользования является по сути дела однопрограммным. Пакетная обработка так же может осуществлться в однопрограммном режиме; в этом случае каждая новая программа заносится в опе ративную память и выполняется после окончания пре дыдущей программы. Однако вследствие наличия в ма шине нескольких программ пакетная обработка может быть организована и мультипрограммным способом, поз воляющим более эффективно использовать оборудова ние современных вычислительных систем путем одновре менного выполнения нескольких программ.
Теоретически можно представить себе реализацию режима распределения времени в однопрограммной ма шине: программа, затребованная любым пользователем, всегда выполняется до конца, в то же время быстродей ствие машины столь релико, что образующиеся задерж
ки обслуживания не ощущаются пользователем. Прак тически подобные системы трудно осуществить, и для реализации режима распределения времени используют ся мультипрограммные вычислительные системы.
Таким образом, в зависимости от формы обслужи вания пользователей различают мультипрограммные системы с пакетной обработкой и мультипрограммные системы с распределением времени.
Различие между этими двумя видами мультипро граммных систем заключается в том, что системы с рас пределением времени требуют дополнительного оборудо вания для оперативной связи пользователей с машиной и соблюдения определенных временных соотношений между моментами запросов пользователей и реакции машины на эти вопросы.
Мультипрограммные системы с распределением вре мени представляют собой наиболее совершенную форму логической организации современных вычислительных систем, поскольку они сочетают эффективное использо вание технических средств машины с предоставлением человеку удобств индивидуального использования. В по следующих параграфах данной главы мы рассмотрим особенности построения именно этого вида вычислитель ных машин и, употребляя термин «мультипрограммные системы», будем, как правило, иметь в виду мультипро граммные системы с распределением времени.
Классификация мультипрограммных систем в зави симости от используемых средств. Любая машина с хра нимой программой могла бы быть использована для мультипрограммной работы. Однако затраты машинно го времени на организацию мультипрограммной работы и неудобства эксплуатации такой системы могут быть столь значительными, что эффективность такого режи ма будет ниже однопрограммного.
Для получения высокой эффективности мультипро граммной работы необходимы специальные аппаратные и программные средства, и в зависимости от степени
|
|
|
|
|
|
|
|
вооруженности |
этими |
средствами могут существо |
вать |
различные виды |
мультипрограммных |
систем |
(рис. 11-1). |
|
|
|
|
|
|
С и с т е м ы |
с п р е д в а р и т е л ь н ы м |
( или |
р у ч |
ным) |
п л а н и р о в а н и е м |
являются простейшей |
фор |
мой мультипрограммных |
систем и предполагают наличие |
программиста-распорядителя, |
которому |
заранее |
из- |
üectH bt перечень и характеристики задач, предназначен^ ных к выполнению в мультипрограммном режиме. Рас порядитель отводит каждой задаче место в памяти, рас пределяет периферийные устройства и устанавливает алгоритмы смены программ, основываясь на своих сооб ражениях об оптимальном решении данного набора за дач. После этого каждый отдельный пользователь ма шины может приступить к программированию своей за дачи, руководствуясь указани
|
|
|
|
|
|
|
ями распорядителя. |
|
|
Подобные |
системы исполь |
|
зуются в задачах комплексной |
|
автоматизации |
производствен |
|
ных процессов, |
характеризую |
|
щихся |
параллельной |
работой |
|
многих механизмов, каждый из |
|
которых управляется своей соб |
|
ственной программой. Сущест |
|
венным |
требованием |
к аппа |
|
ратной части системы является |
|
наличие |
свойства |
прерывания, |
|
обеспечивающего |
переключе |
Рис. 11-1. Классификация |
ние программ в соответствии с |
мого объекта. |
|
|
|
|
текущим состоянием управляе |
мультипрограммных систем. |
Системы |
с |
предваритель |
ным планированием (иногда их называют системами с «чистым программированием») обладают двумя серьез ными недостатками: во-первых, организация мультипро граммной работы представляет собой весьма сложную задачу программирования, почти целиком ложащуюся на плечи потребителя; во-вторых, система является узко спе циализированной для данного набора задач; изменение состава задач, даже введение одной новой программы, может потребовать полной переделки уже разработанной системы.
Поэтому в современной вычислительной технике на шли распространение мультипрограммные системы дру гого класса, получившие название систем с автоматиче ским планированием. Основная цель создания таких си стем — освободить пользователей от всяких забот об организации мультипрограммной работы. Распределе ние машинного времени, места в памяти, периферийных устройств между независимыми пользователями произ