Re[24]: hard real-time garbage collection: ссылки
От: Шахтер Интернет  
Дата: 21.07.05 00:38
Оценка: 6 (2) -1
Здравствуйте, A.Lokotkov, Вы писали:

AL>Здравствуйте, Шахтер, Вы писали:


Ш>>Важно не летать из Москвы в Питер через Вашингтон. Не нужен GC в real-time системах. Не в абстрактных, а в реальных. Да и вообще в программировании он нужен только для ограниченного круга задач, которые к задачам, решаемым при разработке real-time систем имеют касательное отношение.


Ш>>А может, мы просто лучше понимаем предмет?


AL>http://www.aicas.com/publications.html


Чтобы долго не разводить дискуссию на тему -- самый лучший способ добиться гарантированного времени отклика, это использовать такие технологии программирования. которые обеспечивают более высокую производитьность результирующего кода. И не использовать тех приёмов и конструкций, добиться от которых хорошей производительности трудно или невозможно в силу их природы. Т.е. заниматься рилтаймом на Яве можно конечно, но это забивание шурупа молотком. Тем более, что как язык Ява значительно уступает С++ в выразительной силе -- нет ради чего стоит прилагать усилия.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[25]: hard real-time garbage collection: ссылки
От: A.Lokotkov Россия http://www.linkedin.com/pub/alexander-lokotkov/a/701/625
Дата: 21.07.05 05:57
Оценка:
Здравствуйте, Шахтер, Вы писали:

AL>>Здравствуйте, Шахтер, Вы писали:


AL>>http://www.aicas.com/publications.html


Ш>Чтобы долго не разводить дискуссию на тему -- самый лучший способ добиться гарантированного времени отклика, это использовать такие технологии программирования. которые обеспечивают более высокую производитьность результирующего кода. И не использовать тех приёмов и конструкций, добиться от которых хорошей производительности трудно или невозможно в силу их природы. Т.е. заниматься рилтаймом на Яве можно конечно, но это забивание шурупа молотком. Тем более, что как язык Ява значительно уступает С++ в выразительной силе -- нет ради чего стоит прилагать усилия.


Об отношении понятий "производительность" и "timeliness" говорилось выше, думаю, не стоит повторяться. Следуя же Вашей логике, разработка встраиваемого ПО РВ должна выполняться в машинных кодах (а лучше на VHDL для больших матриц) строго под конкретную задачу и под конкретное железо без малейших попыток использовать существующие ОСРВ. Знаете, во что выливается корректная реализация, скажем, алгоритма Priority Inheritance (весьма популярный buzzword) в ОСРВ? Айкасовский GC с его гарантированными 150 мкс будет выглядеть феррари против запорожца.
bloß it hudla
Re[23]: hard real-time garbage collection: ссылки
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 21.07.05 07:22
Оценка:
E>Мне тут недавно знакомые интересную байку разсказали. Установили одному крупному заказчику Java-решение (все как полагается, EJB от WebLogic, 14 серверов от Sun). Да только узлы кластера стали подвисать ни с того, ни с сего. И ни Sun-овцы, ни WebLogic-овцы, ни разработчики ничего понять не могут (а там все по взрослому было, реальных спецов вызывали). И кончилось все тем, что в это приложение встроили принудительный запуск GC по таймеру. После этого ни одного зависания.

Чуть-чуть офтоп
То, что ты описал, от того, что GC почти нельзя из самой программы порулить. Например, в VW ST существует возможность подключать свои политики, которые в зависимости от определённых условий будут вызывать разные сборщики мусора.
... << RSDN@Home 1.1.4 stable rev. 510>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[26]: hard real-time garbage collection: ссылки
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 21.07.05 07:50
Оценка:
Здравствуйте, A.Lokotkov, Вы писали:

AL>Об отношении понятий "производительность" и "timeliness" говорилось выше, думаю, не стоит повторяться. Следуя же Вашей логике, разработка встраиваемого ПО РВ должна выполняться в машинных кодах (а лучше на VHDL для больших матриц) строго под конкретную задачу и под конкретное железо без малейших попыток использовать существующие ОСРВ. Знаете, во что выливается корректная реализация, скажем, алгоритма Priority Inheritance (весьма популярный buzzword) в ОСРВ? Айкасовский GC с его гарантированными 150 мкс будет выглядеть феррари против запорожца.


Александр, я вижу, что с айкасовским GC знаком. А этот GC метод finalize() у убираемых объектов вызывает?
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[27]: hard real-time garbage collection: ссылки
От: A.Lokotkov Россия http://www.linkedin.com/pub/alexander-lokotkov/a/701/625
Дата: 21.07.05 08:28
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, A.Lokotkov, Вы писали:


E>Александр, я вижу, что с айкасовским GC знаком. А этот GC метод finalize() у убираемых объектов вызывает?


Знаком пока только по материалам. Финализаторы вызываются только у объектов, созданных в ScopedMemory, -- памяти для объектов с ограниченным временем жизни. Realtime-потоки при этом могут вытеснять GC. При этом rt-потоки, по идее, должны оперировать объектами с неограниченным временем жизни (распределенными в ImmortalMemory). Это отвечает практическим нуждам. Однако эту систему, конечно же, легко завалить, как и любую другую, не имеющую координационного слоя.
bloß it hudla
Re[25]: hard real-time garbage collection: ссылки
От: Gaperton http://gaperton.livejournal.com
Дата: 21.07.05 12:08
Оценка: 13 (2)
Здравствуйте, Шахтер, Вы писали:

Ш>Это не контрпример. Это набор утверждений, в справедливости которых ещё надо убедится, поскольку они сильно смахивают на рекламные лозунги.


Ну конечно. Все вокруг врут, а ты один тут правду говоришь. Обвиняешь меня в намеренном вранье, значит? За базар отвечать готов, или это у нас "как бы не считается"?

Ш>Но даже если принять это всё за чистую монету, то выводы из этих фактов можно сделать совсем другие -- программисты Ericsson просто оказались не готовы к использованию C++, и выбрали платформу попроще и попонятнее для них.


А может, у них всегда работали прекрасные инженеры, и Эриксон всегда являлся одной из самых открытых для технологических инноваций компаний? Может, Эрикссон уже 40+ лет выпускает телекоммуникационное оборудование? Может, они финансировали в 80-х специальную программу исследований на тему "как свойства языка влияют на надежность и стоимость создания телекомовских приложений"? Может, исследовательская группа сформулировала набор требований к языку нового поколения и сделала его прототип? Может, опытные инженеры из продакшн группы сочли этот язык очень более подходящим для задач телекома, и дали отмашку на разработку платформы?

Короче, может, ты не самый умный, и вокруг совсем не идиоты?

Ш>Но чудес на свете не бывает и за всё надо платить. Какую цену в смысле производительности они заплатили -- я не знаю. И без детального анализа данного изделия это сказать невозможно.


Да нафиг мне не надо тебя обманывать. Изучай. Анализируй.
http://www.ericsson.com/about/publications/review/1998_01/files/1998012.pdf
http://www.erlang.se/publications/Ulf_Wiger.pdf

G>>В компании Ericsson вам в ответ на рассуждения в духе "не нужен GC в real-time системах" рассмеются в лицо.


Ш>Да хоть в яйца. Не надо пытаться давить на меня авторитетом компании. Я хорошо знаю изнанку крупных компаний, и что они скрывают за рекламными лозунгами.


Ничего вы не знаете. Если хочется, я подавлю на вас авторитетом таких людей как Joe Armstrong и Ulf Wiger — инженеров, которые создавали этот AXD301. Эти люди широко известны в сообществе — те, кто занимается телекомом, их знают по именам. Они заслужили себе уважение и доверие своей работой, а не форумной болтовней.

Поэтому этим людям я верю на слово (да им и соврать-то не дадут — враз репутацию потеряют), а вот принимать в серьез вас у меня оснований нет.

Ш>Поскольку содержит неконтролируемый элемент в себе. Вообщем -- очередная попытка забить шуруп молотком.

JFYI — инкрементальные GC не содержат в себе "неконтроллируемого элемента". Лучше бы вместо того, чтоб флеймить, занялся бы RTFM-ом на тему incremental GC и real-time GC.
Re[26]: hard real-time garbage collection: ссылки
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 21.07.05 12:46
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Ничего вы не знаете. Если хочется, я подавлю на вас авторитетом таких людей как Joe Armstrong и Ulf Wiger — инженеров, которые создавали этот AXD301. Эти люди широко известны в сообществе — те, кто занимается телекомом, их знают по именам. Они заслужили себе уважение и доверие своей работой, а не форумной болтовней.


G>Поэтому этим людям я верю на слово (да им и соврать-то не дадут — враз репутацию потеряют), а вот принимать в серьез вас у меня оснований нет.


