DRAKON.SU

Текущее время: Среда, 12 Август, 2020 19:05

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 91 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
СообщениеДобавлено: Среда, 16 Март, 2011 12:08 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4811
Откуда: Москва
Уважаемые коллеги!

Предлагаю вашему вниманию Главу 14. Параллельные процессы
из рукописи моей новой , пока еще не изданной книги.

Цитата:
Паронджанов В.Д. Учись писать, читать и понимать алгоритмы.
Основы алгоритмизации.

Прошу вас высказать критические замечания и указать на недостатки
данного текста.
Ваши замечания имеют для меня огромную ценность.
____________________________________________________

Глава написана с учетом материалов дискуссии
в теме "Сравнение Дракона со всякими другими"
открытой Эдуардом Ильченко.
viewtopic.php?f=78&t=2215

Сердечно благодарю всех участников дискуссии.


Последний раз редактировалось Владимир Паронджанов Среда, 16 Март, 2011 16:59, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Март, 2011 12:23 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4811
Откуда: Москва
Не читайте этого! Это старый вариант.
Под влиянием критики я написал НОВЫЙ вариант.
Вот ссылка на новый вариант
viewtopic.php?p=61683#p61683


Глава 14

ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ

§1. ВВЕДЕНИЕ


Параллельные процессы играют важную роль в технике и многих других областях.
Определение параллельного процесса дано на рис. 147. Икона «параллельный процесс» показана на рис. 17, фигура И20.
Краткое описание процесса дано в §11 главы 13 (см. также рис. 144).

В данной главе следующие выражения рассматриваются как синонимы:
• параллельный процесс;
• процесс;
• параллельный алгоритм.

§2. ПАРАЛЛЕЛЬНЫЕ ПРОЦЕССЫ
В АЛГОРИТМЕ «ПРОВЕРКА АГРЕГАТА И РАКЕТЫ»


На рис. 149 изображены 15 параллельных процессов:
• вызывающий алгоритм ПРОВЕРКА АГРЕГАТА И РАКЕТЫ;
• 14 вызываемых алгоритмов, каждый из которых обозначен иконой «параллельный процесс» (7 алгоритмов в первой ветке и 7 — во второй).

Все вызываемые процессы запускаются сигналом ПУСК. Момент запуска точно определен оператором синхронизатор. Например, процесс КОНТРОЛЬ ПРИБОРОВ запускается в момент 103с (103 секунды).

Параллельные процессы могут заканчиваться двумя способами:
• по команде «Останов» (см. пример на рис. 144, правая ветка);
• без использования команды «Останов», то есть естественным путем, когда каждый процесс решит свою задачу и достигнет конца.

На рис. 149 показан случай, когда все вызываемые процессы заканчиваются естественным путем. Поэтому команда ОСТАНОВ не используется.

Вложение:
Рис._149_png_Агрегат_и_ракета.png
Рис._149_png_Агрегат_и_ракета.png [ 74.66 КБ | Просмотров: 11052 ]


§3. ВРЕМЕННАЯ ДИАГРАММА ПАРАЛЛЕЛЬНЫХ ПРОЦЕССОВ

На рис. 150 показана временная диаграмма, иллюстрирующая алгоритм на рис. 149. В верхней строке темным цветом выделен вызывающий алгоритм. Он имеет самую большую длительность. Ниже расположены вызываемые процессы.

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

Вложение:
Рис._150_png_Циклограмма.png
Рис._150_png_Циклограмма.png [ 55.41 КБ | Просмотров: 11052 ]


§4. ПАРАЛЛЕЛЬНЫЕ ПРОЦЕССЫ
В АЛГОРИТМЕ «ПРОВЕРКА ВОЗДУШНОГО СНАЙПЕРА»


На рис. 149 показан упрощенный случай. Одна и та же операция повторяется 14 раз. 14 синхронизаторов задают 14 моментов времени, определяющих запуск 14 параллельных процессов.

На рис. 151 показан более сложный случай. Наряду с таймером, синхронизатором и процессами применяются следующие иконы: вывод, вставка, вопрос и полка.

В первой ветке имеются 4 синхронизатора. Два из них запускают процессы ЗАПРАВКА УСКОРИТЕЛЯ и АННИГИЛЯЦИЯ КВАРКОВ. Третий включает процедуру ЗАЩИТА НЕБЕСНОГО ЭКРАНА. Четвертый выдает команду НЕЙТРОННЫЙ ЗАЛП.

Используются не только синхронизаторы, но и две паузы длительностью 5 секунд каждая. Первая пауза задерживает пуск процесса ЗАЩИТА АТОМНЫХ ЯДЕР. Вторая задерживает выдачу команды БЛОКИРОВКА ШИФРА.

Во второй ветке выполняются операции:

• через синхронизатор (момент 319 секунд по таймеру) запускается процесс РАСКРУТКА ЭЛЕКТРОНОВ;
• устанавливаются два признака НЕТ НОРМЫ и ВКЛЮЧЕН РЕВЕРС;
• применяются две иконы вопрос: ПЕРЕХОД НА МАЛУЮ ТЯГУ? и КОНТРОЛЬ УРОВНЯ?
• выдается команда ВКЛЮЧИТЬ КАРУСЕЛЬ;
• запускается процесс ДЕРЖАТЬ УРОВЕНЬ;
• и т.д.

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

Вложение:
Рис. 151_Воздушный_снайпер_png_.png
Рис. 151_Воздушный_снайпер_png_.png [ 72.77 КБ | Просмотров: 11052 ]


§5. АЛЬТЕРНАТИВНЫЙ СПОСОБ ИЗОБРАЖЕНИЯ
ПАРАЛЛЕЛЬНЫХ ПРОЦЕССОВ


На рис. 152 показан алгоритм «Последний этап строительства дома». Можно сказать, что этот алгоритм нарисован «на другом языке». Вводятся новые обозначения и правила.

1. Две горизонтальные параллельные линии обозначают начало нескольких параллельных процессов.

2. Треугольник означает, что происходит прием сигналов от N параллельных процессов и их обработка.

3. Сигнал на выходе треугольника появится только тогда, когда:
• на входы треугольника поступят (не обязательно одновременно) N процессов;
• каждый из N процессов не только начнется, но и закончится. Иначе говоря, выходной сигнал треугольника возникнет в тот момент, когда завершится последний из N процессов;

4. Выходной сигнал треугольника разрешает выполнение действия, находящегося после треугольника.

Рассмотрим детали алгоритма.

На рис. 152 изображены три пары параллельных линий. Каждая пара символизирует начало параллельных процессов.

Верхняя пара линий обозначает начало четырех процессов:
• Подводка электролинии.
• Закупка электропроводов.
• Монтаж электрощита.
• Закупка водопроводных труб.

Средняя пара указывает на начало следующих процессов:
• Прокладка электропроводки.
• Устройство крыши.
• Установка окон.
• Прокладка водопровода.

Нижняя пара «начинает» процессы:
• Установка электроламп.
• Отделочные работы.

На рис. 152 показаны 4 треугольника:

Левый верхний треугольник выполняет две функции:
• контролирует три процесса и дожидается, когда кончится последний из них;
• разрешает начать действие «Прокладка электропроводки».

Можно сказать иначе. Прокладка электропроводки начнется только после того, как закончатся процессы:
• Подводка электролинии.
• Закупка электропроводов.
• Монтаж электрощита.

Правый верхний треугольник выполняет две функции:
• контролирует два процесса и дожидается, когда кончится последний из них;
• разрешает начать действие «Прокладка водопровода».

Другими словами, «Прокладка водопровода» начнется лишь тогда, когда закончатся процессы:
• Монтаж электрощита.
• Закупка водопроводных труб.

Оставшиеся два треугольника работают аналогично.

Вложение:
Рис._152_Паралл_процессы_png.png
Рис._152_Паралл_процессы_png.png [ 44.85 КБ | Просмотров: 11052 ]


§6. ВРЕМЕННАЯ ДИАГРАММА
ПАРАЛЛЕЛЬНЫХ ПРОЦЕССОВ ПРИ СТРОИТЕЛЬСТВЕ ДОМА


Циклограмма процесса «Последний этап строительства дома» показана на рис. 153.

Вспомним, что на вход левого верхнего треугольника (рис. 152) поступают сигналы трех процессов:
• Подводка электролинии.
• Закупка электропроводов.
• Монтаж электрощита.

На циклограмме изображен частный случай, когда названные три процесса:
• не пересекаются;
• расположены в таком порядке: 1) Закупка…2) Подводка… 3) Монтаж…

В этом случае окончание процесса «Монтаж электрощита» разрешает начать процесс «Прокладка электропроводки», как показано на рис. 153.

Вложение:
Рис._153_Циклограмма_png.png
Рис._153_Циклограмма_png.png [ 73.84 КБ | Просмотров: 11045 ]


§7. ОБРАБОТКА ИНФОРМАЦИИ,
ВЫПОЛНЯЕМАЯ СХЕМОЙ «ТРЕУГОЛЬНИК»


Уже говорилось, что любой треугольник на рис. 152 выполняет операции по обработке информации. О каких операциях идет речь?

Выделим на рис. 152 фрагмент, содержащий левый верхний треугольник и присоединенные к нему процессы. Поместим этот фрагмент на рис. 154 и исследуем его.

Алгоритм, реализуемый треугольником, показан на рис. 155. Он состоит из двух веток. Первая ветка проверяет, что все три входных процесса НАЧАЛИ работать. Вторая — что все входные процессы КОНЧИЛИ работу.

Рассмотрим первую ветку. Три процесса могут образовать 6 комбинаций (перестановок). Перечислим все 6 комбинаций.

1) Подводка… линии. 2) Закупка… проводов. 3) Монтаж… щита.
1) Подводка… линии. 3) Монтаж… щита. 2) Закупка… проводов.

2) Закупка… проводов. 1) Подводка… линии. 3) Монтаж… щита.
2) Закупка… проводов. 3) Монтаж… щита. 1) Подводка… линии.

3) Монтаж… щита. 1) Подводка… линии. 2) Закупка… проводов.
3) Монтаж… щита. 2) Закупка… проводов. 1) Подводка… линии.

Первая ветка разветвляется на 6 маршрутов. Каждый маршрут описывает одну из 6 комбинаций. Вторая ветка имеет точно такую же структуру.

В начале первой ветки имеется цикл ЖДАТЬ. В исходном положении все три процесса не работают. Цикл ЖДАТЬ поочередно опрашивает эти процессы. И определяет, какой процесс ПЕРВЫМ начнет работать (рис. 155).

Предположим, что первым включился в работу процесс «Монтаж электрощита». Из иконы вопрос «Монтаж…» выходим через «да» и попадаем в следующий цикл ЖДАТЬ. Этот цикл поочередно опрашивает ДВА процесса (Подводка… линии. Закупка… проводов). И определяет, какой из них ПЕРВЫМ начнет работать (рис. 155).

Предположим, первым начал работу процесс «Закупка электропроводов». Из иконы вопрос «Закупка …» выходим через «да» и попадаем в следующий цикл ЖДАТЬ. Этот цикл периодически опрашивает ОДИН процесса (Подводка электролинии). И «терпеливо» ждет, когда он вступит в работу (рис. 155).

Когда ожидание увенчается успехом, из иконы вопрос «Подводка электролинии» выходим через «да». Это означает, что мы прошли первую ветку по маршруту:
Монтаж… щита. Закупка… проводов. Подводка… линии.

В этот момент можно констатировать, что эти три процесса работали или работают. Возможно, некоторые из них уже кончили работу. Но можно с уверенностью сказать, что процесс «Подводка электролинии» продолжает работать.

После этого переходим ко второй ветке алгоритма. Задача второй ветки — определить, что все три процесса закончили работу.

Вторая ветка работает, как первая. Только надписи «да» и «нет» всюду меняются местами.

В начале второй ветки имеется цикл ЖДАТЬ. В исходном положении, по крайней мере, один процесс работает. Однако, может быть и так, что все три процесса продолжают работать. Цикл ЖДАТЬ поочередно опрашивает три процесса и определяет, какой процесс первым кончит работать (рис. 155).

