Все дистрибутивы Linux имеют проблемы с задержкой при записи звука, играх и т.д. Но ядро Windows можно использовать для записи звука, игр или чего-либо еще без задержки.

Почему Windows не требуется ядро с низкой задержкой или ядром реального времени или оно уже есть?

2 ответа2

4

Ни Windows, ни Linux не являются чем-то похожим на операционную систему реального времени (RTOS), и, насколько я знаю, ни один не может быть таковым. Цели, требования и философия ОСРВ по сравнению с общими вычислениями слишком сильно отличаются друг от друга, чтобы какой-либо один продукт мог с пользой ответить на оба вопроса.

Вы просто не можете рисковать, когда капризы прерывания влияют на поведение антиблокировочных тормозов или отправляют марсоход стоимостью 2 миллиарда долларов, уходящий со скалы ... но расстановка приоритетов в соответствии с необходимостью проектирования предполагает значительные накладные расходы, которые, как правило, будут впустую на настольных компьютерных сценариях.

Как уже отмечалось на этой странице, если какая-то общая вычислительная операционная система хорошо справляется с задачами в реальном времени (например, теми, о которых вы упомянули), то это, вероятно, просто из-за большого количества утомительного эмпирического тестирования, профилирования и настройки поставщик ОС. Я говорю «тоскливо», потому что те факторы, которые лежат в основе в реальном времени, делают успехи в настройке по своей сути недетерминированными.

Как вы можете себе представить, это совершенно другая вселенная, чем та, в которой весь программный стек может в основном полагаться на гарантии максимальной задержки, установленные RTOS. Эти максимумы, которые в целом составляют детерминированный "низкий уровень задержки", включены в само определение корректности RTOS, что означает, что поздний результат становится "невозможным" при правильно работающем оборудовании. Временные ошибки либо не могут быть явными, либо могут стать спорными (возможно, из-за того, что предварительные условия не могут возникнуть и т.д.), И любая такая ошибка считается полным отказом, столь же ошибочным или немыслимым, как получение 2 + 2 = 5 .

Связанный: Что означает "Windows не операционная система реального времени"? ,

1

Вы утверждаете, что « ядро Windows может быть использовано для записи звука, игр или чего-либо без задержки ».

Существует на самом деле задержка, так что вы на самом деле имеете в виду «без задержки, которая ощутима или хлопотного для человека». Задержка неизбежна, но размер задержки определяет пригодность системы для « интерактивного » использования.


Было проделано много работы в аудиофреймворках с малой задержкой - например, в Windows ASIO и Linux JACK. Обычно это включает удаление слоев абстракции, уменьшение размера буфера и т.д.

Воспроизведение мультимедиа сводится к синхронизации аудио и видео элементов, буферы могут быть огромными, если воспроизведение правильно скоординировано.

Gaming и Pro Audio Recording требуют создания потоков на лету в зависимости от внешних факторов, таких как пользовательский ввод.


Тема « Вычисления в реальном времени » не имеет никакого отношения к обсуждению взаимодействия человека с системами - мы очень снисходительны, и наш мозг может обрабатывать относительно большие смещения между нашими чувствами - например, аудио и видео.

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

Значительные дополнительные усилия, связанные с предоставлением таких гарантий - при разработке, внедрении и проверке - просто неоправданны, чтобы гарантировать, что ваша игра выглядит захватывающей - не говоря уже о том, что такие системы зачастую на несколько порядков проще в качестве побочного эффекта обеспечения гарантий которые встретились.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .