Каковы преимущества обычного ядра Ubuntu по сравнению с ядром реального времени? Каковы компромиссы ядра в реальном времени?
Ядра реального времени могут гарантировать определенное время отклика на процесс. Например, процесс должен каждые 10 мс считывать значения из системы управления. В реальном времени вы можете быть уверены, что ни одно значение не будет удалено.
Если вы не используете какую-то производственную систему управления, вам просто это не нужно.
Общая производительность системы может быть лучше, если ядро не должно гарантировать каждому процессу интервал времени в периоде. (Лучшее использование ввода-вывода, меньшие издержки на переключение процессов и т. Д.)
Подводя итог: в реальном времени производительность системы не увеличивается.
Расширяя на этот ответ , существует общий компромисс между пропускной способностью и задержкой (или отзывчивостью ). Пропускная способность - это объем работы, который вы можете выполнить за единицу времени; Задержка - это то, как долго вы ждете, прежде чем сможете начать новую работу.
Поскольку при переключении с одной задачи на другую возникают накладные расходы (вам необходимо повторно загрузить состояние старой задачи, очистить кэш и т. Д.), Пропускная способность увеличивается за счет переключения задачи как можно реже. С другой стороны, задержка сводится к минимуму благодаря быстрому переключению между задачами, поэтому ни одной отдельной задаче не нужно долго ждать, прежде чем она может быть запущена снова. Таким образом, улучшенная задержка в ядре реального времени будет достигнута за счет снижения пиковой пропускной способности.
Помимо компромисса между пропускной способностью и задержкой, есть и другие, которые следует учитывать; ядро реального времени не является магистральным (пока), поэтому не требует такого большого тестирования, и ядро реального времени будет потреблять больше энергии (потому что оно будит процессор более агрессивно).
Основная проблема с запуском ядра реального времени заключается в том, что это создает серьезную проблему безопасности. Процессы RT могут полностью захватить машину.
Есть и другие причины не запускать RT, среди них:
Начиная с Linux 2.6, стек реального времени стал частью ядра Linux, исправление ядра стеком реального времени больше не требуется. .
Preempt-RT включен в конфигурации ядра Ubuntu по умолчанию, чтобы добиться минимально возможной задержки для аудио и других приложений, сохраняя при этом удобный пользовательский интерфейс.
Это может замедлить работу вашего компьютера.
Дополнительная информация и изучение проблем здесь:
https://help.ubuntu.com/community/UbuntuStudio/RealTimeKernel
https://sevencapitalsins.wordpress.com/2007/08/10/low -latency-kernel-wtf