Предположим, что первым кончил работу процесс «Закупка электропроводов». Из иконы вопрос «Закупка …» выходим через «нет» и попадаем в следующий цикл ЖДАТЬ. Этот цикл поочередно опрашивает ДВА процесса (Подводка… линии. Монтаж… щита). И определяет, какой из них первым кончит работать (рис. 155).

Дальше вторая ветка работает аналогично первой. Когда вторая ветка определит, что три процесса закончились (см. точку Z на рис. 155), производится Пуск процесса «Прокладка электропроводки».
На этом алгоритм завершается.

В схеме на рис. 155 используются 20 циклов ЖДАТЬ. Для простоты икона «период» не показана.

Вложение:
Рис._154_Фрагмент_строительства_png.png
Рис._154_Фрагмент_строительства_png.png [ 76.89 КБ | Просмотров: 11045 ]


Вложение:
Рис._155_png.png
Рис._155_png.png [ 104.81 КБ | Просмотров: 11045 ]


§8. СРАВНЕНИЕ ЯЗЫКОВ

В данной книге все алгоритмы нарисованы на языке ДРАКОН. Но в этой главе (§5, §6) мы отошли от этого принципа. При описании строительства дома использован другой язык (назовем его «язык Z)». Последний значительно удобнее для изображения параллельных процессов типа «строительство дома».

В §7 мы снова вернулись к ДРАКОНу. Потому что язык Z принципиально не может описать обработку информации в схеме треугольника. А язык ДРАКОН решает эту задачу точно и подробно.

Кроме того, параллельные процессы в задачах реального времени также удобнее изображать на ДРАКОНе (см. §1—4).

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

В целом, можно сказать, что область применения языка ДРАКОН на несколько порядков больше, чем область применения языка Z.

§9. ВЫВОДЫ

1. На языке ДРАКОН параллельный процесс запускается командой Пуск.

2. На языке ДРАКОН параллельные процессы могут заканчиваться двумя способами:
• командой Останов;
• без использования команды Останов, когда каждый процесс решит свою задачу и достигнет конца.

3. Рассмотрен альтернативный способ изображения параллельных процессов с помощью языка Z.

4. На языке Z две горизонтальные параллельные линии обозначают начало нескольких параллельных процессов.

5. На языке Z треугольник означает, что происходит прием сигналов от N параллельных процессов и их обработка.

6. Выходной сигнал треугольника возникает в тот момент, когда завершится последний из N процессов.

7. Завершение всех процессов на входе треугольника позволяет выполнить действие на его выходе.

8. Схема Треугольник выполняет обработку информации по сложному алгоритму. Этот алгоритм нельзя описать на языке Z, но можно описать на языке ДРАКОН.

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

10. В целом, можно сказать, что область применения языка ДРАКОН на несколько порядков больше, чем область применения языка Z.[attachment=5]


Последний раз редактировалось Владимир Паронджанов Среда, 23 Март, 2011 11:52, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Март, 2011 19:45 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Здесь у В.Д. Паронджанова имеет место неправомерная подмена термина "Параллельные действия" термином "Параллельные процессы".

"Параллельные действия" - действия внутри одного алгоритма. Параллельные действия внутри алгоритма синхронизируются, ГОСТ 19.701-90 п. 3.2.2.5 .

"Параллельные процессы" - имеют каждый свой алгоритм. Параллельные процессы обмениваются управляющими сигналами, ГОСТ 19.701-90 п. 3.3.2.1 .


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Март, 2011 20:12 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
п.8 - Треугольник это схема или икона?

Зачем нужен треугольник? В ГОСТ 19.701-90 п. 3.2.2.5 достаточный знак ====, он выделяет и ограничивает параллельные действия, обеспечивает синхронизацию параллельных действий по началу и завершению.

Есть мнение:
http://forum.oberoncore.ru/viewtopic.php?p=44090#p44090 от 08 Марта 2010
TAU писал(а):
Товарищи, перестаньте спорить. Примите как факт, что нагляднее (эргономичнее, ежели хотите) - вариант отображения, как в системе Тышова.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Март, 2011 00:31 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
На меня рис.152 производит странное впечатление: как будто он специально сделан небрежно, чтобы оттенить красоту Дракона.

А если ту же схему изобразить на UML (и сказать, что это не Z, а UML), то доказывать превосходство Дракона широкой публике будет тяжелей.

К тому же треугольник не требует какой-либо дальнейшей алгоритмизации, поскольку его формализм жёстко задан. Так же, как и, например, любая из икон Вопрос, хотя это и можно сделать.

Если язык Z ограничен только примитивами, представленными на рис.152, то, наверно, на нём нельзя описать алгоритм действий в треугольнике, но если допустить, что в Z есть графпримитив Вопрос, то описать возможно.

Если у Дракона изъять икону Вопрос, он тоже мало на что сгодится

P.S. на рис.155 обе ветки имеют одно и то же название. Это опечатка?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Март, 2011 07:25 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Ильченко Эдуард писал(а):
...
К тому же треугольник не требует какой-либо дальнейшей алгоритмизации, поскольку его формализм жёстко задан. Так же, как и, например, любая из икон Вопрос, хотя это и можно сделать.

Если язык Z ограничен только примитивами, представленными на рис.152, то, наверно, на нём нельзя описать алгоритм действий в треугольнике, но если допустить, что в Z есть графпримитив Вопрос, то описать возможно.
...
Я так думаю. Во-первых, Z-примитив можно преобразовать в Z-силуэт, используя независимые БП (я рассматривал такую возможность в МШ-методе здесь; не знаю, что предполагает Владимир Даниелович). Возможно, принцип будет в чём-то отличаться.

Во-вторых, то, что есть дракон-формализм Z-треугольника - это и важно. Потому что треугольник - это, IMHO, из более абстрактной модели, чем алгоритмическая - представляющей "расщепление рабочей точки", т.е. систему совместно протекающих взаимодействующих (далее - СПВ) процессов. Поэтому вызывает вопросы разделение на параллельные процессы и параллельные действия как сущности вроде бы одного уровня абстракции (если я правильно понял Тышова).
Посему в Z-языке не описываются действия в треугольнике - они раскрываются уровнем ниже - в алгоязыке. Вариант такого раскрытия (как говорил Рэйлвей Каген, "алгоритмической расшифровки") и предложен.
    Является ли такой вариант удобным, каковы его математические основания и корректны ли они - вот это можно обсуждать. В любом случае спасибо автору за то, что довольно обрывочные обсуждения в теме "Сравнение Дракона..." получили конкретное продолжение.

А вот такие вопросы возникают к Паронджанову по существу представленного:
1. Применительно к Рис. 155 говорится о циклах ЖДАТЬ - но на схеме нет проходных вершин Пауза в петлях. С чем это связано? как определяется задержка в цикле?
2. Можно понять, что в Z-языке новый оператор Треугольник представляет содержательную деятельность по завершению группы СПВ-процессов (слиянию "рабочих точек" мультишампуров), тогда как ГОСТ-оператор НПД взят для представления их начала (расщепления "рабочих точек"). А этому началу в Вашем представлении соответствует какая-то деятельность (кроме простого пуска начинаемых процессов)?

P.S. Вспомнил свои рассуждения о желательности продолжения работы над темой здесь... уж не Высоцкий ли надоумил взять такое имя и графику оператора?.. :D
В любом случае хорошо бы видеть описание Z-языка - и лежащего в основе метода (объясняющее, как именно системы взаимодействующих процессов представляется Z-схемами и почему и в каких случаях такое представление корректно). Короче - треугольник в студию! :lol:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Март, 2011 20:33 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4811
Откуда: Москва
Ильченко Эдуард писал(а):
На меня рис.152 производит странное впечатление: как будто он специально сделан небрежно, чтобы оттенить красоту Дракона.

А если ту же схему изобразить на UML (и сказать, что это не Z, а UML), то доказывать превосходство Дракона широкой публике будет тяжелей.
...............................................................................................
P.S. на рис.155 обе ветки имеют одно и то же название. Это опечатка?


Уважаемый Эдуард Ильченко!

Благодарю за критические замечания.
У меня к вам три просьбы.

1-я просьба. Нарисуйте рис. 152 по-своему. То есть ТАК, как вы считаете нужным. Чтобы устранить небрежность и другие недостатки. И чтобы он
не производил странное впечатление.

2-я просьба. Если можно, изобразите рис. 152 на UML.

3-я просьба. Прокомментируйте, что получилось.

Спасибо
_____________________________________________________
Да, конечно, это опечатка. Во второй ветке должно быть
"Контроль конца процессов".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 20 Март, 2011 01:27 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Владимир Паронджанов писал(а):
2-я просьба. Если можно, изобразите рис. 152 на UML.

Источник вдохновения
http://khpi-iip.mipk.kharkiv.edu/library/case/leon/gl7/gl7.html

Рис.152 на UML:
Вложение:
uml.png
uml.png [ 95.16 КБ | Просмотров: 10881 ]

Владимир Паронджанов писал(а):
Потому что язык Z принципиально не может описать обработку информации в схеме треугольника. А язык ДРАКОН решает эту задачу точно и подробно.

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


Владимир Паронджанов писал(а):
1-я просьба. Нарисуйте рис. 152 по-своему. То есть ТАК, как вы считаете нужным. Чтобы устранить небрежность и другие недостатки. И чтобы он не производил странное впечатление.

Поскольку на форуме подобный случай уже обсуждался, останусь верен традиции. Если не ошибаюсь, первым предложил вариант расширения Дракона Рэйлвэй Каген.
http://forum.oberoncore.ru/viewtopic.php?p=40246#p40246

Здесь предельный случай на текущий момент : )
http://forum.oberoncore.ru/viewtopic.php?p=40322#p40322

Обсуждение новых икон
http://forum.oberoncore.ru/viewtopic.php?p=40280#p40280

Рис.152 по-своему (правда это фактически расширение Дракона и для книги вряд ли подойдёт):
Вложение:
zDrakon.png
zDrakon.png [ 23.08 КБ | Просмотров: 10881 ]

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

Здесь ещё варианты начертаний
http://forum.oberoncore.ru/viewtopic.php?p=40351#p40351

Для целей Вашей книги, имхо, вариант с UML самое то. И язык живой, и Дракон есть куда приложить.


Последний раз редактировалось Ильченко Эдуард Воскресенье, 20 Март, 2011 12:07, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 20 Март, 2011 10:53 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4811
Откуда: Москва
Уважаемый Эдуард Ильченко!

Огромное Вам спасибо.
Под влиянием Ваших замечаний я принял решение
доработать Главу 14. Параллельные процессы.


1. Сегодня или завтра выложу доработанный вариант Главы 14.

2. Кроме того, я последую Вашему примеру (в части UML)
и выложу свои "источники вдохновения"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 20 Март, 2011 13:36 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Не проще ли в качестве алгоритма обработки информации в треугольнике (рис.155) использовать такую схему?
Вложение:
atr.png
atr.png [ 9.75 КБ | Просмотров: 10854 ]


Владимир Паронджанов писал(а):
Алгоритм, реализуемый треугольником, показан на рис. 155. Он состоит из двух веток. Первая ветка проверяет, что все три входных процесса НАЧАЛИ работать. Вторая — что все входные процессы КОНЧИЛИ работу.

Зачем треугольнику знать, что процессы НАЧАЛИ работать? По-моему, достаточно знать, что они ЗАКОНЧИЛИ работу.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 21 Март, 2011 11:41 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4811
Откуда: Москва
Ильченко Эдуард писал(а):
Для целей Вашей книги, имхо, вариант с UML самое то. И язык живой, и Дракон есть куда приложить.


Уважаемый Эдуард!

Полностью принимаю Ваш совет.
Спасибо Вам.

В следующем посте выкладываю доработанный вариант
Главы 14.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 21 Март, 2011 11:42 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4811
Откуда: Москва
Это новый вариант
Глава 14

ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ

§1. ВВЕДЕНИЕ


Параллельные процессы играют важную роль в технике и многих других областях.
Определение параллельного процесса дано на рис. 147. Икона «параллельный процесс» показана на рис. 17, фигура И20.
Краткое описание процесса дано в §11 главы 13 (см. также рис. 144).

