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