Для визначення "м'якого режиму реального часу" найлегше порівняти його з "жорстким у режимі реального часу".
Якщо говорити випадково, більшість людей неявно мають неформальну ментальну модель, яка розглядає інформацію чи подію як "в реальному часі"
• якщо або в тій мірі, що це виявляється для них із затримкою (затримкою), яка може бути пов'язана з її сприйнятою валютою
• тобто у часові рамки, коли інформація або подія має для них задовільне значення.
Існує чимало різних спеціальних визначень "жорсткого реального часу", але в цій ментальній моделі жорсткий реальний час представлений терміном "якщо". Зокрема, якщо припустити, що дії в режимі реального часу (наприклад, завдання) мають терміни завершення, прийнятна задовільна цінність події, що всі завдання виконуються, обмежується окремим випадком, коли всі завдання відповідають їх термінам.
Жорсткі системи в режимі реального часу роблять дуже сильні припущення, що все про додаток, систему та оточення є статичним і відомим «апріорі», наприклад, які завдання, що вони періодичні, час їх приходу, періоди, терміни, що вони виграли не матимуть конфліктів з ресурсами, і загалом еволюція системи. У системі управління польотом літака або автомобільній гальмівній системі та багатьох інших випадках ці припущення, як правило, можуть бути виконані, щоб усі строки були дотримані.
Ця ментальна модель навмисне і дуже корисно досить загальна, щоб охоплювати як жорсткий, так і м'який в режимі реального часу - м'який розміщений фразою "настільки, наскільки це". Наприклад, припустимо, що подія виконання завдання має неоптимальне, але прийнятне значення, якщо
- не більше 10% завдань пропускають свої терміни
- або жодне завдання не перевищує 20%
- або середня строковість усіх завдань не більше 15%
- або максимальна запізнення серед усіх завдань менше 10%
Це все поширені приклади м'яких справ у реальному часі у багатьох програмах.
Розглянемо застосування одноосібного підбору дитини після школи. Це, мабуть, не має фактичного терміну, натомість є певна цінність для вас та вашої дитини залежно від того, коли відбудеться ця подія. Занадто рано витрачається на ресурси (наприклад, ваш час) і занадто пізно має певне негативне значення, оскільки ваша дитина може залишитися в спокої і, можливо, нашкодити (або принаймні незручно).
На відміну від статичного жорсткого спеціального випадку в режимі реального часу, м'який реальний час робить лише мінімально необхідні припущення щодо завдань та системи, і очікуються невизначеності. Щоб забрати дитину, вам доведеться їхати в школу, а час на це є динамічним, залежно від погоди, дорожнього руху тощо. Можливо, ви б спокусилися надмірно забезпечити свою систему (тобто, дозволити, на що ви сподіваєтесь, це найгірший час за кермом), але знову-таки це витрата ресурсів (ваш час та зайняття сімейного транспортного засобу, можливо, відмова від використання іншими членами сім'ї).
Цей приклад може не здаватися дорогим з точки зору витрачених ресурсів, але розглянемо інші приклади. Усі військові бойові системи в режимі реального часу м'які. Наприклад, розглянемо здійснення авіаційного нападу на ворожий наземний транспортний засіб, використовуючи ракету, керовану оновленнями до неї в якості маневрів цілі. Максимальне задоволення від виконання завдань з оновлення курсу досягається прямим руйнівним ударом по цілі. Але спроба перевитрати ресурсів, щоб переконатися в цьому, зазвичай є надто дорогою і може бути навіть неможливою. У цьому випадку ви можете бути менш задоволеними, якщо ракета завдасть удару досить близько до цілі, щоб її відключити.
Очевидно, що сценарії бойових дій мають велику кількість можливих динамічних невизначеностей, які повинні враховувати управління ресурсами. М’які системи реального часу також дуже часто зустрічаються у багатьох цивільних системах, таких як промислова автоматизація, хоча, очевидно, військові є найнебезпечнішими та терміновішими для досягнення прийнятного задовільного значення.
Основним каменем систем реального часу є "передбачуваність". Важкий випадок у реальному часі зацікавлений лише одним особливим випадком передбачуваності - тобто, щоб усі завдання відповідали своїм термінам і максимальна цінність була досягнута в рамках цієї події. Цей особливий випадок названий "детермінованим".
Існує спектр передбачуваності; Більшість систем у реальному часі (а саме м'які) мають недетерміновану передбачуваність, наприклад, часи виконання завдань, а отже, і значення, отримане в результаті цих подій. Загалом, передбачуваність, а значить, і значення, можна зробити максимально близьким до детермінованої кінцевої точки, наскільки це необхідно, але ціною, яка може бути фізично неможливою або надмірно дорогою (як у бою чи, можливо, навіть, коли вибираєте дитину зі школи).
Програмне забезпечення в режимі реального часу вимагає вибору конкретної моделі ймовірності (не загальноприйнятої частістської моделі), а отже, моделі передбачуваності для міркування про затримки подій та отримані значення.
Посилаючись на вищенаведений перелік подій, які надають прийнятне значення, тепер ми можемо додати недетерміновані випадки, такі як
- ймовірність того, що жодне завдання не пропустить свій термін більше ніж на 5%, перевищує 0,87.
У застосуванні протиракетної оборони, враховуючи той факт, що в боротьбі з правопорушенням завжди є перевага перед обороною, який із цих двох сценаріїв обчислень у режимі реального часу ви б надали перевагу:
оскільки ідеальне знищення всіх ворожих ракет малоймовірне або неможливе, призначте свої оборонні ресурси, щоб збільшити ймовірність того, що якомога більшість загрозливих (наприклад, виходячи з їх цілей) ворожих ракет будуть успішно перехоплені (тісний перехоплення рахується тому, що це може рухати ворогу ракету поза ходом);
скаржаться, що це не проблема обчислень у режимі реального часу, оскільки вона динамічна замість статичної, а традиційні концепції та методи в реальному часі не застосовуються, тому вам не цікаво займатися науково-дослідною роботою для м'якого реального часу.
Незважаючи на різні непорозуміння щодо м'якого реального часу в обчислювальній мережі в режимі реального часу (але не в інших сферах, що не обчислюються), м'який режим реального часу є дуже загальним і потужним та, можливо, дуже складним порівняно з жорстким у реальному часі.
Щоб безпосередньо відповісти на питання ОП:
жорстка система в режимі реального часу може надати детерміновані гарантії - найчастіше всі завдання відповідають строкам, час переривання або системний виклик завжди буде меншим за x тощо. ЯКЩО ТА ТІЛЬКИ, якщо зроблено дуже вагомі припущення і правильно, що все, що має значення, є статичним і відомим «апріорі» (загалом, такі гарантії для жорстких систем реального часу є відкритою проблемою дослідження, за винятком досить простих випадків)
м'яка система в режимі реального часу не дає детермінованих гарантій, вона має на меті забезпечити найкращу можливу аналітичну задану ймовірнісну своєчасність та передбачуваність своєчасності, що можливо в сучасних динамічних обставинах, відповідно до конкретних критеріїв застосування. Очевидно важкий реальний час - простий особливий випадок м'якого реального часу. Очевидно, що аналітичні недетерміновані запевнення в реальному часі можуть бути дуже складними для надання, але є обов'язковими у найбільш поширених випадках у реальному часі (включаючи найнебезпечніші критичні для безпеки типи, наприклад, бойові), оскільки більшість випадків є динамічними, а не статичними.
На моєму веб-сайті real-time.org я детально обговорюю набагато більш точне обговорення реального часу, жорсткого реального часу, м'якого реального часу, передбачуваності, детермінізму та пов'язаних з ними тем .