@Eddik

Как запустить приложение в RealTime под Ubuntu?

Здравствуйте, коллеги. Есть задача, где нужно иметь гарантированное время выполнения кода, например, вычислять число Pi c точностью до десятого знака за всегда одинаковое количество микросекунд/тактов процессора (на эту задержку будет ориентироваться внешняя система). Для решения этой задачи я поставил rt-ядра (3.14.23-rt20 и 3.12.31-rt45), но никакого качественного эффекта по сравнению с generic (3.19 и 3.16) не получил. Немного изменились диаграммы тестов. От администрирования промышленных систем я далек, поэтому есть ощущение что я упускаю что-то принципиальное и вцелом задача решаема, просто я не знаю как. Подскажите куда двигаться. Система x64 на базе Intel Core 2 Quad. Идея такая чтобы выделить потоку, который производит RT-вычисления, одно ядро в монопольное пользование, а остальной ресурс использовать на усмотрение системы. Как такое реализовать?
  • Вопрос задан
  • 366 просмотров
Пригласить эксперта
Ответы на вопрос 2
romy4
@romy4
Exception handler
никак. меняйте ос на ту, которая это умеет.
хотя, есть вариант, подключить realtime устройство, считающее pi.
Ответ написан
Olej
@Olej
инженер, программист, преподаватель
1. Заставить Linux работать как realtime OS занятие дурное, он на это не рассчитывался, даже если использовать всякие обманки rt-ядра ...
2. Я думаю, что вы сами плохо понимаете что такое realtime ("за всегда одинаковое количество микросекунд/тактов"), поэтому оно у вас и не получается. ;-)
3. Можете запускать ваш процесс Linux с realtime планирование, и будет то, что вы хотите, см. редкие полезные команды, команда chrt.

Идея такая чтобы выделить потоку, который производит RT-вычисления, одно ядро в монопольное пользование, а остальной ресурс использовать на усмотрение системы. Как такое реализовать?

Аффинити маска, команда taskset.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы