Страниц: [1]
  Печать  
Автор Тема: Разработчику: QNX: служба времени  (Прочитано 10615 раз)
olej
QOR.Team
****
Offline Offline

Сообщений: 42



Просмотр профиля
« : Октября 25, 2002, 01:09:00 pm »

Выложена (http://qnx.org.ru/docs-devel/clock.html) новая статья: "QNX: служба времени". Это даже не статья, а "заметки в тему" - результаты достаточно многочисленного экспериментирования и тестирования. Там ещё - работать и работать ..., но у меня на этот subj нет ни энтузиазма,  ни времени..., а результаты - интересные.

Этот материал должен быть интересен, в первую очередь, тем, кто сталкивается с созданием тайи-аутов, заданием и измерением временных задержек (т.е. правтически всем ), в первую очередь - сетевикам.

Не раз в форуме звучали вопросы типа: "как задать тайм-ауты по какой-то операции в микросекундном диаппазоне..." (напр. http://qnx.org.ru/forum/viewtopic.php?topic=89&forum=4&2), и давались советы: используйте select, используйте таймауты ядра (сугубо QNX изобретение...)... Статья как раз и даёт ответ на подобные вопросы, которрый в первом приближении звучит так: "никак"!

В QNX - как в художественном фильте, где герой "медленно и растяжно" потягивает джин-тоник... На самом деле - он прикладывается к своему стакану 25 (или сколько там точно?) раз в секунду (число кадров), а на вопрос "а чем он занят между кадрами N-1 & N ..." единственно правильный ответ: "а хрен его знает...".

QNX "живёт" во временной шкале, "сетке" тиков, плотность этой сетки - 1 миллисекунда (в 6.1 это - минимальное значение, а в 6.2 - установленное по умолчанию, но можно и меньше...). При задании любого временного интервала, скажем 15мксек. - вы можете считать его чем угодно, но реально это - от 2-х до 3-х мсек., а на практике, когда "тайм-аутируемые" операции (например чтение) - повторяются циклически, то возникает синхронизация с тиками, и - почти гарантировано - 3 мсек.!

Обо всём этом я попробовал достаточно подробно рассказать в статье. Дальше там показано, как уменьшить шаг "сетки" системных тиков вплоть до 10 мксек. (в 6.2), и про "грабли" которые вас при этом подстерегают:

- во-первых - это глобальная установка "масштаба жизни" системы, и никто кроме вас "ручками" (кроме перезагрузки ) его не восстановит;

- при последовательном снижении интервала тика вы можете (неожиданно и без всяких предупреждений) дойти до значения, которое глухо уничтожает систему (здесь правильно говорить именно об уничтожает, а не "завешивает", и почему - тоже есть в статье...). Я никогда не видел такого "плотного" висения QNX, если я скажу, что и выдёргивание сетевого шнура не выводит её из ступора - то это будет несколько преувеличением , но близко к тому...

- что противнее: то граничное значение тика, при котором это может случаться - не зависит однозначно от частоты процессора... Для быстрых (>300-400Мгц) компов это может быть и неактуально, но представьте перенос таких приложений в embedded на promPC (а там всё не так быстро), которые просто "убивают" комп ... Не понимая обсуждаемых деталей службы времени, я думаю, что "отлаживать" такую ситуацию вы будете долго

В общем ... пользуйтесь ...

P.S.Поскольку, отвечая на одни вопросы, статья ставит ещё больше других, а ещё и потому, что это экспериментальный материал - там может быть много неточностей, некорректных толкований наблюдаемого ... и т.д. Я бы был очень признателен всем, у кого возникнут даже сомнения в сказанном (не говоря о том, что найдена ошибка), если бы мне об том сообщали: либо по мэйлу, либо подняв обсуждения в соответствующих темах форума.

[ Это Сообщение было отредактировано: Olej в 2002-10-25 10:46 ]
Записан
mlk
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #1 : Октября 13, 2003, 02:50:00 pm »


Olej пишет:
Выложена (http://qnx.org.ru/docs-devel/clock.html) новая статья: "QNX: служба времени". Это даже не статья, а "заметки в тему" - результаты достаточно многочисленного экспериментирования и тестирования. Там ещё - работать и работать ..., но у меня на этот **** нет ни энтузиазма,  ни времени..., а результаты - интересные.

Этот материал должен быть интересен, в первую очередь, тем, кто сталкивается с созданием тайи-аутов, заданием и измерением временных задержек (т.е. правтически всем ), в первую очередь - сетевикам.

Не раз в форуме звучали вопросы типа: "как задать тайм-ауты по какой-то операции в микросекундном диаппазоне..." (напр. http://qnx.org.ru/forum/viewtopic.php?topic=89&forum=4&2), и давались советы: используйте select, используйте таймауты ядра (сугубо QNX изобретение...)... Статья как раз и даёт ответ на подобные вопросы, которрый в первом приближении звучит так: "никак"!

В QNX - как в художественном фильте, где герой "медленно и растяжно" потягивает джин-тоник... На самом деле - он прикладывается к своему стакану 25 (или сколько там точно?) раз в секунду (число кадров), а на вопрос "а чем он занят между кадрами N-1 & N ..." единственно правильный ответ: "а хрен его знает...".

QNX "живёт" во временной шкале, "сетке" тиков, плотность этой сетки - 1 миллисекунда (в 6.1 это - минимальное значение, а в 6.2 - установленное по умолчанию, но можно и меньше...). При задании любого временного интервала, скажем 15мксек. - вы можете считать его чем угодно, но реально это - от 2-х до 3-х мсек., а на практике, когда "тайм-аутируемые" операции (например чтение) - повторяются циклически, то возникает синхронизация с тиками, и - почти гарантировано - 3 мсек.!

Обо всём этом я попробовал достаточно подробно рассказать в статье. Дальше там показано, как уменьшить шаг "сетки" системных тиков вплоть до 10 мксек. (в 6.2), и про "грабли" которые вас при этом подстерегают:

- во-первых - это глобальная установка "масштаба жизни" системы, и никто кроме вас "ручками" (кроме перезагрузки ) его не восстановит;

- при последовательном снижении интервала тика вы можете (неожиданно и без всяких предупреждений) дойти до значения, которое глухо уничтожает систему (здесь правильно говорить именно об уничтожает, а не "завешивает", и почему - тоже есть в статье...). Я никогда не видел такого "плотного" висения QNX, если я скажу, что и выдёргивание сетевого шнура не выводит её из ступора - то это будет несколько преувеличением , но близко к тому...

- что противнее: то граничное значение тика, при котором это может случаться - не зависит однозначно от частоты процессора... Для быстрых (>300-400Мгц) компов это может быть и неактуально, но представьте перенос таких приложений в embedded на promPC (а там всё не так быстро), которые просто "убивают" комп ... Не понимая обсуждаемых деталей службы времени, я думаю, что "отлаживать" такую ситуацию вы будете долго

В общем ... пользуйтесь ...

P.S.Поскольку, отвечая на одни вопросы, статья ставит ещё больше других, а ещё и потому, что это экспериментальный материал - там может быть много неточностей, некорректных толкований наблюдаемого ... и т.д. Я бы был очень признателен всем, у кого возникнут даже сомнения в сказанном (не говоря о том, что найдена ошибка), если бы мне об том сообщали: либо по мэйлу, либо подняв обсуждения в соответствующих темах форума.

[ Это Сообщение было отредактировано: Olej в 2002-10-25 10:46 ]




Извини Olej, это не в тему но хотелося спросить:
Привет Olej. Хотел обратиться у тебе с вопросом о QNX 6.2.1. Если тебе не трудно подскажи пожалуйста как можно прочесть файлы:
- сохранил веб страницы , они сохранилися в htm формате
- все статьи с форума в начале   переводил в WORD и сохранял в doc формате, думал распечатаю будет наглядная информация при работе в QNX 6.2.1. После того как узнал что можно смотреть html файлы (правда я так и не смог просмотреть) с wordа перевел в htm формат. Но все равно просмотр для меня закрыт в QNX.
- установил workspace набираю проги, а как компилировать непонятно. Пытался через терминал не проходит.

P.S. Заранее благодарен за ответ.

Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



Просмотр профиля
« Ответ #2 : Октября 13, 2003, 05:19:00 pm »


mlk пишет:
Извини Olej, это не в тему но хотелося спросить:
...
P.S. Заранее благодарен за ответ.

Ответил почтой.
А вопросы - лучше в форум - ещё кому интересно будет.
И уж, во всяком случае, не засорять темы не по существу.
Записан
kiamor
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #3 : Ноября 28, 2003, 10:58:04 am »

Опечатка "на первой странице" в предложении: "Для детальное понимание функционирования..."
В статье не показывается рисунок "шкала системных тиков".
Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



Просмотр профиля
« Ответ #4 : Ноября 28, 2003, 01:40:47 pm »

Спасибо, что подсказываете.
Эта, и другие, статьи - пойдут в 1-й сборник статей по работам qnx.org.ru, готовящийся к изданию книгой издательством "Нолидж" Москва. 1-й: потому, что если он будет удачным, то это станет периодическим альманахом: 2-й, 3-й ...

Я для себя считаю это на сегодня - самым значащим проектом по результатам жизни qnx.org.ru. Если кто может и хочет подключиться к работе над материалами (этой статьи и других) - милости просим.
Записан
Страниц: [1]
  Печать  
 
Перейти в: