Г Р А Ф И Т — б а з и с

Инфологическое обеспечение | Когнитивное | Графит-букварь

Стр. 1 2 3 4 5 6 7 8 9 10 11 12


Содержание

Холостой оператор и база времени. Виопы Пауза, Период, Пуск таймера, Синхронизатор

Для чего это нужно?

Что это значит

Как это пишется?

Холостой оператор и база времени. Виопы Пауза, Период, Пуск таймера, Синхронизатор

Для чего это нужно?

Реальное время подразумевает привязку некоторых операторов к определённым моментам времени – линейно или иерархично структурированного. В результате исполнение алгоритма приобретает определённый «рисунок», «темпоритм» относительно заданной шкалы времени и/или некоторых внешних событий. Однако т.к. алгопроцесс состоит из операторов и переходов, причём и те и другие имеют конечную длительность, необходим оператор, который просто «тянет время», не изменяя в остальном состояния алгоритма (имея в виду достаточное быстродействие исполнителя, чтобы любой шаг алгопроцесса выполнялся быстрее, чем требует динамика среды). Часто такой оператор называется холостым.

В более общем понимании возможно взаимодействие совместно протекающих алгопроцессов на основе общей временной шкалы — т.н. базы <единого> времени. Тогда достижение определённых позиций маршрутов этих алгопроцессов ставится в зависимость от моментов на этой шкале, указываемых сочинителем.

Механизмы задержки и базы времени можно объединить понятием алгоритмизации точного времени; в обоих случаях сочинитель исходит из известных ему (быть может, приближённо) временных характеристик исполнения алгопроцессов и протекания взаимосвязанных процессов в окружении исполнителя.

В начало страницы

Что это значит?

Следующие два виопа в техноязыке представляют разные случаи механизма задержки.

Пауза. Служит для введения задержки в вертикаль дракон-схемы (т.е. между операторами в цепочке следования). Величина задержки отсчитывается по образцовому источнику, общему для системы-исполнителя.

В информашинах система команд обычно включает команду Нет операции. По смыслу она может пониматься как частный случай паузы — с фиксированной величиной задержки (определяется реализацией команды и тактовой частотой работы машины).

Период. Виоп можно понимать аналогично паузе. Однако он употребляется для задания темпа исполнения в цикле. Поэтому в дракон-синтаксисе вводится в петлю цикла (который из обычного становится циклом ЖДАТЬ).

Фактически это означает задержку проверки условия цикла (после любого исполнения ПОКА-подтела цикла и/или перед вторым и последующими исполнениями ДО-подтела). Тем самым обнаружение события, наступление которого проверяется в условии цикла, откладывается на заданный период (в зависимости от реального наполнения тела цикла и номера его итерации суммируемый с длительностью исполнения тела).

Цикл ЖДАТЬ часто используется для организации диалога исполнителя визуала с его окружением. Задержка обеспечивает определённую частоту проверки наступления события (скажем, ввода оператора); тело в таком применении м.б. пустым.

Реализация виопа Пауза, Период может предполагать освобождение на длительность задержки алгопроцессом, его содержащим, ресурсов исполнителя (для других процессов при мультипроцессировании).

Собственно говоря, и реализация задержки в дискретном исполнителе основана на цикле ЖДАТЬ — аппаратном или программном. Событием будет истечение интервала задержки.

Механизм базы времени в техноязыке представляет следующая пара виопов.

Синхронизатор. Виоп можно рассматривать как совокупность следующих действий:

Разумеется, указание имени таймера, не существующего (а равно и не пущенного к моменту проверки), есть ошибка.

Реализация виопа Синхронизатор может предполагать освобождение алгопроцессом, его содержащим, ресурсов исполнителя (для других процессов при мультипроцессировании), на период от достижения виопа при исполнении до достижения таймером времени старта.

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

Определение таймера связано с формализацией взаимодействия совместно (в т.ч. параллельно) протекающих процессов (см. предыдущий пункт).

Пуск таймера. Назначение виопа – указание начала закономерного изменения переменной-таймера, происходящего независимо от исполнения данного визуала, и задание исходного значения таймера. Обычно имеется в виду наращение от этого значения, но очевидно можно задать и убывание.

Смысл таймера – обновление переменной значением суммы/разности исходного значения таймера и разности между текущим системным временем и системным временем в момент пуска. Это легко понять, проанализировав ситуацию в момент пуска: тогда имеем некоторое значение системного времени, которому сопоставляется исходное значение таймера; далее таймер должен нарастать/убывать, но параметр закона задан именно системным временем. Поэтому его пусковое значение фиксируется и вычитается из текущего, образуя временную базу для определения текущего значения таймера.

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

В нелинейной структуре маршрутов таймер может запускаться только при прохождении содержащей его вертикали, т.е. когда имели место условия выбора этой вертикали в доминирующих развилках. Тем самым возможно событийное управление выполнением алгоритма. Можно, допустим, запустить таймер только при определённых условиях и тем самым при отсутствии этих условий фактически остановить исполнение визуала с первой синхронизированной этим таймером вершины на последующем маршруте исполнения. Можно запускать таймер с разным исходным значением и/или направлением изменения по разным вариантам ветвления (развилки, переключателя).

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

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

В начало страницы

Как это пишется?

Графика виопов точного времени основана на форме перевёрнутой трапеции.

Обыденным образом эта форма м.б. понята как «ванночка», наполнение которой «до краёв» означает возможность старта синхронизируемого оператора; при этом ёмкость её соответствует заданному в тексте вершины значению таймера. При исполнении она «подставляется наполненной» до уровня, определяемого текущим значением этого таймера, и продолжает наполняться далее, если ещё есть куда (текущее значение не превышает заданного); в противном случае исполнение продолжается без задержки (не считая времени на проверку условия).

В начало страницы | Оглавление | Версия для печати

Copyright © Жаринов В.Н.

Hosted by uCoz