DRAKON.SU

Текущее время: Четверг, 28 Март, 2024 13:37

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




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: Пятница, 23 Октябрь, 2015 09:06 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 423
Владимир Паронджанов писал(а):
andr писал(а):
Здесь, фактически, нет операторов порождения параллельных процессов

В языке ДРАКОН есть операторы порождения параллельных процессов и все остальное, что нужно для алгоритмов реального времени http://drakon.su/_media/biblioteka_1/03 ... itmy_1.pdf см. стр. 222-226

У меня нумерация страниц в файле и на счетчике на совпадают.
По-видимому, имелось в виду - рис.126:
Вложение:
ПромАлг-07.PNG
ПромАлг-07.PNG [ 55 КБ | Просмотров: 4492 ]

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

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

Возврат из дочернего потока в родительский (стрелочка вверх) может быть реализован по разному.
Фактически это явный или неявный оператор ожидания некоторого признака окончания дочернего потока типа wait.
Основой поток приостанавливается, если дочерний поток не завершился
(или проскакивает дальше, если дочерний поток уже завершился).
Это неявная параллельная конъюнкция потоков - по логической операции И (And):
x & y
завершился (событие x) фрагмент основного потока И завершился (событие y) дочерний поток (nane):

-------------------------------
В низкоуровневой реализации параллелизма можно
(почти) одновременно запустить по отдельности несколько дочерних потоков.
Для этого необходимо подряд вставить несколько операторов типа create.
Также по отдельности надо отлавливать завершение этих потоков, например - подряд идут операторы типа wait
(в разном синтаксисе и в разной лексике).
Но суть одна - это многоместная конъюнкция из нескольких двухместных конъюнкций типа:
((x & y) & z) = x & y & z.

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

---------------------------------
В разных системах возможна и реализация параллельной дизъюнкции потоков - по логичечкой операции Или (Or) типа:
((x V y) V z) = x V y V z.
В OpenMP/C/C++ для этого используется служебное слово nowait
(но там нужно четко систематически поэкспериментировать относительно дизъюнкции,
я это себе подготовил, но пока руки не доходят).
Но в первом приближении - это (вроде бы) так.

-----------------------------
То есть в общем случае надо различать завершение параллельного участка
по конъюнкции & или по дизъюнкции V
(и, в принципе - по любой булевой функции - но это требует исследования).
По умолчанию - это конъюнкция (с дизъюнкцией надо поаккуратнее).
Но уже желательно, все-таки, явное указание конъюнкции, например:
viewtopic.php?p=93285#p93285
Это уже необходимо по многим причинам:
не те уже наступают времена, чтобы работать на темной интуиции.

=====================
По представлениям автора поста параллельные алгоритмы не обязательно увязывать
с интерпретацией в терминах реального времени.

Например в трудоемких параллельных вычислениях:
1
Прежде всего необходимо корректно реализовать топологическую логику
для любых возможных сочетаний длительности параллельных работ:
здесь критическими являются отношения неполного порядка событий во времени.
2
Если актуальны вопросы производительности (пропускной способности),
то необходимо водить метрики длительности - в их логической комбинаторике
(безотносительно к конкретным временным датам их начала и окончания).

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 23 Октябрь, 2015 09:28 

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

Владимир Паронджанов писал(а):
В языке ДРАКОН есть операторы порождения параллельных процессов и все остальное, что нужно для алгоритмов реального времени http://drakon.su/_media/biblioteka_1/01 ... linnik.pdf см. стр. 222-226


andr писал(а):
По-видимому, имелось в виду - рис.126:
Нет, не так. Я имел в виду страницы книги 222-226. Это не одна страница, как Вы предположили, а пять страниц.

=========================

Реальное время и параллельные процессы описаны в двух главах:
Цитата:
Глава 13. Алгоритмы реального времени. стр. 205-221.
Глава 14. Параллельные алгоритмы. стр. 222-241.


Книга издана в издательстве ДМК-пресс дважды — в 2012 и 2014 гг. Она постоянно имеется в продаже в бумажном и электронном виде.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 23 Октябрь, 2015 10:30 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 423
Владимир Паронджанов писал(а):
andr писал(а):
Здесь, фактически, нет операторов порождения параллельных процессов

Владимир Паронджанов писал(а):
В языке ДРАКОН есть операторы порождения параллельных процессов и все остальное, что нужно для алгоритмов реального времени http://drakon.su/_media/biblioteka_1/03 ... itmy_1.pdf см. стр. 222-226