Разрешите вставить свои пять копеек.

Вот ты пишешь:

Я его в очередной раз приведу — самый производительный и надежный в мире (на момент выпуска) ATM softswitch/media gateway AXD301 является soft-realtime системой и создан на платформе Erlang/OTP, где пямятью управляет GC реального времени. Разработка обошлась в четверо дешевле чем аналогичная попытка на С++, и в отличии от последней завершилась успехом.


Просто меня смущает, что тебе возражают, в основном по поводу hard real-time, а ты в пример приводишь soft real-time систему с GC.

Ну и еще хочется спросить, а в Ericsson кроме AXD301 еще что-нибудь realtime-мовое на Erlang-е замутили?
Я знаю, что они пытались свой Parlay шлюз продвигать, часть которого работала на отдельных машинах под какой-то ОСРВ. Вот интересно, на чем он написан? У тебя случайно ссылок готовых нет?
/Я без ерничества и ехидства спрашиваю. Просто подумалось, что за последние пять лет, что я real-time не занимаюсь, ситуация могла сильно изменится. Мне интересно, насколько именно./
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[22]: hard real-time garbage collection: ссылки
От: vdimas Россия  
Дата: 21.07.05 13:15
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Под hard-realtime понимается только 100% гарантированное время реакции. И все. Какое это время — 10 мс или 10 нс — с точки зрения определения совершенно неважно, эти аспекты определяются свойствами задачи и оборудования. С тем, что GC дает некоторый оверхед в смысле пиковых нагрузок, не спорит никто, это очевидно. И это не важно — здесь главное не в том, что оверхед есть, а важы два аспекта:

G>1) Можно ли разбить процедуру GC на интервалы, гарантированно не превышающие заданного порога.
G>2) Можно ли при этом гарантировать, что нельзя выделять память быстрее, чем она освобождается.

G>На оба вопроса ответ: можно. Все. С чем вы (не вы лично, а вся ваша группа оппонентов) спорите и что хотите доказать, я не понимаю. С моей точки зрения, вы жонглируете терминами и некорректно ставите вопрос.


Почему ответ на оба вопроса — можно? На конкретной железке, с конкретными минимальными интервалами и с конкретными прикладными алгоритмами ответ на второй вопрос никак не гарантируется.
Re[26]: hard real-time garbage collection: ссылки
От: vdimas Россия  
Дата: 21.07.05 13:54
Оценка: 40 (5)
Здравствуйте, Gaperton, Вы писали:

G>Ну конечно. Все вокруг врут, а ты один тут правду говоришь. Обвиняешь меня в намеренном вранье, значит? За базар отвечать готов, или это у нас "как бы не считается"?


Ш>>Но даже если принять это всё за чистую монету, то выводы из этих фактов можно сделать совсем другие -- программисты Ericsson просто оказались не готовы к использованию C++, и выбрали платформу попроще и попонятнее для них.


G>А может, у них всегда работали прекрасные инженеры, и Эриксон всегда являлся одной из самых открытых для технологических инноваций компаний? Может, Эрикссон уже 40+ лет выпускает телекоммуникационное оборудование? Может, они финансировали в 80-х специальную программу исследований на тему "как свойства языка влияют на надежность и стоимость создания телекомовских приложений"? Может, исследовательская группа сформулировала набор требований к языку нового поколения и сделала его прототип? Может, опытные инженеры из продакшн группы сочли этот язык очень более подходящим для задач телекома, и дали отмашку на разработку платформы?


blah-blah-blah...

Теперь посмотрим внимательней, о чем речь. Итак — телекоммуникационное оборудование. Основной задачей их приблуды — это управление пакетами данных. Это специфика №1, весьма важная. Из этой специфики вытекает другая специфика — необходимо наличие приличного объема ООП для кеширования пакетов. В свете рассматриваемого предмета — это еще более важная специфика, ибо для их условий — оверхед по памяти — не вопрос. (Интересно, сколько там ООП в их железке?)

Специфика №3 — основная функциональность (внутренняя) этой приблуды — выделять место под пакеты и затем освобождать. Причем, размер пакетов заранее не известен.

Специфика №4 — для телекоммуникационного оборудования гораздо важнее время реакции принимающей стороны. Прошу обратить на это внимание, ибо это напрямую связанно со спецификой №3 и характером работы GC как такового.

