Советы по использованию гипервизора для запуска ОС реального времени параллельно с Windows/Linux.
-
18-09-2019 - |
Вопрос
Каковы ваши советы/опыт использования гипервизора (например. Гипервизор реального времени RTS) для запуска ОСРВ параллельно с ОС не реального времени.Есть ли какие-либо последствия для производительности?Есть ли какие-либо риски?(например, как вы можете гарантировать, что ОС не в реальном времени не будет мешать аспектам реального времени RTOS)
Насколько я понимаю, необходимо использовать двухъядерный (или гиперпоточный) процессор, чтобы вы могли назначить каждой ОС свое собственное ядро.
Решение
- нет, ему не нужны двухъядерные процессоры или гиперпоточность.
- нет, задачи, не относящиеся к RT, не мешают задачам RT.
Основная идея — иметь одну RTOS, которая выполняет задачи, написанные специально для этой ОС, используя собственный API.Этим задачам присваиваются строковые уровни приоритета, при этом задача с более высоким приоритетом будет всегда иметь приоритет над файлом с более низким приоритетом.Задачи с самым низким приоритетом будут выполняться только до тех пор, пока нет другой задачи, доступной для запуска (то есть все они ждут какого-то события, либо тайм-аута, либо внешнего сигнала).
все это похоже на обычный многозадачный планировщик ОС, ему не нужно многоядерность или аппаратные потоки;просто гарантии синхронизации кардинально отличаются, и доступный API отражает этот факт.
В этих гибридных реализациях есть одна задача самого низкого уровня, которая запускает полное ядро ОС, отличное от RT, обычно Linux или какое-либо другое unix-подобное ядро (я не знаю насчет Windows, но должно работать одинаково).Сейчас мы называем эту архитектуру гипервизором.
таким образом, поскольку вся ОС, отличная от RT, запускается как задача с самым низким приоритетом, у нее вообще нет никакой гарантии получения времени обработки.любая задача RT может прервать его в любой момент, даже при доступе к оборудованию.Чтобы сохранить это, обычно задачи RT имеют очень ограниченный доступ к оборудованию или существует минимальный арбитраж на очень низком уровне.то есть:может прервать доступ к диску (возможно, что приведет к ошибке доступа);но не доступ к PCI (если они кратковременны и ограничены по времени)
в планировщике Linux уже некоторое время есть некоторые расширения soft-RT;но гарантии синхронизации не такие жесткие, как в некоторых ОС с жесткой RT, созданных с учетом этого.