andr писал(а):
Владимир Паронджанов писал(а):
Про concurrent.
Насколько я знаю, параллельный процесс на английский переводится двояко:
— parallel process так я обозначил параллельный процесс реального времени.
— concurrent process так я обозначил "обычный" параллельный процесс, который по Госту 19.701—90 и по ISO 5807-1985.
Отличие от Госта (и ISO) есть, но небольшое.
Есть вопросы и замечания - не поперек, а попутная информация к размышлению.
1. По терминологии - в порядке полезного концептуального занудства.
Термин
concurrent process иногда переводится буквально (в транслитерации) как
конкурентные процессы:
в смысле
конкурирующие параллельные процессы - с конкуренцией за ресурсы и со средствами взаимоисключения
(с понижением степени параллелизма на соответствующих участках общего процесса).
Но в словарном переводе с английского дается однозначное толкование:
Цитата:
concurrent - параллельные;
concurrent [kənˈkʌrənt]
прил.
одновременный, параллельный
(simultaneous, parallel)
concurrent connection – одновременное подключение
concurrent connections – параллельные соединения
А в обратном переводе с русского термин "конкурентный" имеет другой перевод:
Цитата:
конкурентный - competitive:
конкурентный
прил.
1 competitive
(конкурентоспособный)
конкурентное преимущество – competitive advantage
2 competition, competitiveness, competitor
Очевидная нестыковка терминологии (в указанной ранее интерпретации).
Возможно здесь имеет место дрейф этимологии (смыслов исходного происхождения терминов).
Появляются вопросы:
1) Есть ли у кого-то на форуме свои представления
по этой смысловой англо-русской терминологической развилке
в отношении конкурирования и взаимоисключения процессов?
2) Если ли (или предполагается ли) в Драконе средства отображения таких задач?
Вернемся к нашим
concurrent process -
параллельным процессам:
кому это интересно - копаться в изначальных смыслах терминологии.
Проще не утруждаться, а придавать терминам свои подходящие смыслы
(или вообще не определять смыслы терминологии, а круто использовать ее интуитивно - по ходу дела).
Но при этом может порождаться большая неразбериха:
у всех лексика одинаковая, но ничего толком не поймешь - у кого она в каком смысле.
Приходится использовать ее формально (механически) - в конкретной системе применения.
Если "мы" выдвигаем книгу Дракона с параллелизмами на издание на английском языке (в логове параллелизма),
то, наверное, полезно более или менее разобраться с ними хотя бы промежду собой.
-------------------------------------------------
1. Вопрос на засыпку №1:
что значит
геометрическая метафора (аналогия) "
параллельные"
для процессов (???-01).
В геометрии "
параллельные" для
линий в пространстве:
это означает "
рядом идущие" линии - без пересечения.
Это исходный визуальный образ.
В схемотехнике "
параллельное соединение" элементов (резисторов, емкостей и т.п.):
явно отображается на принципиальных схемах параллельными линиями - со вставками УГО (и с поперечными соединениями).
Аналогия принципиальных схем понятна, хотя на монтажных схемах (и в натуре) явного визуального параллелизма может не быть.
В алгоритмике и программировании
параллельные процессы отображаются
параллельными отрезками прямых линий на временных диаграммах разных типов.
Например:
Вложение:
хвосты04.PNG [ 69.66 КБ | Просмотров: 16190 ]
На временных диаграммах есть явная визуальная геометрическая аналогия:
это
"рядом идущие" процессы во времени (представленные рядом идущими отрезками).
Она (аналогия) так или иначе может быть явно представлена и на схемах алгоритмов (и программ).
Итак - все это очень хорошо и наглядно.
Но это только смысловая метафора - аналогия.
Но аналогичный по смыслу - это еще не значит тождественный по смыслу.
Аналогии - это сильный инструмент первичного осмысливания новых и не очень понятных явлений:
на основе какого-то сходства (в чем-то) с уже известными и понятными явлениями.
Но рано или поздно по мере развития явлений исходные аналогии (в чем-то)
оказываются недостаточными и перестают работать (и даже могут мешать и противоречить):
например, всякие "всем понятные" божественные, мистические аналогии и т.п.
Нужно или привлекать новые аналогии или, что лучше, вникать в суть дела.
--------------------------------------------------
Вопрос на засыпку № 2:
что значит английский термин "
concurrent"
для процессов (???-02).
Термин "
current" означает:
текущий - протекающий в пространстве или происходящий в настоящее время (это прилагательное),
а также -
поток, струя и т.п. (существительное).
Термин "
concurrent" означает
одновременный,
параллельный (во времени).
То есть - это, примерно как, процесс ,
совместно (con...)
протекающий (...current) во времени,
одновременно выполняемый:
процесс, выполняемый одновременно с некоторым другими процессами.
Термин "concurrent" для процессов - это первичный и более точный по смыслу, чем термин "parallel".
Основной смысл параллелизма процессов - это их совмещение во времени.
Точнее:
это
совмещение интервалов времени их выполнения:
визуально представляется
пересечением (проекций) интервалов некоторых отрезков на временных диаграммах (рис. 3.5).
То есть основной
смысл параллелизма процессов - это их
одновременность .
А точнее - это их
совмещение во времени.
А еще точнее - это
пресечение интервалов времени их выполнения.
Пересечение - это не значит обязательно полное совмещение.
Возможны разные варианты пресечения - это источник большой вариативности задач и проблем параллелизм:
в отличие от совмещения или не совмещения для коротких - точечных (в идеале) событийных процессов.
---------------------------------------
Параллельные процессы могут быть:
1)
Независимые - независимо выполняемые:
-- полностью независимые (например, в многопоточной ОС их может быть очень много):
например, независимо запускаем, прекращаем и перезапускаем редактор, программу счета и музыкальную программу;
-- комплексы взаимосвязанных процессов с их координацией по событиям начала и конца.
Это самые простые, но очень распространенные и это базовые (каркасные) структуры для представления алгоритмами.
Они подлежат первоочередной разработке, в том числе в дракон-технологии (и уже так или иначе представлены в разных отношениях).
2)
Взаимодействующие (
interactive,
cooperative) на интервалах времени их выполнения:
-- здесь (бесконечно?) много разных видов взаимодействия:
обмен внутренними событиями, конкуренция за доступ к общим (разделяемым) ресурсам и т.п.;
-- здесь (бесконечно?) много разных вопросов на засыпку:
в частности, непонятки с русским термином "конкурентный" в смысле состязаний за что-то,
которому соответствует английский термин "competitive".
Все это, наверное, будет актуально уже для последующих изданий дракон-технологий.