Официальный форум СВД Встраиваемые Системы
09 Декабря, 2016, 02:56:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Особенности команды rtc, ход времени на разных QNX-контроллерах  (Прочитано 305 раз)
LH
Опытный пользователь

Сообщений: 254


« : 26 Августа, 2016, 10:13:40 »

Команда rtc в ОС QNX4.25 и в QNX6.5 c использованием Clock Type = net
синхронизирует время межу контроллерами с точностью до секунды.

Выдать команду в QNX6.5

#rtc -s net A1

т.е. установить время текущего контроллера на удаленном контроллере А1 в сети QNX6
не удается...


---

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

На удаленном контроллере время запрашивается с помощью механизма SRR запросом к тестовой программе-серверу.

Видно, что время на разных ПК "течет" по-разному.

После синхронизации с помощью rtc net  примерно за 300 секунд работы теста разница хода времени на разных контроллерах достигает 10-ти миллисекунд.

Наблюдения делались как в ОС QNX4.25 так и в ОС QNX6.5

В сети QNX находятся ПК с процессорами
  
Intel Core(TM) i5-3550CPU 3.3GHz,

Intel Core(TM) 2 DUO E7400 2.8 GHz

Контроллеры имеют нулевую загрузку: никаких приложений с длительной обработкой большого количества
аппаратных прерываний не запущено.

В чем может быть дело, известная ли это проблема?

Как надежно синхронизировать время на контроллерах в сети QNX с точностью до миллисекунды?


Спасибо.
« Последнее редактирование: 26 Августа, 2016, 17:06:44 от LH » Записан
LH
Опытный пользователь

Сообщений: 254


« Ответ #1 : 27 Августа, 2016, 09:43:12 »

Что-то про точность хода времени в QNX4 написано здесь:

http://www.qnx.com/developers/qnx4/qnx4kb/solution.html?code=7743

Не понятно:
как работает ключ -r утилиты rtc для уточнения хода времени? Просьба пояснить.
Записан
Олег Большаков
Администратор
Житель форума

Сообщений: 2934



WWW
« Ответ #2 : 30 Августа, 2016, 15:19:08 »

Команда rtc -s net в QNX 6 не поддерживается.

С описанной Вами проблемой, насколько мне известно, ранее заказчики к нам не обращались. Без описания алгоритма теста, сложно что-то прокомментировать. Точность в 1мс теоретически может обеспечить NTP в локальной сети.

Ключи -r и -S утилиты rtc задают параметры постепенной подстройки времени при помощи функции qnx_adj_time(). Ключ -r <rate> определяет скорость с которой подводится время как 1 / <rate> процентов от ticksize. Ключ -S <секунды> определяет максимальную разницу в секундах, при которой будет выполняться постепенная подстройка времени. Более подробную информацию можно почерпнуть в описании функции qnx_adj_time().
Записан

LH
Опытный пользователь

Сообщений: 254


« Ответ #3 : 31 Августа, 2016, 09:34:23 »

>Команда rtc -s net в QNX 6 не поддерживается.

Хотя (судя по документации) должна поддерживаться...
http://www.qnx.com/developers/docs/6.3.0SP3/neutrino/utilities/r/rtc.html


>С описанной Вами проблемой, насколько мне известно, ранее заказчики к нам не обращались.
>Без описания алгоритма теста, сложно что-то прокомментировать.
Приложил текст теста для QNX4.

Сперва запускал тест в режиме сервера на одном узле
#ttcs_qnx4 -s

Потом ( от суперпользователя ) - в режиме клиента на другом узле
#ttcs_qnx4 -c

Отчет работы теста так же прикладываю.

При запуске на описанных выше контроллерах разница хода времени вроде бы достаточно существенна.

При смене узлов севера и клиента  знак разницы хода времени так же меняется на противоположный.

При запуске клиента и сервера на одном и том же узле разницы хода времени не обнаруживается Smiley

Буду признателен за критику теста и его результатов.

« Последнее редактирование: 31 Августа, 2016, 11:35:58 от LH » Записан
LH
Опытный пользователь

Сообщений: 254


« Ответ #4 : 31 Августа, 2016, 10:16:55 »

Тот же тест и отчет в сети QNX6.

Для работы теста на узлах запущены серверы имен :
#gns -s
#gns -c

Тест проведен на контроллерах с процессорами Intel Core DUO с такстовой частотой 3 и 2 ГГц.
Записан
Олег Большаков
Администратор
Житель форума

Сообщений: 2934



WWW
« Ответ #5 : 01 Сентября, 2016, 15:28:27 »

>Команда rtc -s net в QNX 6 не поддерживается.

Хотя (судя по документации) должна поддерживаться...
http://www.qnx.com/developers/docs/6.3.0SP3/neutrino/utilities/r/rtc.html

Уточните, пожалуйста, версию QNX 6, с которой Вы работаете. По приведённой ссылке я не увидел, что rtc -s net должно работать. В первом сообщении Вы указали, что используете QNX 6.5, поэтому я не смотрел на QNX 6.3.0SP3. В QNX 6.5.0 команда rtc net работает, а rtc -s net не отрабатывает с выводом следующего сообщения:

Код:
Cannot set remote time on Neutrino (yet...)

Т.е. данная функция не реализована для удалённых узлов, только свой собственный можно указать.


Приложил текст теста для QNX4.

Постараемся посмотреть на этот вопрос, когда появятся результаты сообщим.
Записан

LH
Опытный пользователь

Сообщений: 254


« Ответ #6 : 01 Сентября, 2016, 16:31:38 »

Прошу прощения: используется QNX6.5
« Последнее редактирование: 01 Сентября, 2016, 18:18:46 от LH » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2016 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 18 Ноября, 2016, 00:08:57