Пример реализации алгоритма передачи команд

Рассмотрим один из возможных вариантов реализации алгоритма передачи команд. Основ­ные его особенности:

рассматривается наиболее сложный случай — передача в медленные устройства;

считается, что периферийные устройства дублированы, что также усложняет алгоритм;

при невыполнении команды предусматривается ее повтор.

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

Общая структура алгоритма передачи команд показана на рис. 5. На нем, как и в пре­дыдущем случае (алгоритм сканирования), показана входная информация (предыдущее и последующее состояния). По этой информации находится последовательность команд, ко­торая подлежит передаче. Кроме того, на вход алгоритма поступает информация от алго­ритма сканирования (результат сканирования контрольных точек), которая используется для проверки правильности передачи команд. Остальная информация вводится до начала работы алгоритма и является информацией настройки.

Пример реализации алгоритма передачи команд - student2.ru

Рис. 5 Общая структура передачи команд в периферийные устройства

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

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

Алгоритм передачи команд представлен на рис. 6. Он начинает работу при получе­нии заявки на передачу последовательности команд (оператор 1). Эта заявка содержит два состояния — предыдущее и последующее. Иногда эти пары нумеруются, и тогда передается

информация о номере пары, на­зываемая номером последова­тельности команд. По этой ин­формации выбирается последова­тельность команд (оператор 2), соответствующая этой входной информации. Далее устанавлива­ется текущий номер первой ко­манды последовательности (опе­ратор 3), после чего проводится формирование текущей команды (оператор 4), которое заключает­ся в том, что по номеру типа устройства, который содержится в первой команде, считанной из таблицы последовательности, подставляется номер комплекта из области процесса управляю­щего соединением. Далее эта ко­манда передается в буфер для вывода с признаком «ожидание передачи». При выводе команды проверяется наличие этого при­знака — оператор 5 (возможны и другие признаки, например, «ожидание контроля»).

Оператор 6 проверяет заня­тость периферийного управляю­щего устройства (ПУУ). При вклю­чении медленного периферийного устройства оно может быть заня­то, и есть смысл перейти к пере­даче следующей команды, если она направлена в другое ПУУ.

Пример реализации алгоритма передачи команд - student2.ru

Рис. 6 Алгоритм передачи команд

Оператор осуществляет пере­дачу команд, после чего снимает­ся признак «ожидание передачи», устанавливается признак «кон­троль» и после того, как все ко­манды будут переданы, включает­ся вторая часть этого алгоритма — «контроль за передачей команд» (операторы 8-9). Далее проверяется необходимость дальнейшей передачи хотя бы еще одной команды (оператор 11), и, если это необходимо, то счетчик команд увеличивается на единицу (оператор 10). В случае передачи последней команды запускается алгоритм контроля (оператор 12). Далее алгоритм переходит в исходное состояние.

Рассмотрим теперь второй этап выдачи команд — контроль правильности выдачи (рис. 7). Алгоритм показывает, что передача команд инициируется центральной програм­мой и при обнаружении заявок выполняется функция контроля. Проверяется наличие у данной последовательности команд признака «ожидание контроля». Если такой признак обна­руживается, то проверяется, выполнена команда или нет. Если же она выполнена, определя­ется, произошло ли это с первого раза или нет, и далее выясняется, каким устройством это было выполнено — основным или резервным. В соответствии с результатами проверки этих условий осуществляются действия, отображенные на рис. 7. В конце делаются обычные проверки на окончание передачи.

Пример реализации алгоритма передачи команд - student2.ru

Рис. 7 Алгоритм контроля правильности передачи команд

Наши рекомендации