Що означає "Windows не операційна система в режимі реального часу"?


19

Я натрапив на програму під назвою LatencyMon , яка, очевидно, здійснює моніторинг затримки.

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

Чи є операційні системи "в режимі реального часу"? Або це просто маркетингова схема, щоб змусити вас купити їх товар?

Редагувати:

Також, чи є приклади RTOS?


4
QNX, наприклад, у режимі реального часу.
new123456

Відповіді:


21

Вікіпедія насправді має дивовижне багатство інформації.

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

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

RTOS має вдосконалений алгоритм планування. Гнучкість планувальника дозволяє ширше впорядковувати пріоритети процесів на комп'ютерній системі, але ОС у режимі реального часу частіше присвячується вузькому набору програм. Основні чинники ОС в режимі реального часу - мінімальна затримка переривання та мінімальна затримка перемикання потоку; ОС у режимі реального часу цінується більше за те, наскільки швидко чи передбачувано вона може реагувати, ніж за кількість роботи, яку вона може виконати за певний проміжок часу.

Це насправді дуже мало операційних систем, оскільки для великої кількості навантажень це просто менш ефективно. Жодна з основних операційних систем споживачів зараз (або, наскільки мені відомо, не була) в реальному часі. На жаль, це означає, що іноді речі в умовах не в реальному часі дійсно повинні сидіти, чекаючи інших речей. Це стає лише проблемою, коли щось взагалі не поступається за розумну кількість часу.

На даний момент найбільш відомими, найбільш розгорнутими операційними системами в режимі реального часу є:

LynxOS
OSE
QNX
RTLinux
VxWorks
Windows CE

Див. Список операційних систем у режимі реального часу для вичерпного списку.


6
ОС в режимі реального часу зазвичай використовуються в дуже виділених ролях, таких як надзвичайно точні системи управління, де рішення / розрахунок / тощо повинні бути виконані в дуже вимогливі часові рамки.
Ламар Б

Чи є приклади RTOS? Актуалізація питання з цього приводу.
Чад Гаррісон


Що сказав @ ta.speot.is - у статті вже є деякі зв'язані. Я все-таки редагую.
Shinrai

Я не до кінця сторінки Вікі ... Вибачте, що: /
Чад Гаррісон

19

Операційні системи в режимі реального часу часто використовуються для вбудованих систем, де вони можуть бути відповідальними за щось на зразок керівництва або моніторингу системи. Ключове, що слід пам’ятати про систему реального часу (і що відрізняє її від системи, яка не є в реальному часі) - це те, що в системі реального часу, якщо відповідь запізнюється, вона неправильна. Ви можете легко побачити, як це працює, подумавши про додавання ряду фігур в Excel (де, якщо робота затримана, немає реального впливу), а не застосувати гальмо в автомобілі (де затримка може бути катастрофічною).


10

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

У більшості сучасних систем більшість пристроїв можуть генерувати IRQ. Це призводить до того, що центральний процесор зупинить (тобто перерве), що він робить, і запустить сервісну програму переривання. Ідея полягає в тому, що ця сервісна програма робить все, що потрібно пристрою, тобто виводить дані з пристрою і в оперативну пам'ять, повідомляє пристрою, що робити далі тощо

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

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


Чи можете ви пояснити, що ви маєте на увазі під "x86 має лише 1 рядок IRQ"? Востаннє, коли я обмотав комп'ютер 80186 (правда, десятиліття тому назад), я, мабуть, згадую, що 8259 PIC має 8 каналів, а номінальний ПК на той час мав другий каскад, в цілому 15 каналів, не враховуючи НМІ?
Гленн Слейден

ПІК вам потрібен саме тому, що у x86 є лише одна лінія IRQ, але якщо x86 переривання відключено, PIC може лише чекати, поки процесор знову їх включить, а IIRC робить це саме так. Інші процесори IIRC, такі як 68000, мали 3 шпильки для переривання і очікували кодованого рівня пріоритету 0-7 прямо на самому процесорі. Хоча тепер, коли я його справді вважаю, можливо, 68000 відключає всі перерви після отримання будь-якого IRQ - я ніколи не програмував 68000.
LawrenceC

Ага так, зараз я пам’ятаю. І IIRC, "пріоритетний" аспект дизайну мікросхеми 8259 - дозволяючи вкладеній вкладці IRQ - повинен був заохотити ОС якомога рідше відключати переривання або взагалі не робити, але лінії переривання ПК були призначені випадково, переможивши це підхід? Так чи інакше, напевно закликати будь-яку значну кількість коду під CLI ... STI ніколи не був наміром.
Гленн Слейден
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.