Страниц: 1 [2]
  Печать  
Автор Тема: Запуск не Photon'овского потока  (Прочитано 5452 раз)
da-nie
Full Member
***
Offline Offline

Сообщений: 167



Просмотр профиля
« Ответ #15 : Октября 04, 2015, 03:41:59 pm »

Цитировать
Только вот если особенности реализации будут приводить к тому, что получение результата затягиваться будет на 30 минут, то возникнет вопрос о хреновости этой реализации при соблюдении интерфейсной идентичности.

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

Цитировать
POSIX требует, чтобы процесс при определенных условиях при отправке не обрабатываемого сигнала терминировался.

Я так понимаю, речь идёт о получении необрабатываемого сигнала, приводящего к завершению процесса его получившего?

Цитировать
В QNX при клиент-серверном обмене если клиент с единственным потоком заблокирован сервером, то терминироваться он сможет только если сервер его разблокирует.

А как с этим обстоят дела в других системах? Я полностью блокирующие поток операции не использую, ибо прервать их можно только жёстко.

Цитировать
Абсолютно. Эмоциональная окраска не отождествляется с конкретным лицом.

Но ведь вы пишете конкретному лицу (цитирование это только подтверждает).

Цитировать
Тогда и предложение разбираться в частной проблеме лишено смысла.

Собственно, загрузка процессора с зависанием и есть основная проблема.

Цитировать
А что мешает рассмотреть использование на этом ноутбуке также QNX?

Военные. Они же не просто так этот самый Эльбрус хотят заставить применить - им импортная ОС нафиг также не нужна.
Записан

И день и ночь в пути
Dark
Sr. Member
****
Offline Offline

Сообщений: 343


Просмотр профиля
« Ответ #16 : Октября 04, 2015, 05:48:30 pm »

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

Результат всегда трактуется исходя из целей. В реальности он определяется не только достижением требуемого состояния, но и качественными характеристиками процесса перехода между состояниями. Конкретно в приведенном примере результат не достигается, поскольку целью использования калькулятора является ускорение вычислений.

Я так понимаю, речь идёт о получении необрабатываемого сигнала, приводящего к завершению процесса его получившего?

Речь идет о любом сигнале, поступление которого должно терминировать процесс.

А как с этим обстоят дела в других системах?

Это нужно обсуждать на форумах других систем.

Я полностью блокирующие поток операции не использую, ибо прервать их можно только жёстко.

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

Но ведь вы пишете конкретному лицу (цитирование это только подтверждает).

Цитирование подтверждает лишь опровергаемый/обсуждаемый тезис. В противном случае вы начинаете сами себе противоречить, поскольку писать неопределенному кругу лиц в диалоге на форуме невозможно в принципе.

Военные. Они же не просто так этот самый Эльбрус хотят заставить применить - им импортная ОС нафиг также не нужна.

Как же военные используют сертифицированный QNX (ЗОСРВ "Нейтрино") в других решениях? Или сертифицированный Linux (ОС Эльбрус) чем-то принципиально отличен от сертифицированного QNX на Эльбрусе?
Записан
da-nie
Full Member
***
Offline Offline

Сообщений: 167



Просмотр профиля
« Ответ #17 : Октября 04, 2015, 06:20:08 pm »

Цитировать
Конкретно в приведенном примере результат не достигается, поскольку целью использования калькулятора является ускорение вычислений.

Я бы сказал, что цель использования калькулятора является простая замена решения в уме на нажатия кнопок. Первые ЭВМ считали очень небыстро, но это было лучше, чем считать самому.
Поэтому я вполне уверен в том, что используя калькулятор всегда получу результат вычисления, ради которого я и нажимал кнопки. А скорость его работы это уже тонкости. Так же и в POSIX. Ни одно описание всех тонкостей работы не показывает. В конце-концов, есть и ошибки в реализациях. В том же QNX редактор ped не стесняется в файлах с кодами завершения строки и возврата каретки \r \n позволять загнать курсор между \r и \n и вписать туда символ. Это - ошибка реализации. Ну что ж, с ней жить. В этой версии она есть, в других может и не быть. Это выясняется экспериментально. В этой версии заблокированный клиент не прерывается сигналом, а в другой версии прерывается. В этой версии io-net не успевает справиться с передачей за системный тик, а в следующей вдруг да успеет.

Цитировать
Это нужно обсуждать на форумах других систем.

К сожалению, я эксплуатирую не только QNX, поэтому и интересно, какие аналогичные глюки в других системах. Smiley

Цитировать
то плакало кровавыми слезами требование POSIX по терминированию процесса

Но если это требование POSIX (обязательное завершение процесса), тогда либо ошибка реализации в QNX, либо утверждение о POSIX-совместимости нужно убрать.

