19

Я наткнулся на приложение под названием LatencyMon, которое, по-видимому, осуществляет мониторинг задержек.

Я всегда понимал, что чем больше нагрузка на процессор, тем менее чувствительной или более скрытой становится система. Однако во втором разделе страницы LatencyMon первое предложение гласит: «Windows не является операционной системой реального времени» (RTOS). Это заставило меня задуматься. Я имею в виду, это отличается от любой другой операционной системы, такой как Linux, Unix или Mac OS X?

Существуют ли операционные системы в режиме реального времени? Или это просто маркетинговая схема, чтобы заставить вас купить их продукт?

РЕДАКТИРОВАТЬ:

Кроме того, есть ли примеры RTOS?

3 ответа3

20

В Википедии на самом деле есть удивительное количество информации здесь.

Операционная система реального времени (ОСРВ) - это операционная система (ОС), предназначенная для обслуживания запросов приложений в реальном времени.

Ключевой характеристикой ОСРВ является уровень ее согласованности относительно количества времени, которое требуется для принятия и выполнения задачи приложения; изменчивость джиттер. В жесткой операционной системе реального времени меньше дрожания, чем в мягкой операционной системе реального времени. Главная цель проектирования - не высокая пропускная способность, а скорее гарантия мягкой или жесткой категории производительности. ОСРВ, которая обычно или вообще может уложиться в срок, является мягкой операционной системой реального времени, но если она может определенно уложиться в срок, то это жесткая ОС реального времени.

ОСРВ имеет продвинутый алгоритм планирования. Гибкость планировщика обеспечивает более широкую согласованность приоритетов процессов в компьютерной системе, но ОС реального времени чаще предназначается для узкого набора приложений. Ключевыми факторами в ОС реального времени являются минимальная задержка прерывания и минимальная задержка переключения потоков; ОС реального времени ценится больше за то, насколько быстро или предсказуемо она может отреагировать, чем за объем работы, которую она может выполнить за определенный период времени.

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

В настоящее время наиболее известными, наиболее распространенными операционными системами реального времени являются:

LynxOS
OSE
QNX
RTLinux
VxWorks
Windows CE

Смотрите полный список операционных систем реального времени .

17

Операционные системы реального времени часто используются для встроенных систем, где они могут отвечать за что-то вроде руководства или системного мониторинга. Главное, что нужно помнить о системе реального времени (и что отличает ее от системы не реального времени), это то, что в системе реального времени, если ответ запаздывает, это неправильно. Вы можете легко увидеть, как это работает, если подумать о том, чтобы сложить серию рисунков в Excel (где, если операция откладывается, реального влияния не будет), а не использовать тормоз в автомобиле (где задержка может быть катастрофической).

10

По сути, ОСРВ может гарантировать, что сможет обслуживать IRQ (запрос прерывания) в определенный (обычно низкий) период времени. Стандартные операционные системы не имеют такой гарантии.

В большинстве современных систем большинство устройств могут генерировать IRQ. Это заставляет процессор останавливать (то есть прерываться) то, что он делает, и запускать программу обслуживания прерываний. Идея состоит в том, что эта сервисная программа делает все, что нужно устройству, то есть получает данные с устройства в ОЗУ, сообщает устройству, что делать дальше и т.д.

На x86, поскольку у него есть только 1 строка IRQ на ЦПУ, при получении прерывания последующие прерывания автоматически отключаются (за исключением NMI, RESET и SMI), пока ЦП не распознает источник прерывания и не включит его снова. Таким образом, хорошие драйверы устройств в стандартном Windows i386/amd64 будут выполнять минимальную обработку в этом состоянии, достаточно, чтобы можно было разрешить повторное включение прерываний, а затем отложить полную обработку прерывания на более поздний период (поскольку технически система может обрабатывать только одно прерывание на процессор ядро за раз). Я не уверен, но я верю, что Linux делает то же самое. Тем не менее, нет точной гарантии того, что прерывание будет обслуживаться.

Для большинства ПК-устройств, таких как диски, клавиатуры, сетевые платы, если есть небольшая задержка в обслуживании их IRQ, ничего плохого не произойдет, кроме потери производительности. Это может быть большей проблемой для таких устройств, как аудио и видео вход, где устройство ничего не буферизует, и ПК действительно должен не отставать от входящего потока данных.

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