В данной главе следующие выражения рассматриваются как синонимы:
• параллельный процесс;
• процесс;
• параллельный алгоритм.

§2. ПАРАЛЛЕЛЬНЫЕ ПРОЦЕССЫ
В АЛГОРИТМЕ «ПРОВЕРКА АГРЕГАТА И РАКЕТЫ»


На рис. 149 изображены 15 параллельных процессов:
• вызывающий алгоритм ПРОВЕРКА АГРЕГАТА И РАКЕТЫ;
• 14 вызываемых алгоритмов, каждый из которых обозначен иконой «параллельный процесс» (7 алгоритмов в первой ветке и 7 — во второй).

Все вызываемые процессы запускаются сигналом ПУСК. Момент запуска точно определен оператором синхронизатор. Например, процесс КОНТРОЛЬ ПРИБОРОВ запускается в момент 103с (103 секунды).

Параллельные процессы могут заканчиваться двумя способами:
• по команде «Останов» (см. пример на рис. 144, правая ветка);
• без использования команды «Останов», то есть естественным путем, когда каждый процесс решит свою задачу и достигнет конца.

На рис. 149 показан случай, когда все вызываемые процессы заканчиваются естественным путем. Поэтому команда ОСТАНОВ не используется.


Вложение:
Рис._149_png_Агрегат_и_ракета.png
Рис._149_png_Агрегат_и_ракета.png [ 74.66 КБ | Просмотров: 10827 ]



§3. ВРЕМЕННАЯ ДИАГРАММА ПАРАЛЛЕЛЬНЫХ ПРОЦЕССОВ

На рис. 150 показана временная диаграмма, иллюстрирующая алгоритм на рис. 149. В верхней строке темным цветом выделен вызывающий алгоритм. Он имеет самую большую длительность. Ниже расположены вызываемые процессы.

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


Вложение:
Рис._150_png_Циклограмма.png
Рис._150_png_Циклограмма.png [ 55.41 КБ | Просмотров: 10827 ]



§4. ПАРАЛЛЕЛЬНЫЕ ПРОЦЕССЫ
В АЛГОРИТМЕ «ПРОВЕРКА ВОЗДУШНОГО СНАЙПЕРА»


На рис. 149 показан упрощенный случай. Одна и та же операция повторяется 14 раз. 14 синхронизаторов задают 14 моментов времени, определяющих запуск 14 параллельных процессов.

На рис. 151 показан более сложный случай. Наряду с таймером, синхронизатором и процессами применяются следующие иконы: вывод, вставка, вопрос и полка.

В первой ветке имеются 4 синхронизатора. Два из них запускают процессы ЗАПРАВКА УСКОРИТЕЛЯ и АННИГИЛЯЦИЯ КВАРКОВ. Третий включает процедуру ЗАЩИТА НЕБЕСНОГО ЭКРАНА. Четвертый выдает команду НЕЙТРОННЫЙ ЗАЛП.

Используются не только синхронизаторы, но и две паузы длительностью 5 секунд каждая. Первая пауза задерживает пуск процесса ЗАЩИТА АТОМНЫХ ЯДЕР. Вторая задерживает выдачу команды БЛОКИРОВКА ШИФРА.

Во второй ветке выполняются операции:

• через синхронизатор (момент 319 секунд по таймеру) запускается процесс РАСКРУТКА ЭЛЕКТРОНОВ;
• устанавливаются два признака НЕТ НОРМЫ и ВКЛЮЧЕН РЕВЕРС;
• применяются две иконы вопрос: ПЕРЕХОД НА МАЛУЮ ТЯГУ? и КОНТРОЛЬ УРОВНЯ?
• выдается команда ВКЛЮЧИТЬ КАРУСЕЛЬ;
• запускается процесс ДЕРЖАТЬ УРОВЕНЬ;
• и т.д.

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

Вложение:
Рис._151_Воздушный_снайпер_png_.png
Рис._151_Воздушный_снайпер_png_.png [ 72.77 КБ | Просмотров: 10827 ]


§5. КОМАНДЫ УПРАВЛЕНИЯ ПАРАЛЛЕЛЬНЫМИ ПРОЦЕССАМИ

Команды управления пишут на верхнем этаже иконы «параллельный процесс».
Ниже представлен перечень команд управления:

• ПУСК — осуществляет пуск параллельного процесса;
• ОСТАНОВ — осуществляет останов параллельного процесса;
• СТОП — осуществляет приостановку запущенного параллельного про-цесса;
• РЕСТАРТ осуществляет повторный пуск приостановленного парал-лельного процесса.


§6. АЛЬТЕРНАТИВНЫЙ СПОСОБ ИЗОБРАЖЕНИЯ
ПАРАЛЛЕЛЬНЫХ ПРОЦЕССОВ


На рис. 152 показан алгоритм «Последний этап строительства дома». Можно сказать, что этот алгоритм нарисован «на другом языке». Вводятся новые обозначения и правила.

1. Жирная горизонтальная линия обозначает начало нескольких параллельных процессов.

2. Треугольник означает, что происходит прием сигналов от N параллельных процессов и их обработка.

3. Сигнал на выходе треугольника появится только тогда, когда:
• на входы треугольника поступят (не обязательно одновременно) N процессов;
• каждый из N процессов не только начнется, но и закончится. Иначе говоря, выходной сигнал треугольника возникнет в тот момент, когда завершится последний из N процессов;

4. Выходной сигнал треугольника разрешает выполнение действия, находящегося после треугольника.

Рассмотрим детали алгоритма.

На рис. 152 изображены три жирных линии. Каждая из них символизирует начало параллельных процессов.

Верхняя жирная линия обозначает начало четырех процессов:
• Подводка электролинии.
• Закупка электропроводов.
• Монтаж электрощита.
• Закупка водопроводных труб.

Средняя жирная линия указывает на начало следующих процессов:
• Прокладка электропроводки.
• Устройство крыши.
• Установка окон.
• Прокладка водопровода.

Нижняя жирная линия «начинает» процессы:
• Установка электроламп.
• Отделочные работы.

На рис. 152 показаны 4 треугольника:

