üectH bt перечень и характеристики задач, предназначен^ ных к выполнению в мультипрограммном режиме. Рас порядитель отводит каждой задаче место в памяти, рас пределяет периферийные устройства и устанавливает алгоритмы смены программ, основываясь на своих сооб ражениях об оптимальном решении данного набора за дач. После этого каждый отдельный пользователь ма шины может приступить к программированию своей за дачи, руководствуясь указани
|
|
|
|
|
|
|
ями распорядителя. |
|
|
Подобные |
системы исполь |
|
зуются в задачах комплексной |
|
автоматизации |
производствен |
|
ных процессов, |
характеризую |
|
щихся |
параллельной |
работой |
|
многих механизмов, каждый из |
|
которых управляется своей соб |
|
ственной программой. Сущест |
|
венным |
требованием |
к аппа |
|
ратной части системы является |
|
наличие |
свойства |
прерывания, |
|
обеспечивающего |
переключе |
Рис. 11-1. Классификация |
ние программ в соответствии с |
мого объекта. |
|
|
|
|
текущим состоянием управляе |
мультипрограммных систем. |
Системы |
с |
предваритель |
ным планированием (иногда их называют системами с «чистым программированием») обладают двумя серьез ными недостатками: во-первых, организация мультипро граммной работы представляет собой весьма сложную задачу программирования, почти целиком ложащуюся на плечи потребителя; во-вторых, система является узко спе циализированной для данного набора задач; изменение состава задач, даже введение одной новой программы, может потребовать полной переделки уже разработанной системы.
Поэтому в современной вычислительной технике на шли распространение мультипрограммные системы дру гого класса, получившие название систем с автоматиче ским планированием. Основная цель создания таких си стем — освободить пользователей от всяких забот об организации мультипрограммной работы. Распределе ние машинного времени, места в памяти, периферийных устройств между независимыми пользователями произ
водится средствами самой вычислительной системы, в достаточной степени универсальными для произволь ных комбинаций одновременно решаемых задач.
Различают два вида систем с автоматическим плани рованием: аппаратные и аппаратно-программные систе мы. В первых из них функции организации мультипро-
Рис. 11-2. Блок-схема машины с аппаратным распределением вре мени.
граммного процесса выполняются встроенной в машину специально для этих целей аппаратурой. Хотя имеются определенные преимущества, связанные с быстродейст вием аппаратуры управления мультипрограммным про цессом, негибкость чисто аппаратных средств (фиксиро ванное распределение времени и места, примитивность алгоритма чередования программ и др.) ограничивают их применение рамками малых систем. Известен пример малой машины, использующей память на магнитострикционных линиях задержки и осуществляющей режим распределения времени исключительно с помощью ап паратуры. Упрощенная структурная схема машины при ведена на рис. 11-2. Полный цикл обращения к памяти
Т, равный времени прохождения информации через ли нию задержки, разделяется на N равных периодов, каж дый из которых отводится одному пользователю. Адрес ный счетчик, указывающий номер слова, проходящего в данный момент через усилители считывания, на каж дом из N периодов ведет отсчет адресов от нуля. Таким образом, каждый пользователь получает в каждом цик ле машинное время T/N и объем памяти Q/N (где Q — полная емкость главной памяти), недоступные другим пользователям.
Так как при смене программ текущая операция мо жет быть прервана на любой ее фазе, необходимо запо минать состояние всех регистров и управляющих тригге ров процессора с тем, чтобы восстановить их, когда в следующий раз наступит период работы данной про граммы. Для этого используются вспомогательная ли ния задержки и сдвигающий регистр, являющийся как бы продолжением этой линии задержки. Длина сдвига ющего регистра обеспечивает запоминание всех регист ров и триггеров процессора. Когда адресный счетчик проходит через нуль, т. е. происходит смена программ, производится параллельный обмен содержимого сдви гающего регистра и регистров процессора: в процессоре восстанавливается код состояния следующей програм мы, подлежащей исполнению, а состояние предыдущей программы начинает последовательно, разряд за разря дом, передаваться на хранение из сдвигающего регист ра во вспомогательную линию задержки. Если длина вспомогательной линии задержки вместе со сдвигающим регистром соответствует N—1 периодам, то обеспечивает ся необходимая синхронность движения информации во вспомогательной линии задержки и линиях задержки главной памяти.
Очевидно, что аналогичная структура мультипро граммной машины может быть реализована и с по мощью других видов памяти (барабан, диск).
Аппаратно-программные системы предполагают на личие универсальной управляющей программы, являю щейся неотъемлемой принадлежностью машины, такой же, как, например, ее арифметическое или запоминаю щее устройство, и организующей одновременное выпол нение программ пользователей, В дальнейшем мы будем именовать программы, составляемые пользователями и предназначенные для решения определенных проблем
пользователя, целевыми программами. Управляющую программу (или комплекс программ), предназначенную для организации мультипрограммного режима выполне ния целевых программ, будем называть программой-су- первизор или просто супервизор*. Поскольку наличие программы-супервизор есть главная характеристика дан ного класса мультипрограммных систем, мы будем час то пользоваться термином «супервизорные системы». Оперативная память машины в рассматриваемом случае представляется как бы разделенной на две части: одна часть постоянно отведена для хранения супервизора, другая часть доступна целевым программам. Суперви
|
|
|
|
|
зор |
загружает целевые программы в оперативную па |
мять |
машины из |
внешней |
памяти (барабаны, диски) |
или |
с первичных |
носителей |
(перфоленты, перфокарты) |
и передает управление целевой программе, |
имеющей |
в данный момент в соответствии с алгоритмом |
суперви |
зора наибольшее право на исполнение. В этом случае говорят, что целевая программа вступила в период (или цикл) активности. Если программа во время активного периода окончилась, достигла точки ввода (или вывода) информации или произошли какие-либо другие события, контролируемые супервизором, последний передает уп равление другой целевой программе, организуя одновре менно работу периферийных устройств, затребованную предыдущей программой. Супервизор представляет со бой как бы расширение устройства управления маши ной, и так как он является «устройством с программиру емой логикой», то в сочетании с некоторыми новыми ап паратными средствами позволяет достигнуть большой гибкости и эффективности мультипрограммной системы.
Управление мультипрограммным процессом требует, как правило, сложных супервизорных программ, созда ваемых разработчиками машин и систем математичес кого обеспечения. Однако при наличии этих программ работа программистов целевых программ упрощается, потому что, во-первых, целевую программу можно со ставлять так, как если бы она шла на машине одна, и, во-вторых, управление вводом-выводом может осуще ствляться супервизорными программами. Таким обра
* Для обозначения управляющей программы употребляются также и другие термины, близкие по смыслу: организующая про грамма, координирующая программа, монитор и др.
зом, все вопросы временных соотношений при вводе-вы воде, взаимодействия устройств, контроля ошибок и др. исключаются из круга забот программиста. Кроме того, программист может весьма простыми способами исполь зовать большую библиотеку специализированных про грамм, заранее подготовленную высококвалифицирован ными специалистами: организация работы библиотеки программ может быть возложена на программу-супер визор. Возможна специализация программистов целевых программ, так как программисту не надо знать всех под робностей о системе математического обеспечения.
Известны два основных метода построения супервизорных систем. Исторически первыми появились так на зываемые системы с простым обменом, в которых только одна целевая программа, именно та, которая находится в активном состоянии, может размещаться в оператив ной памяти в данный момент времени. Остальные целе вые программы хранятся во внешней памяти. Когда ак тивная целевая программа закончит свой цикл активно сти по внутренним причинам (например, достигнет точки ввода или вывода) или до внешним (затратит все отве денное ей время), она отсылается супервизором на бара бан или диск и в оперативную память загружается дру гая программа, которой передается управление. Систе мы с простым обменом имеют определенные преимуще ства по сравнению с другими системами, поскольку позволяют упростить алгоритмы супервизора. Однако в них возникают большие потери времени на обмен между оперативной и внешней памятью. Обмены должны про изводиться при каждом переключении целевых про грамм, и это время не может быть занято никакой дру гой полезной работой, так как очередной программы еще нет в оперативной памяти.
Поэтому следующий шаг в развитии мультипрограм мирования состоял в создании систем с распределением оперативной памяти. В этих системах в оперативной па мяти может находиться одновременно несколько целе вых программ, из которых в данный момент времени од на является активной. Здесь нет необходимости произво дить обмен каждый раз, когда целевая программа заканчивает период активности, так как другие целевые программы уже находятся в памяти и готовы к обработ ке. Если же все-таки необходимо вызвать из внешней па мяти новую программу или дополнительную информа