Цитировать
Цитирование подтверждает лишь опровергаемый/обсуждаемый тезис.

Вы поняли о чём я говорил. Smiley Поэтому дальше можно не растекаться мысью.

Цитировать
Как же военные используют сертифицированный QNX (ЗОСРВ "Нейтрино") в других решениях? Или сертифицированный Linux (ОС Эльбрус) чем-то принципиально отличен от сертифицированного QNX на Эльбрусе?

В РВСН для ракетных комплексов (и для испытательной аппаратуры тоже) требования, как оказалось, сильно жёстче, чем для тех же спутников. Отсюда и Эльбрус, и его ОС. Она, конечно, Linux, но сродни МСВС, которую позиционируют как нашу ОС.
« Последнее редактирование: Октября 04, 2015, 06:21:54 pm от da-nie » Записан

И день и ночь в пути
Dark
Sr. Member
****
Offline Offline

Сообщений: 343


Просмотр профиля
« Ответ #18 : Октября 04, 2015, 06:28:29 pm »

ошибка реализации в QNX

Это пять! Cheesy

В РВСН для ракетных комплексов (и для испытательной аппаратуры тоже) требования, как оказалось, сильно жёстче, чем для тех же спутников. Отсюда и Эльбрус, и его ОС. Она, конечно, Linux, но сродни МСВС, которую позиционируют как нашу ОС.

Все, я понял. На форум студент заполз, удаляюсь Cheesy
Записан
da-nie
Full Member
***
Offline Offline

Сообщений: 167



Просмотр профиля
« Ответ #19 : Октября 04, 2015, 06:50:19 pm »

Цитировать
Это пять!

Да-да, в ОС ошибок реализации нет. Это только в прикладном ПО ошибок куча, а в ОС - да откуда же? Wink Smiley
Так вы определитесь, либо QNX - не POSIX-совместимая система (если, по вашим словам, POSIX настойчиво требует обязательного завершения процесса), либо ошибка в реализации.

Цитировать
Все, я понял. На форум студент заполз, удаляюсь

Так кто на личности-то переходит? Wink
И не студент я вовсе (институту уж 10 лет как). А вот к словам вы цепляетесь изрядно (вот в конкретном сообщении про РВСН я просто повторил то, что нам сообщил разработчик ракетного комплекса, к которому мы делаем одну игрушку (причём, всё импортное просто запрещено априори). И что же вам тут не понравилось?). Впрочем, с вами вести диалог просто глупо - пользы такое общение не приносит; это надо себя не уважать. Так что, взаимно. Wink
« Последнее редактирование: Октября 04, 2015, 06:57:37 pm от da-nie » Записан

И день и ночь в пути
ob1
Hero Member
*****
Offline Offline

Сообщений: 629


What has two thumbs up and doesn't give a crap?


Просмотр профиля WWW
« Ответ #20 : Октября 04, 2015, 10:28:37 pm »

Всё не читал, но и того, что выхватил из переписки немало — полностью блокирующие поток операции, жёстко прервать... кровавые слёзы, короче.

Я за POSIX хотел сказать. QNX в отличии от многих ОС (в т.ч. Linux) сертифицирована по POSIX, а не просто mostly POSIX-compliant.

А ошибки есть у всех. Но в первую очередь надо искать свои, а потом в ОС. ОС обычно обкатывается множеством заказчиков, так что ошибки выявляются и устраняются.
Записан
Dark
Sr. Member
****
Offline Offline

Сообщений: 343


Просмотр профиля
« Ответ #21 : Октября 05, 2015, 01:04:37 am »

А ошибки есть у всех.

Здесь не идет речи об ошибках ОС вообще. Сигнал не получит клиентский поток лишь по причине некорректно написанного сервера, собственно в чем и кроется разница между интерфейсом (рекомендацией) и реализацией (содержащей ошибку разработчика). Странно, что проблемы прикладного ПО умудряются списать на ядро ОС.
« Последнее редактирование: Октября 05, 2015, 01:11:28 am от Dark » Записан
mv
Full Member
***
Offline Offline

Сообщений: 153


Просмотр профиля
« Ответ #22 : Октября 05, 2015, 01:06:54 pm »

попробуйте решить загадку вот какого рода: http://qnx.org.ru/forum/index.php?topic=7992.msg65264#msg65264 Я лично её пока что не решил и система всё так же длительно работать с тиком 0.1 мс и высокими приоритетами потоков не может. Впрочем, надо в 6.5 попробовать.

Копайте в сторону 6.5 и сырых сокетов, работающих с помощью lsm-nraw.so без стека протоколов. Если нет явных проблем с аппаратурой (NMI/SMI, разделение прерываний и т.п.) задача уложиться в несколько миллисекунд (если я правильно понял ту тему) более чем реальна на мой взгляд.
Записан
da-nie
Full Member
***
Offline Offline

