Дмитрий Дагаев писал(а):
Уважаемый Владимир Даниелович! Уважаемые господа!
Есть серьезная альтернатива параллельным процессам - асинхронное программирование. На рис.149,150 предлагается решение, которое требует 15 потоков. А если у Вас таких схем 1000, а максимальное число потоков в ОС - 1200? Автоматику рис.149 можно сделать в одном потоке.
Элемент задержки в предложенной схеме будет останавливать поток:
sleep(31); ЗащитныеОперации();
Элемент задержки в асинхронных программах будет проходить далее, пока не настанет время:
while(time>time0+31) ЗащитныеОперации();
На асинхронных принципах постоен язык FBD, о котором я писал в Алаверды Дракону.
А вот у Дракона специальных иконок для асинхронных программ нет. Хотя можно это все эмулировать.
Уважаемый Дмитрий Викторович!
1. Благодарю за критические замечания.
2. Ваше сообщение породило дискуссию, а это очень хорошо.
3. В данный момент я не могу высказать свое мнение, так как мне не хватает знаний.
4. Ваше предложение о необходимости ввести в язык Дракон дополнительную икону для указания асинхронности меня очень заинтересовало. Но мне нужно время, чтобы его глубоко осознать.
5. Язык Дракон опирается на конкретный опыт работы в НПЦ АП. Рисунки я брал из документации по разгонному блоку космческих аппаратов Фрегат почти "дословно".
Изменил лишь идентификаторы на более понятный для книги текст.
6. Я старался дать материал в обобщенном виде. Но мои ракетные "уши", по-видимому,
все равно торчат.
7. Параллельные процессы выполняются на БЦВМ Бисер в псевдопараллельном режиме.
8. Бисер работает с тактом 32, 8 миллисекунд. Через каждые 32,8 мс происходит аппаратное прерывание.
9. В начале такта работает операционная система БЦВМ Бисер (примерно 3 миллисекунды). Затем выполняются одна или несколько прикладных программ. В каждом такте Бисера эта циклограмма повторяется.
10. Параллельные процессы нам очень нужны. Они используются очень часто.
11. Наше применение параллельных процессов, по-видимому, заметно отличается от Вашего.