Левый верхний треугольник выполняет две функции:
• контролирует три процесса и дожидается, когда кончится последний из них;
• разрешает начать действие «Прокладка электропроводки».

Можно сказать иначе. Прокладка электропроводки начнется только после того, как закончатся процессы:
• Подводка электролинии.
• Закупка электропроводов.
• Монтаж электрощита.

Правый верхний треугольник выполняет две функции:
• контролирует два процесса и дожидается, когда кончится последний из них;
• разрешает начать действие «Прокладка водопровода».

Другими словами, «Прокладка водопровода» начнется лишь тогда, когда закончатся процессы:
• Монтаж электрощита.
• Закупка водопроводных труб.

Оставшиеся два треугольника работают аналогично.

Вложение:
Рис._152_png Конец стройки.png
Рис._152_png Конец стройки.png [ 44.71 КБ | Просмотров: 10825 ]


§7. ВРЕМЕННАЯ ДИАГРАММА
ПАРАЛЛЕЛЬНЫХ ПРОЦЕССОВ ПРИ СТРОИТЕЛЬСТВЕ ДОМА


Циклограмма процесса «Последний этап строительства дома» показана на рис. 153.

Вспомним, что на вход левого верхнего треугольника (рис. 152) поступают сигналы трех процессов:
• Подводка электролинии.
• Закупка электропроводов.
• Монтаж электрощита.

На циклограмме изображен частный случай, когда названные три процесса:
• не пересекаются;
• расположены в таком порядке: 1) Закупка…2) Подводка… 3) Монтаж…

В этом случае окончание процесса «Монтаж электрощита» разрешает начать процесс «Прокладка электропроводки», как показано на рис. 153.

Вложение:
Рис._153_Циклограмма_png.png
Рис._153_Циклограмма_png.png [ 73.84 КБ | Просмотров: 10827 ]


§8. ОБРАБОТКА ИНФОРМАЦИИ,
ВЫПОЛНЯЕМАЯ СХЕМОЙ «ТРЕУГОЛЬНИК»


Уже говорилось, что любой треугольник на рис. 152 выполняет операции по обработке информации. О каких операциях идет речь?

Выделим на рис. 152 фрагмент, содержащий левый верхний треугольник и присоединенные к нему процессы. Поместим этот фрагмент на рис. 154 и исследуем его.

Алгоритм, реализуемый треугольником, показан на рис. 155. Он состоит из двух веток. Первая ветка проверяет, что все три входных процесса НАЧАЛИ работать. Вторая — что все входные процессы КОНЧИЛИ работу.

Рассмотрим первую ветку. Три процесса могут образовать 6 комбинаций (перестановок). Перечислим все 6 комбинаций.

1) Подводка… линии. 2) Закупка… проводов. 3) Монтаж… щита.
1) Подводка… линии. 3) Монтаж… щита. 2) Закупка… проводов.

2) Закупка… проводов. 1) Подводка… линии. 3) Монтаж… щита.
2) Закупка… проводов. 3) Монтаж… щита. 1) Подводка… линии.

3) Монтаж… щита. 1) Подводка… линии. 2) Закупка… проводов.
3) Монтаж… щита. 2) Закупка… проводов. 1) Подводка… линии.

Первая ветка разветвляется на 6 маршрутов. Каждый маршрут описывает одну из 6 комбинаций. Вторая ветка имеет точно такую же структуру.

В начале первой ветки имеется цикл ЖДАТЬ. В исходном положении все три процесса не работают. Цикл ЖДАТЬ поочередно опрашивает эти процессы. И определяет, какой процесс ПЕРВЫМ начнет работать (рис. 155).

Предположим, что первым включился в работу процесс «Монтаж электрощита». Из иконы вопрос «Монтаж…» выходим через «да» и попадаем в следующий цикл ЖДАТЬ. Этот цикл поочередно опрашивает ДВА процесса (Подводка… линии. Закупка… проводов). И определяет, какой из них ПЕРВЫМ начнет работать (рис. 155).

Предположим, первым начал работу процесс «Закупка электропроводов». Из иконы вопрос «Закупка …» выходим через «да» и попадаем в следующий цикл ЖДАТЬ. Этот цикл периодически опрашивает ОДИН процесса (Подводка электролинии). И «терпеливо» ждет, когда он вступит в работу (рис. 155).

Когда ожидание увенчается успехом, из иконы вопрос «Подводка электролинии» выходим через «да». Это означает, что мы прошли первую ветку по маршруту:
Монтаж… щита. Закупка… проводов. Подводка… линии.

В этот момент можно констатировать, что эти три процесса работали или работают. Возможно, некоторые из них уже кончили работу. Но можно с уверенностью сказать, что процесс «Подводка электролинии» продолжает работать.

После этого переходим ко второй ветке алгоритма. Задача второй ветки — определить, что все три процесса закончили работу.

Вторая ветка работает, как первая. Только надписи «да» и «нет» всюду меняются местами.

В начале второй ветки имеется цикл ЖДАТЬ. В исходном положении, по крайней мере, один процесс работает. Однако, может быть и так, что все три процесса продолжают работать. Цикл ЖДАТЬ поочередно опрашивает три процесса и определяет, какой процесс первым кончит работать (рис. 155).

Предположим, что первым кончил работу процесс «Закупка электропроводов». Из иконы вопрос «Закупка …» выходим через «нет» и попадаем в следующий цикл ЖДАТЬ. Этот цикл поочередно опрашивает ДВА процесса (Подводка… линии. Монтаж… щита). И определяет, какой из них первым кончит работать (рис. 155).

Дальше вторая ветка работает аналогично первой. Когда вторая ветка определит, что три процесса закончились (см. точку Z на рис. 155), производится Пуск процесса «Прокладка электропроводки».
На этом алгоритм завершается.

В схеме на рис. 155 используются 20 циклов ЖДАТЬ. Для простоты икона «период» не показана.

Вложение:
Рис._154_png Фрагмент конца стройки.png
Рис._154_png Фрагмент конца стройки.png [ 76.88 КБ | Просмотров: 10825 ]


Вложение:
Рис._155_png.png
Рис._155_png.png [ 104.81 КБ | Просмотров: 10799 ]