Сообщений: 167



Просмотр профиля
« Ответ #23 : Октября 05, 2015, 03:21:49 pm »

Цитировать
полностью блокирующие поток операции, жёстко прервать... кровавые слёзы, короче.

Ну извините, в вашей терминологии не силён.

Цитировать
Но в первую очередь надо искать свои, а потом в ОС.

Тут вопрос чистой логики. Либо QNX всё делает, как описано в POSIX (тогда указанное Dark поведение ОС является ошибкой), либо ОС работает как заложено, но не по POSIX (а Dark настаивает, что поток по POSIX должен быть уничтожен пренепременно).

Цитировать
ОС обычно обкатывается множеством заказчиков, так что ошибки выявляются и устраняются.

Правильно. Был в 6.3.0 какой-то прикол с одним из виджетов. В SP3, помнится, починили. Только вот не помню, что это за виджет был и в чём был прикол. Что-то с радиокнопками связанное вроде бы. То ли не перерисовывались они в каких-то случаях, то ещё ещё что-то. Забыл. Давно это было.

Цитировать
Странно, что проблемы прикладного ПО умудряются списать на ядро ОС.

А почему бы ОС просто не прервать заблокированный поток и дело с концом?

Цитировать
задача уложиться в несколько миллисекунд (если я правильно понял ту тему) более чем реальна на мой взгляд.

Я сегодня опять вернулся к этой теме (почти готово устройство для связи по ethernet), так вот, если в функции select указать в структуре времени ожидания нули (вообще не ждать), то минут через 50 загрузка процессора возрастёт до 100%. Но если задать, скажем, 1 мкс, то всё работает как часы. Конечно, время ожидания на select в худшем случае будет с пару-тройку системных тиков, но тик у меня 0.1 мс, так что приемлимо. Второй час тест на локальной машине (локальный клиент и сервер) работает идеально, никаких сбоев и повышений загрузки процессора.
« Последнее редактирование: Октября 05, 2015, 03:23:43 pm от da-nie » Записан

И день и ночь в пути
ob1
Hero Member
*****
Offline Offline

Сообщений: 629


What has two thumbs up and doesn't give a crap?


Просмотр профиля WWW
« Ответ #24 : Октября 05, 2015, 10:03:30 pm »

Тут вопрос чистой логики. Либо QNX всё делает, как описано в POSIX (тогда указанное Dark поведение ОС является ошибкой), либо ОС работает как заложено, но не по POSIX (а Dark настаивает, что поток по POSIX должен быть уничтожен пренепременно).

Ещё вопрос в том, кто как понимает POSIX. И кто его правильно понимает.
Записан
da-nie
Full Member
***
Offline Offline

Сообщений: 167



Просмотр профиля
« Ответ #25 : Октября 06, 2015, 06:15:39 am »

Цитировать
Ещё вопрос в том, кто как понимает POSIX. И кто его правильно понимает.

Ну, я читал POSIX исключительно в переводных статьях, так что на точное понимание как именно там сказано в оригинале не претендую. Smiley
Записан

И день и ночь в пути
Vishnya211
Участник
*
Offline Offline

Сообщений: 29


Просмотр профиля
« Ответ #26 : Октября 23, 2015, 08:48:59 am »

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

В "фотоновском" приложении зарегистрировала обработчик ввода, и зарегистрировала имя в /dev/name/local. Это, я так понимаю, у меня сервер. Со стороны нефотоновского процесса подключилась к этому имени функцией name_open. MsgSend отправляю эти данные и... сообщение проходит только один раз. Дальше уже никто ничего никуда не отправляет.
Понимаю, что мне нужно прислать ответ от phab, чтобы разблокировать клиента. Но не понимаю, каким он должен быть, и как клиент его должен получить.
Подскажите, пожалуйста, как все правильно сделать.
Записан
PoP
Sr. Member
****
Offline Offline

Сообщений: 336


Просмотр профиля
« Ответ #27 : Октября 23, 2015, 10:43:46 am »

Reply() ?
Записан
Vishnya211
Участник
*
Offline Offline

Сообщений: 29


Просмотр профиля
« Ответ #28 : Октября 23, 2015, 11:19:17 am »

Reply() ?
Делаю MsgReply (), все равно висит. Как клиент должен увидеть ответ? Мне надо на стороне клиента тоже вызывать MsgReceive()?
Записан
BrutNemo
Участник
*
Offline Offline

Сообщений: 26


Просмотр профиля
« Ответ #29 : Октября 27, 2015, 09:55:08 am »

Вы бы показали код функции, где получаете сообщение и делаете MsgReply.
Записан
Страниц: 1 [2]
  Печать  
 
Перейти в: