Отправляет email-рассылки с помощью сервиса Sendsay

Бизнес on-line

  Все выпуски  

Softcraft: новости сайта и не только (020)


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

Softcraft: новости сайта и не только (020)

http://www.softcraft.ru

Я приветствую всех своих подписчиков!


Пациент скорее жив...

Это я о себе. Почти три месяца не прикасался к сайту. В общем-то понять можно: лето, пора отпусков и прочей расслабухи. Если бы так оно и было! На самом деле пришлось изрядно потрудиться. В результате ни отпуска, ни лета. Ну и конечно, когда приходится по 8-10 часов в день сидеть за компом, заниматься чем-то другим практически невозможно. Было заброшено все, а не только сайт. И вот, наконец, появился просвет. Понемногу начинаю приводить дела в порядок.


Сколько голов...

Предлагаемая Вашему вниманию статья М.В. Беляева "Размерность программного пространства и модель триггера" является продолжением сериала, начатого в незапамятные времена Вячеславом Любченко на страницах журнала "Мир ПК". Где-то в первой серии им была брошена перчатка: "А слабо ли Вам написать модель триггера?" Думаю, что это не первый ответ, выраженный в программе. Лично мне понравилось присутствие аж десяти моделей триггеров, реализуемых с использованием разных логических элементов. Кроме этого положительные эмоции вызвал сам подход к анализу с использованием не имитационного, а математического моделирования, когда проведен предварительный анализ состояний и переходов, а полученное программное решение явилось ужатым обрамлением этого анализа. Хотя, как мне кажется, Вячеслав не будет удовлетворен предложенным ответом, так как основной акцент в своих рассуждениях делает на непосредственном воспроизведении триггера из отдельных элементов по образу и подобию схемы, собранной с помощью паяльника. Конечно, хотелось бы увидеть и его полную версию программы. Почему-то в сети я ее не нашел. Возможно, плохо искал. Но факт остается фактом: перчатка поднята...

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

На мой взгляд, параллелизм определяется не одновременностью возникновения событий, а одновременностью протекания процессов. Хотя, в ряде случаев, и события трактуются как длительные процессы (например в диаграмме состояний, используемой в UML), допускающие одновременное протекание. Конечно, в принципе всегда можно события выстроить в последовательность, выделив в них момент возникновения. Но не всегда за счет этого любые "истинные" параллельные процессы можно свести к правильным "поочередным". Например, не во всех случаях, даже при 100% попадании, дуэлянт, выстреливший первым останется в живых. Полет пули - тоже длительный процесс. Пока она летит, может произойти выстрел оппонента. То же самое касается и триггера. Отдельные логические элементы могут иметь разную задержку и входной сигнал, появившийся первым, может "достичь выхода" вторым. Насколько я помню схемотехнику, такая ситуация является достаточно типичной. На переходные процессы могут влиять и различные помехи, что становится причиной "дребезга" выходных сигналов. Поэтому триггеры обычно и строятся по двухступенчатой схеме. Кроме того, серьезное моделирование цифровых электронных схем очень часто осуществляется с использованием третьего, промежуточного, состояния, задающего неопределенность.

Таким образом, вряд ли истинный параллелизм доставляет программисту больше неприятностей, чем параллелизм выдуманный. Ведь его моделирование в мультипрограммных системах подчиняется тем же законам. А мультипрограммность вводится из-за того, что оборудование вычислительной системы функционирует параллельно. Реалии же таковы, что мы постоянно существуем в независимом параллельном окружении, и наше взаимодействие с внешней средой - это практическое решение вопросов синхронизации, распределения ресурсов, формирования приоритетов. Да и одновременность событиий легко разрешается за счет приоритетных арбитров. Не думаю, что программирование является чем-то особенным, что должно вести к исключению из него параллельных процессов. Что касается стандартов на параллельное программирование, то кое-что существует. Например, MPI, MOSIX, PVM... Вряд ли здесь будет единый стандарт, потому что существует множество стратегий управления паралельными вычислениями. То же самое касается и событийного управления. Ведь предлагает же MS единственный и лучший стандарт, реализованный в Windows. Но почему-то народ этого не понимает...

Ну и в конце. Я не разделяю оптимизм и уверенность сторонников автоматной парадигмы. Переворота не наступит, так как в программировании существуют и другие критерии. Будет комплексное использование разноруких парадигм...;)


С наилучшими пожеланиями!

А.Л.



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу
Рейтингуется SpyLog

В избранное