Специфика №5 — использование языка высокого уровня для "прикладной" логики. Вери велл... А на чем, извините, там написана "сердцевина" их приблуды — тот самый GC?

Собственно, ничего нового. Я сам не раз пропагандировал идею реализации технически сложных и низкоуровневых моментов на С/С++, а в качестве "клея", т.е. языка, выполняющего прикладной функционал — любой простой и подходящий, да хоть тот же VB.


--------
Скажу, что несоклько лет разрабатывал именно коммуникационное оборудование. Только оно разное бывает. В нашем случае у нас динамическое выделение памяти происходило крайне редко, в моменты инициализации связи. А потом использовались предвыделенные буферы под пакеты фиксированной длины. Собственно, на железках тех времен ни о каком GC не могло быть и речи, да и вообще не могло быть речи о постоянном динамическом выделении памяти, все алгоритмы вылизывались буквально до каждого такта.

Если сейчас мощности железок, а главное — стоимость этих железок позволяют писать хоть на VB + GC... Ну что ж... Значит спецы будут требоваться все меньше и меньше.


G>Короче, может, ты не самый умный, и вокруг совсем не идиоты?


Ш>>Но чудес на свете не бывает и за всё надо платить. Какую цену в смысле производительности они заплатили -- я не знаю. И без детального анализа данного изделия это сказать невозможно.


Ну заплатили, понятное дело. Просто эта цена падает год от года. Когда-то вопрос наличия лишнего метра статической памяти на свиче мог стоить лишние 20 баксов себестоимости. А последние лет несколько и динамическая по быстродействию и потреблению не уступает, к тому же — дешевле грязи. А всякие способы подключения по многобитным шинам позволяют напрямую загонять в нее данные прямо с адаптера волокна, уже успевает отрабатывать. Так что...
Re[26]: hard real-time garbage collection: ссылки
От: Шахтер Интернет  
Дата: 21.07.05 23:28
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Здравствуйте, Шахтер, Вы писали:


Ш>>Это не контрпример. Это набор утверждений, в справедливости которых ещё надо убедится, поскольку они сильно смахивают на рекламные лозунги.


G>Ну конечно. Все вокруг врут, а ты один тут правду говоришь. Обвиняешь меня в намеренном вранье, значит?


Я не обвиняю тебя в намеренном вранье -- я всего лишь тактично пытаюсь указать на контрпродуктивность ссылок на авторитеты.

G>Короче, может, ты не самый умный, и вокруг совсем не идиоты?


Скажем так. Я очень умный, а идиотов вокруг действительно хватает.

G>Ничего вы не знаете.


Да ну? Отвечаешь?

Вот свежий пример, что может скрываться за широко известной маркой.
здесь
Автор: Шахтер
Дата: 21.07.05


G>Если хочется, я подавлю на вас авторитетом таких людей как Joe Armstrong и Ulf Wiger — инженеров, которые создавали этот AXD301. Эти люди широко известны в сообществе — те, кто занимается телекомом, их знают по именам. Они заслужили себе уважение и доверие своей работой, а не форумной болтовней.


Да? Я вот занимаюсь телекомом, но их имена не знаю. Как там? Чтобы опровергнуть общее утверждение достаточно одного контрпримера?

G>Поэтому этим людям я верю на слово (да им и соврать-то не дадут — враз репутацию потеряют), а вот принимать в серьез вас у меня оснований нет.


А у меня другой подход. Trust nobody, Mr. Malder.

Ш>>Поскольку содержит неконтролируемый элемент в себе. Вообщем -- очередная попытка забить шуруп молотком.

G>JFYI — инкрементальные GC не содержат в себе "неконтроллируемого элемента". Лучше бы вместо того, чтоб флеймить, занялся бы RTFM-ом на тему incremental GC и real-time GC.

Вот когда мне действительно понадобиться в моей работе GC -- я им займусь. Но пока какой-либо необходимости привлекать GC я не встречал.
И ни одного аргумента, чем это мне может быть полезно, я пока не услышал.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[26]: hard real-time garbage collection: ссылки
От: Шахтер Интернет  
Дата: 21.07.05 23:35
Оценка: :)
Здравствуйте, A.Lokotkov, Вы писали:

AL>Здравствуйте, Шахтер, Вы писали:


AL>>>Здравствуйте, Шахтер, Вы писали:


AL>>>http://www.aicas.com/publications.html


Ш>>Чтобы долго не разводить дискуссию на тему -- самый лучший способ добиться гарантированного времени отклика, это использовать такие технологии программирования. которые обеспечивают более высокую производитьность результирующего кода. И не использовать тех приёмов и конструкций, добиться от которых хорошей производительности трудно или невозможно в силу их природы. Т.е. заниматься рилтаймом на Яве можно конечно, но это забивание шурупа молотком. Тем более, что как язык Ява значительно уступает С++ в выразительной силе -- нет ради чего стоит прилагать усилия.


AL>Об отношении понятий "производительность" и "timeliness" говорилось выше, думаю, не стоит повторяться. Следуя же Вашей логике, разработка встраиваемого ПО РВ должна выполняться в машинных кодах (а лучше на VHDL для больших матриц) строго под конкретную задачу и под конкретное железо без малейших попыток использовать существующие ОСРВ.


Бывает, что ничего другого и невозможно сделать.

AL>Знаете, во что выливается корректная реализация, скажем, алгоритма Priority Inheritance (весьма популярный buzzword) в ОСРВ?


Знаю. Вот у меня на борде с vxWorks -- фактически ни во что. Разница в пределах погрешности измерения.

AL>Айкасовский GC с его гарантированными 150 мкс будет выглядеть феррари против запорожца.


А это уже дешёвая демагогия -- сравнение венерианского яблочного сока с марсианским пургеном.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[27]: hard real-time garbage collection: ссылки
От: A.Lokotkov Россия http://www.linkedin.com/pub/alexander-lokotkov/a/701/625
Дата: 22.07.05 09:31
Оценка: 3 (1)
Здравствуйте, Шахтер, Вы писали:

AL>>Здравствуйте, Шахтер, Вы писали:


AL>>>>Здравствуйте, Шахтер, Вы писали:


AL>>Знаете, во что выливается корректная реализация, скажем, алгоритма Priority Inheritance (весьма популярный buzzword) в ОСРВ?


Ш>Знаю. Вот у меня на борде с vxWorks -- фактически ни во что. Разница в пределах погрешности измерения.


В VxWorks, qnx, rtlinux и прочих коммерческих и полукоммерческих ОС реализации PIP некорректная. Почему?
Корректная реализация при каждом захвате мьютекса предполагает обход всего графа нитей(процессов)-блокировок (в том числе на вводе-выводе и передаче сообщений) и подъем приоритета нитям, стоящим в цепочках блокировок. Освобождение мьютекса -- также весьма нетривиальная операция, ибо нужно правильно восстановить приоритеты вздрюченным нитям при освобождении какого-либо мьютекса (исходные ставить нельзя!). А изменение приоритета нескольким нитям выливается в несколько перетрясок priority queue. Первый итог: разработчики коммерческих и некоммерческих ОСРВ реализуют наивный (или чуть сложнее) алгоритм PIP, делающий использование PIP опасным. Второй итог: в корретной реализации PIP время захвата и освобождения мьютекса становится величиной, зависящей от того, что наваял прикладной программист. Хотели гарантированную латентность -- получили недетерминизм. Общий итог: ОСРВ sucks, ибо зазря кушают кучу тиков процессора, -- пишем руками на asm-е под голую железку. Это практически дословное утверждение одного из наших заказчиков-партнеров, с которыми мы вместе работаем над довольно ответственной системой.

Насчет дешевой демагогии, думаю, Вы погорячились.
bloß it hudla
Re[27]: hard real-time garbage collection: ссылки
От: Gaperton http://gaperton.livejournal.com
Дата: 22.07.05 15:26
Оценка: 26 (1)
Здравствуйте, Шахтер, Вы писали:

G>>Если хочется, я подавлю на вас авторитетом таких людей как Joe Armstrong и Ulf Wiger — инженеров, которые создавали этот AXD301. Эти люди широко известны в сообществе — те, кто занимается телекомом, их знают по именам. Они заслужили себе уважение и доверие своей работой, а не форумной болтовней.


Ш>Да? Я вот занимаюсь телекомом, но их имена не знаю. Как там? Чтобы опровергнуть общее утверждение достаточно одного контрпримера?


Trust nobody, Mr. Malder, гришь? (*потирает руки*) Ну и как, спрашивается, я могу тебе доверять, что ты телекомом занимаешься — тем более, что ты даже не знаешь кто такие Joe Armstrong и Ulf Wiger?

А хочешь узнать-то? Это, в общем, стоит затраченных усилий, даже если телекомом не заниматься Почитай вот это Making reliable distributed systems in the presence of sodware errors.

G>>Поэтому этим людям я верю на слово (да им и соврать-то не дадут — враз репутацию потеряют), а вот принимать в серьез вас у меня оснований нет.


Ш>А у меня другой подход. Trust nobody, Mr. Malder.


В твоем подходе осталось одно слабое место — он не доведен до логического конца. Problem is that you trust yourself too much. "Холтаф, вы в контрразведке не первый год, и давно пора бы уже понять, что доверять нельзя никому. Даже себе. Мне — можно".

Ш>>>Поскольку содержит неконтролируемый элемент в себе. Вообщем -- очередная попытка забить шуруп молотком.

G>>JFYI — инкрементальные GC не содержат в себе "неконтроллируемого элемента". Лучше бы вместо того, чтоб флеймить, занялся бы RTFM-ом на тему incremental GC и real-time GC.

Ш>Вот когда мне действительно понадобиться в моей работе GC -- я им займусь. Но пока какой-либо необходимости привлекать GC я не встречал.


Необходимости — нет, как нет необходимости писать на языках высокого уровня. Достаточно умный инженер все на ассемблере напишет, ну или в крайнем случае на С, а всякие там С++ — это для дураков и лентяев.

Ш>И ни одного аргумента, чем это мне может быть полезно, я пока не услышал.

Батенька, проще писать с ним. Проще. За овнершип полиси следить не надо. Этим и полезно. Я без проблем могу следить за овнершипом, у меня в С++ программах за три года один мемори лик был. Но знаешь, у меня есть много чем интересным заняться, кроме отслеживания овнершип полиси. И я с радостью с этим расстанусь при первой возможности это сделать.
Re[23]: hard real-time garbage collection: ссылки
От: Gaperton http://gaperton.livejournal.com
Дата: 22.07.05 16:51
Оценка: 9 (1) :))
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, Gaperton, Вы писали:


G>>Под hard-realtime понимается только 100% гарантированное время реакции. И все. Какое это время — 10 мс или 10 нс — с точки зрения определения совершенно неважно, эти аспекты определяются свойствами задачи и оборудования. С тем, что GC дает некоторый оверхед в смысле пиковых нагрузок, не спорит никто, это очевидно. И это не важно — здесь главное не в том, что оверхед есть, а важы два аспекта:

G>>1) Можно ли разбить процедуру GC на интервалы, гарантированно не превышающие заданного порога.
G>>2) Можно ли при этом гарантировать, что нельзя выделять память быстрее, чем она освобождается.

G>>На оба вопроса ответ: можно. Все. С чем вы (не вы лично, а вся ваша группа оппонентов) спорите и что хотите доказать, я не понимаю. С моей точки зрения, вы жонглируете терминами и некорректно ставите вопрос.


V>Почему ответ на оба вопроса — можно? На конкретной железке, с конкретными минимальными интервалами и с конкретными прикладными алгоритмами ответ на второй вопрос никак не гарантируется.


Любопытно, почему вы закрываете глаза на тот факт, что и безо всякого GC на конкретной железке с конкретными минимальными интервалами может точно также не хватить ресурсов уложиться в требуемый интервал. Эту глубокую мысль надо обязательно развить (а то мужики-то не знают, блин, тупые все вокруг!), и построить на ней аргументацию того, что real-time задачи вообще не решаются на современном железе.

Вы, наверное, мне возразите, что real-time задачи решать можно? А я вас спрошу (недоуменно так, так же как и вы меня): а почему? Вот например у процессора Z80 не хватит ресурсов, штоб раскодировать стек протоколов GSM, блин!

Я надеюсь, намек понятен? Может перестанем фигней заниматься?
Re[28]: hard real-time garbage collection: ссылки
От: Шахтер Интернет  
Дата: 23.07.05 00:43
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Здравствуйте, Шахтер, Вы писали:


G>>>Если хочется, я подавлю на вас авторитетом таких людей как Joe Armstrong и Ulf Wiger — инженеров, которые создавали этот AXD301. Эти люди широко известны в сообществе — те, кто занимается телекомом, их знают по именам. Они заслужили себе уважение и доверие своей работой, а не форумной болтовней.


Ш>>Да? Я вот занимаюсь телекомом, но их имена не знаю. Как там? Чтобы опровергнуть общее утверждение достаточно одного контрпримера?


G>Trust nobody, Mr. Malder, гришь? (*потирает руки*) Ну и как, спрашивается, я могу тебе доверять, что ты телекомом занимаешься — тем более, что ты даже не знаешь кто такие Joe Armstrong и Ulf Wiger?


Кому ты веришь на слово, а кому нет -- твоя личная проблема. Меня она не волнует.
А твоя наивная вера в то что все должны знать этих двух господ -- умиляет.

G>А хочешь узнать-то?


Нет.

G>Это, в общем, стоит затраченных усилий, даже если телекомом не заниматься Почитай вот это Making reliable distributed systems in the presence of sodware errors.


Зуб даёшь, что мне этот текст покажется интересным?

Ш>>И ни одного аргумента, чем это мне может быть полезно, я пока не услышал.

G>Батенька, проще писать с ним. Проще. За овнершип полиси следить не надо.

Слежка за овнершип полиси на C++ легко автоматизируется.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[27]: hard real-time garbage collection: ссылки
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.07.05 00:51
Оценка: -2
Здравствуйте, AndreyFedotov, Вы писали:

AF>О да. Шахтёр крепкий мужик и я соответсвенно был в восторге именно от этой части его послания.


Эта часть в простонародье называется демагогией и переходом на личности.

AF>И разумеется я совершенно не обратил внимание на первую — содержательную часть.


Причем как минимум раза два подряд.
... << RSDN@Home 1.2.0 alpha rev. 578>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[28]: hard real-time garbage collection: ссылки
От: Шахтер Интернет  
Дата: 23.07.05 01:06
Оценка: 9 (1) -1 :))) :)
Здравствуйте, Gaperton, Вы писали:

G>Здравствуйте, Шахтер, Вы писали:


G>>>Если хочется, я подавлю на вас авторитетом таких людей как Joe Armstrong и Ulf Wiger — инженеров, которые создавали этот AXD301. Эти люди широко известны в сообществе — те, кто занимается телекомом, их знают по именам. Они заслужили себе уважение и доверие своей работой, а не форумной болтовней.


Ш>>Да? Я вот занимаюсь телекомом, но их имена не знаю. Как там? Чтобы опровергнуть общее утверждение достаточно одного контрпримера?


G>Trust nobody, Mr. Malder, гришь? (*потирает руки*) Ну и как, спрашивается, я могу тебе доверять, что ты телекомом занимаешься — тем более, что ты даже не знаешь кто такие Joe Armstrong и Ulf Wiger?


G>А хочешь узнать-то? Это, в общем, стоит затраченных усилий, даже если телекомом не заниматься Почитай вот это Making reliable distributed systems in the presence of sodware errors.


Пробежался. Автор -- редкостный идиот. Не удивительно, что я его не знаю.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[28]: hard real-time garbage collection: ссылки
От: Шахтер Интернет  
Дата: 23.07.05 01:27
Оценка:
Здравствуйте, A.Lokotkov, Вы писали:

AL>Здравствуйте, Шахтер, Вы писали:


AL>>>Здравствуйте, Шахтер, Вы писали:


AL>>>>>Здравствуйте, Шахтер, Вы писали:


AL>>>Знаете, во что выливается корректная реализация, скажем, алгоритма Priority Inheritance (весьма популярный buzzword) в ОСРВ?


Ш>>Знаю. Вот у меня на борде с vxWorks -- фактически ни во что. Разница в пределах погрешности измерения.


AL>В VxWorks, qnx, rtlinux и прочих коммерческих и полукоммерческих ОС реализации PIP некорректная. Почему?


Она такая, какая есть -- исходя из того, что это РТОС, а не JavaVM. Если она лично вам чем-то не нравиться, это не значит, что она некорректная.
Она вполне себя оправдывает на практике.
Точно также можно предьявлять притензии к тому, как реализована целочисленная арифметика, например.
Хотите полноценно использовать инструмент -- изучите его свойства как следует и пользуйтесь с умом.

AL>...Второй итог: в корретной реализации PIP время захвата и освобождения мьютекса становится величиной, зависящей от того, что наваял прикладной программист.


Вот если следовать подходу, который тут Gaperton рекламирует -- нет разделяемых ресурсов, всё через очереди сообщений, то проблемы вообще не возникает -- из-за отсутствия вложенных блокировок.

AL>Общий итог: ОСРВ sucks, ибо зазря кушают кучу тиков процессора, -- пишем руками на asm-е под голую железку. Это практически дословное утверждение одного из наших заказчиков-партнеров, с которыми мы вместе работаем над довольно ответственной системой.


Вот, вот -- типичная демагогия. Система плохая, потому что черезжопие, которое наши орлы напроектировали жрет слишком много системных ресурсов.
Мне жаль вашу ответственную систему.

AL>Насчет дешевой демагогии, думаю, Вы погорячились.


Да нет, я ещё слишком мягок был.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[24]: hard real-time garbage collection: ссылки
От: AndreyFedotov Россия  
Дата: 25.07.05 06:40
Оценка: 1 (1) +1 -1
Здравствуйте, Gaperton, Вы писали:

G>Вы, наверное, мне возразите, что real-time задачи решать можно? А я вас спрошу (недоуменно так, так же как и вы меня): а почему? Вот например у процессора Z80 не хватит ресурсов, штоб раскодировать стек протоколов GSM, блин!

Z80 стоит 80 центов. Их легко можно поставить и 2 и 3. А ещё проще заменить на процессор с ценой в $2-8 и производительностью в 8-50 раз выше. Потому стоимость решения, которое потребляет в 10 раз больше ресурсов чем Z80 — будет в районе от $2 до $10 — что совершенно приемлемо для большинства областей, хотя при этом достаточно применений, где критично именно $0.8, а $2 уже много.
А вот попробуй заменить его на процессор или систему с произоводительностью в 1000000 раз выше? Сколько в такой системе будет стоить применение технологии, которая упростит программирование, но потребует в 10 раз больше ресурсов? Ты всё ещё уверен, что GC всегда себя оправдывает?

G>Я надеюсь, намек понятен? Может перестанем фигней заниматься?

Вот именно! Ты бы ещё на реле или радиолампе свои выкладки основывал.

Абсолютно очевидно, что в идеальной системе, с бесконечно высокой производительностью и объёмом памяти GC лучше, чем традиционная работа с памятью через кучу. И врядли здесь найдётся хоть кто-то кто станет с этим спорить
А вот в реальной системе всё очень зависит от того, чем именно эта система отличается от идеальной — каковы её ограничения, относительно решаемой задачи. Вот исходя из этого — по комплексу параметров из которых половина, если не больше вообще не относятся прямо к разработке ПО (такие как стоимость оборудования или проблемы теплоотвода) и определяется что более выгодно в данном конкретном случае. Это может оказаться и GC, а может и ассемблер.
Re[29]: hard real-time garbage collection: ссылки
От: Gaperton http://gaperton.livejournal.com
Дата: 25.07.05 12:10
Оценка:
Здравствуйте, Шахтер, Вы писали:

G>>А хочешь узнать-то? Это, в общем, стоит затраченных усилий, даже если телекомом не заниматься Почитай вот это Making reliable distributed systems in the presence of sodware errors.


Ш>Пробежался. Автор -- редкостный идиот. Не удивительно, что я его не знаю.

Yes!!! Ну конечно это не удивительно. Ты вообще много чего не знаешь.

Ш>>>И ни одного аргумента, чем это мне может быть полезно, я пока не услышал.

G>>Батенька, проще писать с ним. Проще. За овнершип полиси следить не надо.
Ш>Слежка за овнершип полиси на C++ легко автоматизируется.
Какой ты все-таки умный, если твоим словам верить, Шахтер, аж дух захватывает! Но я последую твоему совету, и им верить не буду. А давай ты для разнообразия хотя бы разок мешки поворочаешь, Mr. Malder?

Расскажи, как ты легко напишешь автоматический проверяльщик для ownership policy принятой в COM. На вход — прога. На выход — список методов, где нарушаются соглашения о подсчете ссылок для input и output параметров. И циклические ссылки отлови.

Но проверяльщик для COM — это ерунда. Самое интересное, конечно, это "следильщик", который будет следить за выполнением ownership policy на этапе дизайна моей аппликухи, когда у меня кода еще не написано, и все в голове. Шахтер не в курсе, что об ownership policy надо в основном на этапе дизайна думать, а то потом сильно поздно будет? Шахтер не понимает, что все мемори лики статически найти невозможно, а задача "отслеживания ownership policy" эквивалентна поиску ликов?

Ну не понимает, ну и ладно, в конце-то концов. Что мне теперь, каждому Шахтеру простые вещи объяснять? Так что извини, дорогой. Лучше продолжай считать всех идиотами — и тебе так будет проще, и остальным людям тоже .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.