andr писал(а):
У меня нумерация страниц в файле и на счетчике на совпадают.
Вы правы. Не совпадают. Я указал страницы, как это принято в библиографических ссылках на литературу. Принято указывать номера страниц, как они напечатаны в книге. Никто не указывает страницы по счетчику.

andr писал(а):
По-видимому, имелось в виду - рис.126:
Нет, не так. Я имел в виду страницы книги 222-226. Это не одна страница, как Вы предположили, а пять страниц.

Вот что у меня есть по указанной ссылке:
http://drakon.su/_media/biblioteka_1/03._2010_druzheljubnye_algoritmy_1.pdf
Вложение:
ПромАлг-08.PNG
ПромАлг-08.PNG [ 97.69 КБ | Просмотров: 4479 ]

Вложение:
ПромАлг-09.PNG
ПромАлг-09.PNG [ 106.82 КБ | Просмотров: 4479 ]

Здесь явно что-то не так.

Владимир Паронджанов писал(а):
=========================

Уважаемый andr, Ваш ответ меня удивил. Похоже, что Вы не заглядывали в книгу. Тогда надо читать две главы.

Цитата:
Глава 13. Алгоритмы реального времени. стр. 205-221.
Глава 14. Параллельные алгоритмы. стр. 222-241.


Книга издана в издательстве ДМК-пресс дважды — в 2012 и 2014 гг. Она постоянно имеется в продаже в бумажном и электронном виде.

Заглядывать то, я заглядывал - в разные Ваши книги, уважаемый Владимир Даниелович.
Я здесь работал в основном на вскидку по схемам - у Вас, слава богу, обильная представительная визуализация.
Что касается читать, у меня значится:
систематически (аналитически) "долбать" первоисточники.
У Вас много первоисточников.
Включая "Почему мудрец похож на обезьяну" - мне ее принесли, она у меня лежит перед глазами в открытом ящике.
Есть краткая сводка.
Это все на очереди - параллельно приходится вести несколько направлений.
И здесь я подготовил себе плацдарм - хотя, наверное, непонятно зачем
(пока меня здесь терпят).
Надеюсь, там нет большого криминала.

Но я посмотрю, где фактически находятся указанные Вами главы и страницы
Цитата:
Глава 13. Алгоритмы реального времени. стр. 205-221.
Глава 14. Параллельные алгоритмы. стр. 222-241.


Последний раз редактировалось andr Пятница, 23 Октябрь, 2015 12:07, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 23 Октябрь, 2015 11:02 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 423
..


Последний раз редактировалось andr Пятница, 23 Октябрь, 2015 12:09, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 23 Октябрь, 2015 11:11 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Цитата:
Здесь явно что-то не так.


Уважаемый andr, приношу свои извинения.
Вы правы. Я ошибся и указал неверную ссылку.

Правильная ссылка такая:
http://drakon.su/_media/biblioteka_1/01 ... linnik.pdf

Это ссылка на книгу "Учись, писать, читать и понимать алгоритмы". Это самая последняя книга, которую я считаю эталоном. Она издана в 2012 и переиздана в 2014.

Я считаю ее эталоном, потому что в нее внесены исправления и дополнения по результатам коллективного обсуждения и критики языка ДРАКОН на данном форуме в 2008 — 2011 годах.

Поскольку у Вас мало времени, желательно читать только эту книгу.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 23 Октябрь, 2015 12:36 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 423
Владимир Паронджанов писал(а):
Цитата:
Здесь явно что-то не так.


Уважаемый andr, приношу свои извинения.
Вы правы. Я ошибся и указал неверную ссылку.

Правильная ссылка такая:
http://drakon.su/_media/biblioteka_1/01 ... linnik.pdf

Это ссылка на книгу "Учись, писать, читать и понимать алгоритмы". Это самая последняя книга, которую я считаю эталоном. Она издана в 2012 и переиздана в 2014.

Я считаю ее эталоном, потому что в нее внесены исправления и дополнения по результатам коллективного обсуждения и критики языка ДРАКОН на данном форуме в 2008 — 2011 годах.

Поскольку у Вас мало времени, желательно читать только эту книгу.

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

Но то что я написал по поводу схемы из раздела
Глава 9. Визуальные операторы реального времени
оно справедливо в обычном параллельном программировании:
viewtopic.php?p=93618#p93618
(в отношении реального времени там, в принципе, все понятно, но пока не отягощено личным опытом).


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

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


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

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


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

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