Привожу цитату из моей книги "Учись писать, читать и понимать алгоритмы... ", стр. 219, 220.
Цитата:
§15. КРАТКОЕ СООБЩЕНИЕ ДЛЯ ПРОГРАММИСТОВ
На рис. 140, 142–145 показаны операторы реального времени: «пауза», «пуск таймера», «синхронизатор», «период», а также цикл ЖДАТЬ.
Эти операторы нарисованы внутри алгоритмов. Поэтому может создаться впечатление, что они реализуются этими алгоритмами (то есть прикладными программами реального времени).
Но это не так.
На самом деле перечисленные операторы реализуются совместно:
прикладной программой реального времени;
дракон-диспетчером, входящим в состав операционной системы реального времени.
Когда в прикладной программе встречается оператор «пауза», происходят события, не показанные на наших рисунках. А именно, выход из прикладной программы и передача управления в дракон-диспетчер (с одновременной передачей параметра, записанного в иконе «пауза»).
Получив параметр, диспетчер отсчитывает время, указанное в паузе. Когда время истечет, диспетчер возвращает управление в прикладную программу – в точку, расположенную после иконы «пауза».
Иными словами, всякий раз, когда на рисунке алгоритма изображена пауза происходят два события:
выход из прикладной программы (в начале паузы);
вход в прикладную программу (в конце паузы).
Рассмотрим еще один пример – оператор «период». Длительность периода отсчитывает не прикладная программа на рис. 144, а дракон-диспетчер, входящий в состав операционной системы реального времени.
Оператор «период» означает выход из прикладной программы. Управление переходит к дракон-диспетчеру (с одновременной передачей параметра 4с). Через каждые 4 секунды дракон-диспетчер передает управление в начало цикла ЖДАТЬ (точка Z на рис. 144).
Если все три условия дают ответ «нет», оператор «период» возвращает управление в дракон-диспетчер.
Таким образом, функционирование цикла ЖДАТЬ обеспечивается совместными усилиями прикладной программы и дракон-диспетчера.
Этот вывод относится ко всем операторам реального времени.
На рисунках показаны алгоритмы, которые имеют одно начало (один вход) и один конец (один выход). В действительности программы реального времени имеют много входов и много выходов.
Дополнительные входы и выходы появляются всякий раз, когда в алгоритм добавляется оператор пауза или период. Но эти дополнительные входы и выходы на рисунках не показаны. Они не показаны из эргономических соображений – чтобы не загромождать рисунок.
ПОЯСНЕНИЕУчастники форума (наверно) привыкли к тому, что ДРАКОН дает точную фотографию всех маршрутов алгоритма. Поэтому иногда говорят, что ДРАКОН — это маршрутный язык.
Это не совсем так. А применительно к программам реального времени — СОВСЕМ НЕ ТАК.
1. Когда это эргономически необходимо, ДРАКОН дает точную фотографию маршрутов.
2. В программах реального времени (в ряде случаев) ситуация обратная. В этом случае эргономически необходимо СПРЯТАТЬ (УБРАТЬ С ГЛАЗ ДОЛОЙ) служебные передачи управления между прикладной программой и дракон-диспетчером. Именно об этом идет речь в цитате, приведенной выше.
=================================
Продолжение следует