Что означает «Windows не является операционной системой реального времени»?

16809
Chad Harrison

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

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

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

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

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

19
QNX в режиме реального времени, например. new123456 12 лет назад 4

3 ответа на вопрос

20
Shinrai

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

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

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

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

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

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

LynxOS OSE QNX RTLinux VxWorks Windows CE 

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

Операционные системы реального времени обычно используются в очень специализированных ролях, таких как чрезвычайно точные системы управления, где решение / расчет / и т. Д. Должны быть выполнены в очень требовательный срок. Lamar B 12 лет назад 6
Есть ли примеры RTOS? Обновление вопроса на этот счет. Chad Harrison 12 лет назад 0
http://en.wikipedia.org/wiki/Real-time_operating_system#Examples ta.speot.is 12 лет назад 0
Что сказал @ ta.speot.is - в этой статье уже есть ссылки. Я буду редактировать некоторые, хотя. Shinrai 12 лет назад 0
Я не добрался до нижней части вики-страницы ... Извините, что: / Chad Harrison 12 лет назад 0
@hydroparadise what always comes to mind for me are several of the rovers operating on Mars, which run VxWorks. More down-to-earth is the canonical example of your car's anti-lock brakes (ABS). Both of these manifest problem regimes which necessitate deterministic guarantees that must ultimately be grounded in silicon/firmware. Glenn Slayden 7 лет назад 0
17
Scott C Wilson

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

10
LawrenceC

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

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

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

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

Could you explain what you mean by "x86 has only 1 IRQ line"? Last time I wire-wrapped an 80186 computer (admittedly decades ago), I seem to recall that the 8259 PIC has 8 channels, and the nominal PC at the time had a second one cascaded, for a total of 15 channels, not including the NMI? Glenn Slayden 7 лет назад 0
You need the PIC precisely because the x86 only has one IRQ line But if x86 interrupts are disabled then the PIC can only wait until the CPU re-enables them, and IIRC it does just that. IIRC other CPUs like the 68000 had 3 interrupt pins and expected a coded priority level 0-7 right on the CPU itself. Though now that I actually consider it, maybe the 68000 disables all interrupts upon receiving any IRQ as well - I never programmed the 68000. LawrenceC 7 лет назад 0
Ah yes, now I remember. And IIRC the 'priority' aspect of the 8259 chip design--by allowing nested IRQ handling--was supposed to encourage the OS to disable interrupts as little as possible or not at all, but the PC interrupt lines were assigned haphazardly, defeating that approach? Either way, surely calling any substantial amount of code under CLI...STI was never the intention. Glenn Slayden 7 лет назад 0