§9. РАЗДЕЛЕНИЕ И СЛИЯНИЕ ПРОЦЕССОВ

Пункт разделения (concurrent fork) обозначает разделение одного процесса на несколько параллельных процессов (то есть разделение одного маршрута на несколько параллельных маршрутов). На рис. 154 пункт разделения обозначен жирной линией.

Пункт слияния (concurrent join) обозначает слияние параллельных процессов в один процесс (то есть слияние несколько параллельных маршрутов в один маршрут). На рис. 154 пункт слияния обозначен треугольником.

Таким образом, на рис. 154 пункт разделения и пункт слияния имеют разные обозначения.

Зачем нужны разные обозначения? Чтобы подчеркнуть, что в пункте слияния (в треугольнике) производится сложная обработка информации.

Всегда ли нужно это подчеркивать? Нет, не всегда.

Бывают случаи (и их немало), когда акцент на обработке информации в треугольнике является неуместным. В такой ситуации целесообразно убрать треугольник. И ввести ЕДИНОЕ обозначение (жирная горизонтальная линия) и для пункта разделения, и для пункта слияния.
Пример показан на рис. 155а.

Если удалить треугольники на рис. 152, получим рис. 155б.

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

Вложение:
Рис._155а_png_Фрагмент конца стройки Без_треугольника.png
Рис._155а_png_Фрагмент конца стройки Без_треугольника.png [ 80.97 КБ | Просмотров: 10824 ]


Вложение:
Рис._155б_png_Конец_стройки_Без треугольника.png
Рис._155б_png_Конец_стройки_Без треугольника.png [ 43.86 КБ | Просмотров: 10824 ]


§10. НЕДОСТАТОК РИСУНКА 155а

На рис. 155а имеются две совершенно одинаковые жирные линии: верхняя и нижняя. Это обстоятельство скрывает от читателя тот факт, что эти линии выполняют принципиально разные функции:

• верхняя линия выполняет простейшую функцию, символизируя начало параллельных процессов;
• нижняя линия, напротив, выполняет очень сложную функцию. Она реализует алгоритм обработки информации, показанный на рис. 155.

Отсюда проистекает вывод. Если необходимо сделать акцент на обработке информации, надо пункт слияния изображать в виде треугольника, как на рис. 154. Если же такой акцент не нужен, треугольник следует убрать. И рис. 154 заменить на рис. 155а.

§11. СРАВНЕНИЕ ЯЗЫКОВ

В данной книге все алгоритмы нарисованы на языке ДРАКОН. Но в этой главе (§§6, 7, 9, 10) мы отошли от этого принципа. При описании строительства дома использован другой язык (назовем его «язык Z». Последний значительно удобнее для изображения параллельных процессов типа «строительство дома».

В §8 мы снова вернулись к ДРАКОНу. Потому что язык Z принципиально не может описать обработку информации в схеме треугольника. А язык ДРАКОН решает эту задачу точно и подробно.

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

Здесь нет противоречия. Язык ДРАКОН можно расширить, включив в его состав элементы языка Z.

§12. ВЫВОДЫ

1. На языке ДРАКОН параллельный процесс запускается командой Пуск.

2. На языке ДРАКОН параллельные процессы могут заканчиваться двумя способами:
• командой Останов;
• без использования команды Останов, когда каждый процесс выполнит свою задачу и достигнет конца.

3. Рассмотрен альтернативный способ изображения параллельных процессов с помощью языка Z.

4. Язык Z — это условное название для различных нотаций, обозначающих пункты разделения параллельных процессов (concurrent fork) и пункты слияния параллельных процессов (concurrent join).

5. Указанные нотации включают жирные линии и треугольник.

6. На языке Z начало нескольких параллельных процессов обозначается жирной линией.

7. На языке Z конец параллельных процессов обозначается:
• либо треугольником (если нужно подчеркнуть, что в треугольнике выполняется сложная обработка информации);
• либо жирной линией (если акцент на обработке информации не ставится).

8. Выходной сигнал треугольника возникает в тот момент, когда завершится последний из N параллельных процессов.

9. Завершение всех процессов на входе треугольника позволяет выполнить действие на его выходе.

10. Схема Треугольник выполняет обработку информации по сложному алгоритму. Этот алгоритм нельзя описать на языке Z, но можно описать на языке ДРАКОН.

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

12. Язык ДРАКОН целесообразно расширить и включить в его состав графоэлементы языка Z.


Последний раз редактировалось Владимир Паронджанов Среда, 23 Март, 2011 11:49, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 21 Март, 2011 15:39 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4811
Откуда: Москва
Уважаемый Эдуард Ильченко!

Жирные линии в моей Главе 14 по Вашему совету
взяты из UML, но без стрелок.

Источники:

1. http://www.intuit.ru/department/pl/umlbasics/11/2.html
Рис. 11.4 и 11.5.

2. http://www.info-system.ru/designing/met ... heory.html
См. скриншоты.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Март, 2011 09:06 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Владимир Паронджанов писал(а):
Глава 14

[b]ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ
...
7. На языке Z конец параллельных процессов обозначается:
• либо треугольником (если нужно подчеркнуть, что в треугольнике выполняется сложная обработка информации);
• либо жирной линией (если акцент на обработке информации не ставится).

8. Выходной сигнал треугольника возникает в тот момент, когда завершится последний из N параллельных процессов.

9. Завершение всех процессов на входе треугольника позволяет выполнить действие на его выходе.

10. Схема Треугольник выполняет обработку информации по сложному алгоритму. Этот алгоритм нельзя описать на языке Z, но можно описать на языке ДРАКОН.
...
Уважаемый Владимир Даниелович!
Вопросы такие:
А) Не является ли сложная обработка информации в треугольнике способом представить некий вариант (случай) монитора взаимных исключений (процесса, поддерживающего взаимодействие других процессов через их общие переменные)?
Б) Правильно ли, что используется только рандеву-оператор посылки сообщения (по-прежнему нет оператора приёма), а также что начало процессов не подразумевает сложной обработки ни в каком случае?
В) (вытекает из предыдущих) Каков общий метод построения алгоритма треугольника (и в зависимости от чего он строится: необходимости в сложной обработке; состава/свойств обрабатываемой информации; ещё чего-то)?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Март, 2011 12:44 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4811
Откуда: Москва
Драконограф писал(а):
Вопросы такие:

