Aby zdefiniować „miękki czas rzeczywisty”, najłatwiej jest porównać go z „trudnym czasem rzeczywistym”.
Mówiąc swobodnie, większość ludzi domyślnie ma nieformalny model mentalny, który uznaje informacje lub wydarzenie za „w czasie rzeczywistym”
• jeśli lub w takim zakresie, w jakim jest to widoczne z opóźnieniem (opóźnieniem), które można powiązać z jego postrzeganą walutą
• tzn. W ramach czasowych, w których informacje lub zdarzenia mają dla nich zadowalającą wartość.
Istnieje wiele różnych definicji ad hoc „trudnego czasu rzeczywistego”, ale w tym modelu mentalnym trudny czas rzeczywisty jest reprezentowany przez termin „jeśli”. W szczególności, zakładając, że działania w czasie rzeczywistym (takie jak zadania) mają terminy realizacji, akceptowalnie zadowalająca wartość zdarzenia, w którym wszystkie zadania zostały ukończone, jest ograniczona do szczególnego przypadku, w którym wszystkie zadania dotrzymują swoich terminów.
Trudne systemy czasu rzeczywistego przyjmują bardzo silne założenia, że wszystko w aplikacji, systemie i środowisku jest statyczne i znane a priori - np. Które zadania, że są okresowe, czasy przybycia, okresy, terminy, które wygrał nie występują konflikty zasobów i ogólnie ewolucja systemu w czasie. W samolotowym układzie sterowania lotem lub samochodowym układzie hamulcowym oraz w wielu innych przypadkach założenia te można zazwyczaj spełnić, aby wszystkie terminy zostały dotrzymane.
Ten model mentalny jest celowo i bardzo użyteczny na tyle ogólny, że obejmuje zarówno twarde, jak i miękkie w czasie rzeczywistym - miękkie jest uwzględniane przez wyrażenie „do tego stopnia”. Załóżmy na przykład, że zdarzenie zakończenia zadania ma nieoptymalną, ale dopuszczalną wartość if
- nie więcej niż 10% zadań nie dotrzymuje terminów
- lub żadne zadanie nie jest więcej niż 20% spóźnione
- lub średnia opóźnienie wszystkich zadań wynosi nie więcej niż 15%
- lub maksymalna spóźnienie wśród wszystkich zadań wynosi mniej niż 10%
Są to wszystkie typowe przykłady miękkich przypadków czasu rzeczywistego w bardzo wielu aplikacjach.
Rozważ zastosowanie jednego zadania polegającego na odbiorze dziecka po szkole. To prawdopodobnie nie ma rzeczywistego terminu, ale dla ciebie i twojego dziecka jest pewna wartość oparta na tym, kiedy to wydarzenie ma miejsce. Zbyt wcześnie marnuje zasoby (takie jak twój czas), a zbyt późno ma pewną negatywną wartość, ponieważ twoje dziecko może zostać pozostawione w spokoju i potencjalnie w sposób szkodliwy (lub co najmniej niewygodne).
W przeciwieństwie do statycznego twardego przypadku specjalnego w czasie rzeczywistym, miękki w czasie rzeczywistym przyjmuje jedynie minimalne niezbędne założenia dotyczące aplikacji i systemu, a ponadto oczekuje się niepewności. Aby odebrać dziecko, musisz jechać do szkoły, a czas na zrobienie tego jest dynamiczny w zależności od pogody, warunków na drodze itp. Możesz mieć ochotę na nadmierne zaopatrzenie swojego systemu (tzn. Pozwolić na to, co masz nadzieję w najgorszym przypadku czas prowadzenia pojazdu), ale znowu marnuje się zasoby (czas i zajmowanie pojazdu rodzinnego, być może odmawiając korzystania przez innych członków rodziny).
Ten przykład może nie wydawać się kosztowny pod względem zmarnowanych zasobów, ale rozważ inne przykłady. Wszystkie wojskowe systemy walki działają w czasie rzeczywistym. Rozważmy na przykład wykonanie ataku samolotem na wrogi pojazd naziemny za pomocą pocisku kierowanego aktualizacjami jako manewru celu. Maksymalne zadowolenie z wykonania zadań aktualizacji kursu osiąga się poprzez bezpośrednie niszczycielskie uderzenie w cel. Jednak próba nadmiernego zaopatrzenia w zasoby, aby upewnić się o tym wyniku, jest zwykle o wiele za droga, a nawet niemożliwa. W takim przypadku możesz być mniej, ale wystarczająco zadowolony, jeśli pocisk trafi wystarczająco blisko celu, aby go wyłączyć.
Oczywiście scenariusze walki mają wiele możliwych dynamicznych niepewności, które muszą być uwzględnione przez zarządzanie zasobami. Miękkie systemy czasu rzeczywistego są również bardzo powszechne w wielu systemach cywilnych, takich jak automatyka przemysłowa, chociaż oczywiście systemy wojskowe są najbardziej niebezpieczne i pilne, aby osiągnąć akceptowalną satysfakcjonującą wartość.
Kluczowym elementem systemów czasu rzeczywistego jest „przewidywalność”. Trudny przypadek w czasie rzeczywistym jest zainteresowany tylko jednym szczególnym przypadkiem przewidywalności - tj. Że wszystkie zadania dotrzymają terminów, a to wydarzenie osiągnie maksymalną możliwą wartość. Ten szczególny przypadek nosi nazwę „deterministyczny”.
Istnieje spektrum przewidywalności; większość systemów czasu rzeczywistego (tj. miękkich) ma niedeterministyczną przewidywalność, na przykład czasy realizacji zadań, a zatem wartości uzyskane z tych zdarzeń. Ogólnie rzecz biorąc, przewidywalność, a co za tym idzie wartość, można ustalić tak blisko deterministycznego punktu końcowego, jak to konieczne, ale za cenę, która może być fizycznie niemożliwa lub nadmiernie droga (jak w walce lub może nawet przy odbiorze dziecka ze szkoły).
Miękki w czasie rzeczywistym wymaga specyficznego dla aplikacji wyboru modelu prawdopodobieństwa (nie powszechnego modelu częstościowego), a zatem modelu przewidywalności w celu uzasadnienia opóźnień zdarzeń i wartości wynikowych.
Wracając do powyższej listy zdarzeń, które zapewniają akceptowalną wartość, teraz możemy dodać przypadki niedeterministyczne, takie jak
- prawdopodobieństwo, że żadne zadanie nie przekroczy terminu o więcej niż 5%, jest większe niż 0,87.
We wniosku dotyczącym obrony przeciwrakietowej, biorąc pod uwagę fakt, że w walce przestępstwo zawsze ma przewagę nad obroną, który z tych dwóch scenariuszy obliczeniowych w czasie rzeczywistym preferujesz:
ponieważ idealne zniszczenie wszystkich wrogich pocisków jest bardzo mało prawdopodobne lub niemożliwe, przydziel swoje zasoby obronne, aby zmaksymalizować prawdopodobieństwo, że jak najwięcej najbardziej groźnych (np. w oparciu o ich cele) wrogich pocisków zostanie skutecznie przechwyconych (liczy się bliskie przechwycenie, ponieważ może przenieść wrogi pocisk z kursu);
narzekaj, że nie jest to problem obliczeniowy w czasie rzeczywistym, ponieważ jest on dynamiczny zamiast statycznego, a tradycyjne koncepcje i techniki w czasie rzeczywistym nie mają zastosowania, więc nie jesteś zainteresowany przeprowadzaniem prac badawczo-rozwojowych w czasie rzeczywistym.
Pomimo różnych nieporozumień na temat miękkiego czasu rzeczywistego w społeczności komputerowej w czasie rzeczywistym (ale nie w innych dziedzinach nie obliczeniowych), miękki czas rzeczywisty jest bardzo ogólny i potężny oraz potencjalnie bardzo złożony w porównaniu z trudnym czasem rzeczywistym.
Aby bezpośrednio odpowiedzieć na pytanie OP:
twardy system w czasie rzeczywistym może zapewnić deterministyczne gwarancje - najczęściej że wszystkie zadania dotrzymają terminów, przerwania lub czas reakcji połączenia systemowego zawsze będzie krótszy niż x itd. - JEŻELI I TYLKO JEŚLI są bardzo silne założenia i są poprawne, że wszystko, co się liczy, jest statyczne i znane a priori (ogólnie rzecz biorąc, takie gwarancje dla twardych systemów czasu rzeczywistego są otwartym problemem badawczym, z wyjątkiem dość prostych przypadków)
miękki system czasu rzeczywistego nie daje deterministycznych gwarancji, ma na celu zapewnienie możliwie najlepszej analitycznie określonej probabilistycznej terminowości i przewidywalności terminowości, które są wykonalne w obecnych dynamicznych okolicznościach, zgodnie z kryteriami specyficznymi dla aplikacji. Oczywiście trudny czas rzeczywisty to prosty specjalny przypadek miękkiego czasu rzeczywistego. Oczywiście analityczne niedeterministyczne zapewnienia w czasie rzeczywistym mogą być bardzo złożone, ale są obowiązkowe w najczęstszych przypadkach w czasie rzeczywistym (w tym w najbardziej niebezpiecznych przypadkach krytycznych dla bezpieczeństwa, takich jak walka), ponieważ większość przypadków jest dynamiczna, a nie statyczna.
Na mojej stronie internetowej real-time.org prowadzę szczegółową, znacznie bardziej precyzyjną dyskusję na temat czasu rzeczywistego, trudnego w czasie rzeczywistym, miękkiego w czasie rzeczywistym, przewidywalności, determinizmu i pokrewnych tematów .