Здравствуйте!
Хотелось бы знать, как народ отнесся бы к появлению проекта по созданию Руccкой
ОС. Причём не только русской, но и всего русскоговорящего населения?
Присоеденились бы вы к такому проекту?
Прошу не относить к флейму. Речь идёт о уже существующем проекте.
С уважением,
VICH
Всего в теме 5452 сообщения
Отслеживать это обсуждение
№ 2142 06-08-2007 15:17 | |
Ответ на »сообщение 2140« (Geniepro) и на »сообщение 2141« (Илья Ермаков)
___________________________
Проблема с синхронизацией исчезает, как только понимается ради ЧЕГО собственно акты взаимодействия идут?
Не устану повторять, что необходимы ясная формализация и закрепление в языке (системе) понятия КАНАЛА связи между взаимодействующими (активными) сущностями. Это абсолютно упрощает построение систем! Синхронизация как раз и возникает в моменты обмена данными. Ни для чего кроме, активности не могут и НЕ ДОЛЖНЫ общаться. "Выставление флагов", "семафоры", "затребование лока мьютекса" - всё это легко базируется на аппарате блокирующего обмена сообщениями по каналам. Вы посмотрите, как минимально достаточны Plan9, Inferno, QNX и, в потенциале, - Minix3! Сравните, например, ЧТО позволяют делать План(Инферно) и QNX и каким количеством кода, их масштабируемость, оглушающе низкую "затратность" кода на получение этих эффектов и надёжность, достигаемую в этих системах!
№ 2141 06-08-2007 14:24 | |
Ответ на »сообщение 2140« (Geniepro)
___________________________
Всё это красиво, круто, навороченно... Но... Простоту надо искать, господа. Пока до простоты в параллельном программировании нам ещё много вёрст плыть....
№ 2140 06-08-2007 14:20 | |
Ответ на »сообщение 2136« (whitetown)
___________________________
Согласен, что Inter process communication - вещь сложная. Но какая альтернатива мьютексам, семафорам, кондварам и бэриерам?
Кстати, вот статья на эту тему: "Столпы параллелизма"
Три основных столпа - активные объекты, обменивающиеся сообщениями; параллелизм данных; безопасно разделяемые ресурсы.
В частности, в Хаскелле реализовано практически всё из упоминавшегося в этой статье:
в диалекте Concurrent Haskell (фактически это не диалект даже, а просто стандартная библиотека) есть лёгкие потоки (green threads) и потоки операционной системы;
потоки могут обмениваться друг с другом сообщениями;
в диалектах mobile Haskell (mHaskell) и Distributed Haskell можно производить распределённые вычисления, например в mHaskell можно послать на удалённый компьютер сообщение с программным кодом и его данными для выполнения на том компьютере;
потоки могут обращаться как к простой изменяемой памяти, так и к памяти со встроенными семафорами; в обоих случаях можно производить атомарные операции над этой памятью;
также есть поддержка транзакционной памяти (Softaware Transactional Memory, STM); за два года, как хаскеллеры начали изучать STM, они выяснили в этой области больше, чем было известно за двадцать лет до этого;
в диалекте Parallel Haskell можно указывать, какие выражения вычислять параллельно, с автоматическим распределениям по ядрам/процессорам (SMP);
скоро выйдет версия компилятора Хаскелла GHC с поддержкой параллелизма на уровне данных (Nested Data Parallelism, Data Parallel Haskell) с автоматическим распараллеливанием обработки параллельных структур данных; там вроде бы даже обещалась поддержка вычислений на GPU - современные видеокарты содержат более сотни ядер, перемалывающих плавающую арифметику;
ЗЫ. Стэн разрабатывает свою библиотеку акторов (актёров) для С++ - act-o - что-то типа активных объектов/процессов Ерланга...
№ 2139 06-08-2007 14:04 | |
Ответ на »сообщение 2137« (whitetown)
___________________________
Егор Гайдар, который в начале 90-х сказал "Зачем нам своя легкая промышленность, если все можно привезти из-за границы?" :)
Из него ещё интересней фраза (в интервью Радио России) в конце 92-начале 93 года вышла: "Успехи в экономике несомненны, но видны они только профессионалам!"...
Я помню, что на мой взрыв горького смеха семья сбежалась... А я потом долго решал вопрос, кто из же нас дегенерат?
№ 2138 06-08-2007 13:03 | |
Ответ на »сообщение 2136« (whitetown)
___________________________
Ответ на »сообщение 2128« (Илья Ермаков)
___________________________
Согласен, что Inter process communication - вещь сложная. Но какая альтернатива мьютексам, семафорам, кондварам и бэриерам? только не говорите MPI
Батенька, дык мониторы (кондвары, Вы ведь как раз от мониторов имели в виду?) - это ещё куда ни шло для разделения по данным. Лучше семафоров и критических секций. Апогей мониторов - активные объекты.
А для реально сложных задач, с неоднородными параллельными процессами - только уходить на сообщения, в том или ином виде. Рандеву в Ada, например. Модель Erlang-а. QNX. Композита вот появилась, как интерсный эксперимент...
Чтобы повысить эффективность, можно не изолировать потоки друг от друга совсем, только убрать разделение данных на запись. Разделение на чтение не требует синхронизации. В частности, интересная идея - неизменяемые структуры данных, копируемые при изменении.
Корни идеи - в LISP-е, кажется. Есть интересная работа Вольфганга Века (ученика Вирта, архитектора Блэкбокса): An Abstract Data Type for Freezable Lists and DAGs
http://europrog.ru/paper/ww1997-02e.pdf (0.4 М)
- про реализацию подобных структур в Обероне, с гарантиями безопасности.
№ 2137 06-08-2007 09:54 | |
Ответ на »сообщение 2126« (slava)
___________________________
ответ на: »сообщение 2125«
Помоему ничего не может быть глупее чем: "отечественная ОС".
Вы прямо как Егор Гайдар, который в начале 90-х сказал "Зачем нам своя легкая промышленность, если все можно привезти из-за границы?" :)
№ 2136 06-08-2007 09:27 | |
Ответ на »сообщение 2128« (Илья Ермаков)
___________________________
Так проблема параллельного программирования - отнюдь не в запуске потоков... А в программировании их взаимодействия. С примитивами уровня семафоров написание и отладка приложения с разнородными потоками, а особенно - библиотек, которые должны быть готовы ко входу и максимально бытрому "обслуживанию" произвольного числа потоков-клиентов - превращается в тихий ужас.
Согласен, что Inter process communication - вещь сложная. Но какая альтернатива мьютексам, семафорам, кондварам и бэриерам? только не говорите MPI
№ 2135 06-08-2007 08:16 | |
Ответ на »сообщение 2134« (Как слышно? Приём!)
___________________________
Ответ на »сообщение 2132« (Stargazer)
___________________________
Для программиста разница между "составляет" и "есть" должна быть очевидна.
Понятия "Составляет" и "входит в состав" суть разные вещи. Программист настолько программист, насколько ясно выражает свои мысли.
№ 2134 06-08-2007 08:09 | |
Ответ на »сообщение 2132« (Stargazer)
___________________________
Для программиста разница между "составляет" и "есть" должна быть очевидна.
№ 2133 06-08-2007 02:02 | |
<barmholio> да-да-да, винда - это самая православная ОС, потому что в ней есть иконы и службы, а не демоны и зомби, как в юниксах :)
http://bash.org.ru/quote/391188
Отслеживать это обсуждение
Дополнительная навигация: |
|