А) Не является ли сложная обработка информации в треугольнике способом представить некий вариант (случай) монитора взаимных исключений (процесса, поддерживающего взаимодействие других процессов через их общие переменные)?

Б) Правильно ли, что используется только рандеву-оператор посылки сообщения (по-прежнему нет оператора приёма), а также что начало процессов не подразумевает сложной обработки ни в каком случае?

В) (вытекает из предыдущих) Каков общий метод построения алгоритма треугольника (и в зависимости от чего он строится: необходимости в сложной обработке; состава/свойств обрабатываемой информации; ещё чего-то)?


Уважаемый Владислав!

Вы задали сложные для меня вопросы. Чтобы ответить на них
по существу, я должен ГЛУБОКО изучить вопрос и затратить
на это много времени. Такой возможности у меня нет.
Так что простите великодушно.

Я отвечу вам в общих чертах.

1. Зачем нужен треугольник?
Для практических целей он не нужен (почти).
Под практической целью я понимаю создание рисунка,
когда этот рисунок не требуется транслировать в объектные коды.

2. Треугольник нужен для теории причем для двух целей.

2.1. Чтобы почеркнуть принципиальную разницу
между началом параллельных процессов (пункт разделения) -- ЭТО ПРОСТО
и концом параллельных процессов (пункт слияния) -- ЭТО СЛОЖНО.

2.2. Чтобы ответить на вопрос: как перейти (транслировать)
от языка моделирования (например, UML) к объектным кодам.
Игорь Зимаев использует для этой цели переход UML -- раскрашенная сеть Петри.

Я хотел показать, что (для данного частного случая) МОЖНО СДЕЛАТЬ
ПРОЩЕ. Обойтись только Драконом, не прибегая к сетям Петри.

Именно поэтому я нарисовал подробный алгоритм на рис. 155.

3. Таким образом, если забыть про треугольник,
то предложенное мной решение на рис. 155а и 155б
практически совпадает с тем решением, которое реализовал
Геннадий Тышов.

4. Отличие моего решения от решения Тышова незначительно.
Я (по совету Эдуарда Ильченко) использовал жирную линию
(как в UML), а Тышов вместо жирной линии использовал
две параллельные линии (как в ГОСТ 19.701--90).
Все остальное одинаково.

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

Вы пишете:
Цитата:
Каков общий метод построения алгоритма треугольника (и в зависимости от чего он строится: необходимости в сложной обработке; состава/свойств обрабатываемой информации; ещё чего-то)?
Считаю, что это вопрос не ко мне. Я всего лишь предлагаю язык.
Как пользоваться языком и какие алгоритмы придумывать -- это не моя задача.
Ответить на ваш вопрос должны другие люди, а именно те, кто будет пользоваться языком.
Я показал пример для частного случая (рис. 155). Я предполагаю, что так или примерно так можно действовать и в других случаях.

Возможно, на этом пути встретятся трудности.
Я бы сказал так: жизнь покажет и, если надо, поправит.


Последний раз редактировалось Владимир Паронджанов Среда, 23 Март, 2011 12:59, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Март, 2011 12:59 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Владимир Паронджанов писал(а):
Считаю, что это вопрос не ко мне. Я всего лишь предлагаю язык.
Как пользоваться языком и какие алгоритмы придумывать -- это не моя задача.
Ответить на ваш вопрос должны другие люди, а именно те, кто будет пользоваться языком.
Я показал пример для частного случая (рис. 155). Я предполагаю, что так или примернотак можно действовать и в других случаях.
Возможно, на этом пути встретятся трудности.
Я бы сказал так: жизнь покажет.
Тут дело в том. что уже, на мой взгляд, вводится над-язык (Z) относительно техноязыка. Значит, должны вроде вводиться и принципы их взаимосвязи, перехода между ними. Кстати, И. Зимаев, насколько его можно понять, вводит соответствие с сетями Петри, чтобы применить методы анализа процессов, которые для этих сетей наработаны. По литературе вижу ряд вопросов в этом смысле; но много не читал, дабы не было "избыточной сложности".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Март, 2011 13:15 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4811
Откуда: Москва
Драконограф писал(а):
Тут дело в том. что уже, на мой взгляд, вводится над-язык (Z) относительно техноязыка.
Полностью согласен с вами.

Значит, должны вроде вводиться и принципы их взаимосвязи, перехода между ними.
Полностью согласен с вами. Считаю, что определенный шаг в этом направлении я сделал. См. алгоритм на рис. 155.
Да, это скромный шаг. Этот шаг не исчерпывает проблему.

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



Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Март, 2011 13:48 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Владимир Паронджанов писал(а):
...
Считаю, что определенный шаг в этом направлении я сделал. См. алгоритм на рис. 155.
Да, это скромный шаг. Этот шаг не исчерпывает проблему.

Но этот шаг все таки представляет собой определенную ценность.
Мне даже кажется, что этот шаг показывает направление,
в котором можно двигаться вперед.[/color]
Вот чтобы эффективнее двигаться - хотелсь бы видеть Ваше объяснение структуры алгоритма слияния, исходя из смысла, который Вы придаёте этому процессу.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 02 Апрель, 2011 11:31 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 512
Владимир Паронджанов писал(а):
§12. ВЫВОДЫ
...
4. Язык Z — это условное название для различных нотаций, обозначающих пункты разделения параллельных процессов (concurrent fork) и пункты слияния параллельных процессов (concurrent join).
Неудачное название. Могут возникнуть ассоциации с Z нотацией, определённой в ISO IEC 13568 (2002) и Z-языками на её основе.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 02 Апрель, 2011 12:59 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4811
Откуда: Москва
Уважаемый Рэйлвэй Каген!

Спасибо за замечание.
Букву Z я выбрал случайно и готов заменить ее на другую букву..

Может быть, заменить ее на букву W?

Получится язык W

Как Вы считаете?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 91 ]  На страницу 1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2020, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB