Różnice między twardym czasem rzeczywistym, miękkim czasem rzeczywistym i twardym czasem rzeczywistym?

102

Przeczytałem definicje różnych pojęć czasu rzeczywistego , a przykłady podane dla twardych i miękkich systemów czasu rzeczywistego mają dla mnie sens. Ale nie ma prawdziwego wyjaśnienia ani przykładu solidnego systemu czasu rzeczywistego. Zgodnie z powyższym linkiem:

Mocny: Rzadkie pomyłki w terminach są do zaakceptowania, ale mogą obniżyć jakość usług systemu. Użyteczność wyniku po upływie terminu wynosi zero.

Czy istnieje wyraźne rozróżnienie między sztywnym czasem rzeczywistym a twardym lub miękkim czasem rzeczywistym i czy istnieje dobry przykład, który to rozróżnienie ilustruje?

W komentarzach Charles poprosił o przesłanie stron wiki tagów dla nowych tagów. Przykład „firmowego systemu czasu rzeczywistego” podałem dlatag był systemem podawania mleka. Jeśli system dostarcza mleko po upływie czasu jego ważności, mleko jest uważane za „nieprzydatne”. Można tolerować jedzenie płatków bez mleka, ale jakość doznania jest obniżona.

To tylko pomysł, który zrodził się w mojej głowie, kiedy po raz pierwszy przeczytałem definicję. Szukam dużo lepszego przykładu i być może lepszej definicji firmy działającej w czasie rzeczywistym , która poprawi moje pojęcie o niej.

jxh
źródło
11
Zasadniczo definicje nie są naprawdę mocne.
Hot Licks
Przywróciłem oryginalne tagi. Myślę, że warto mieć możliwość umieszczenia bardziej szczegółowego tagu na pytaniu w odniesieniu do trudnego lub miękkiego czasu rzeczywistego. Zmienia sposób odpowiedzi na pytanie. Tagi i tak zostaną automatycznie usunięte, jeśli nie zostaną użyte po 6 miesiącach.
jxh
Jeśli masz zamiar nalegać na trzy nowe tagi dla tego pytania i tylko tego pytania, przynajmniej dodaj strony wiki i spróbuj znaleźć inne pytania, do których by się odnosiły.
Charles

Odpowiedzi:

114

Twardy czas rzeczywisty oznacza, że ​​musisz bezwzględnie dotrzymać każdego terminu. Bardzo niewiele systemów ma to wymaganie. Niektóre przykłady to systemy jądrowe, niektóre zastosowania medyczne, takie jak rozruszniki serca, duża liczba zastosowań obronnych, awionika itp.

Twarde / miękkie systemy czasu rzeczywistego mogą nie dotrzymać niektórych terminów, ale ostatecznie wydajność spadnie, jeśli zbyt wiele zostanie pominiętych. Dobrym przykładem jest system dźwiękowy w Twoim komputerze. Jeśli przegapisz kilka bitów, nic wielkiego, ale przegapisz zbyt wiele, a ostatecznie zdegradujesz system. Podobne byłyby czujniki sejsmiczne. Jeśli przegapisz kilka punktów danych, nic wielkiego, ale musisz złapać większość z nich, aby uzyskać sens z danych. Co ważniejsze, nikt nie umrze, jeśli nie będą działać poprawnie.

Linia jest niewyraźna, ponieważ nawet rozrusznik serca może zostać nieznacznie wyłączony bez zabijania pacjenta, ale to jest ogólna istota.

To trochę jak różnica między ciepłem a ciepłem. Nie ma prawdziwego podziału, ale wiesz o tym, kiedy to poczujesz.

Joel
źródło
2
Twój „mocny” przykład wydaje mi się „miękki”.
jxh,
Jak już wspomniano, linie podziału są dość rozmyte. Jedyny miękki system czasu rzeczywistego, nad którym pracowałem, miał tolerancję kilku sekund, więc tam rysuję granicę.
Joel
1
Pamiętaj, że jest to ciągłość. Praktycznie każdy system komputerowy działa w czasie rzeczywistym w jakiejś skali czasu. System rozliczeniowy firmy musi wystarczająco szybko wystawiać rachunki, aby utrzymać przepływ gotówki do firmy. W przeciwnym razie firma umrze, z pewnością tak jak pacjent umrze, jeśli rozrusznik serca ominie uderzenia o kilkaset milisekund.
Hot Licks
Rozumiem, że przekroczenie terminów może być tolerowane w przypadku niektórych systemów, ale takie jest moje rozumienie miękkiego systemu czasu rzeczywistego. Szukam praktycznego przykładu kryteriów: Użyteczność wyniku po terminie wynosi zero. Myślę, że dla twojego przykładu dźwięku, jeśli dźwięk jest zsynchronizowany ze strumieniem wideo, to niektóre późno nadchodzące pakiety audio będą miały zerową użyteczność? Ale jest kilka systemów odtwarzania filmów, które przyspieszają dźwięk, aby nadrobić zaległości w wideo.
jxh
Wymagania czasu rzeczywistego dotyczą kontekstu danego systemu, a nie są nieodłączne od problemu. W podanym przykładzie nadal występuje uszkodzenie dźwięku (jest on przyspieszony) i tymczasowe niedopasowanie dźwięku i obrazu.
Joel
116

Twardy w czasie rzeczywistym

Ciężko czasie rzeczywistym definicja rozważa każdy przegapić termin być awaria systemu. To planowanie jest szeroko stosowane w systemach o znaczeniu krytycznym, w których nieprzestrzeganie ograniczeń czasowych skutkuje utratą życia lub mienia.

Przykłady:

  • Air France Flight 447 spadł do oceanu po tym, jak awaria czujnika spowodowała szereg błędów systemowych. Piloci zatrzymali samolot, reagując na nieaktualne wskazania przyrządów. Zginęło cała 12 załogi i 216 pasażerów.

  • Sonda Mars Pathfinder została prawie utracona, gdy inwersja priorytetu spowodowała ponowne uruchomienie systemu. Zadanie o wyższym priorytecie nie zostało ukończone na czas z powodu zablokowania przez zadanie o niższym priorytecie. Problem został rozwiązany i statek kosmiczny wylądował pomyślnie.

  • Drukarka atramentowa ma głowicę drukującą z oprogramowaniem sterującym do nakładania odpowiedniej ilości atramentu na określoną część papieru. Jeśli termin zostanie przekroczony, zadanie drukowania jest zrujnowane.


Firma w czasie rzeczywistym

Firma czasie rzeczywistym definicja pozwala na rzadko nieodebranych terminów. W tych aplikacjach system może przetrwać awarie zadań, o ile są one odpowiednio rozmieszczone, jednak wartość wykonania zadania spada do zera lub staje się niemożliwa.

Przykłady:

  • Systemy produkcyjne z automatycznymi liniami montażowymi, w których brak terminu skutkuje nieprawidłowym montażem części. Dopóki zrujnowane części są na tyle rzadkie, że można je wyłapać przez kontrolę jakości i nie są zbyt kosztowne, produkcja trwa.

  • Dekoder telewizji kablowej dekoduje znaczniki czasu wskazujące, kiedy klatki muszą pojawić się na ekranie. Ponieważ ramy są wrażliwe na porządek czasowy, przekroczenie terminu powoduje zakłócenia, obniżając jakość usług. Jeśli pominięta klatka później stanie się dostępna, spowoduje to tylko więcej jittera, aby ją wyświetlić, więc jest bezużyteczna. Widz może nadal cieszyć się programem, jeśli jitter nie występuje zbyt często.


Miękki w czasie rzeczywistym

Miękki czasie rzeczywistym definicja pozwala często nieodebranych terminów, i tak długo, jak zadania są realizowane terminowo ich wyniki nadal mają wartość. Ukończone zadania mogą mieć rosnącą wartość do upływu terminu i zmniejszać się po upływie tego terminu.

Przykłady:

  • Stacje pogodowe posiadają wiele czujników do odczytu temperatury, wilgotności, prędkości wiatru itp. Odczyty powinny być dokonywane i przesyłane w regularnych odstępach czasu, jednak czujniki nie są zsynchronizowane. Nawet jeśli odczyt czujnika może być wczesny lub późny w porównaniu z innymi, nadal może być istotny, o ile jest wystarczająco blisko.

  • Konsola do gier wideo obsługuje oprogramowanie silnika gry. Istnieje wiele zasobów, które muszą być współdzielone między jego zadaniami. Jednocześnie zadania muszą być wykonywane zgodnie z harmonogramem, aby gra działała poprawnie. Tak długo, jak zadania są wykonywane w miarę na czas, gra będzie przyjemna, a jeśli nie, może tylko trochę opóźnić.


Siewert: Wbudowane systemy i komponenty czasu rzeczywistego.
Liu & Layland: Algorytmy planowania dla wieloprogramowania w trudnym środowisku czasu rzeczywistego.
Marchand & Silly-Chetto: Dynamiczne planowanie miękkich zadań okresowych i zadań okresowych z pominięciami.

John E. Harriss
źródło
10
co za przyjemna lista przykładów!
Erik Kaplun,
Jeden z najlepszych przykładów
Wisznu NK
Czy w przypadku katastrofy 447 nie minęło wiele terminów, zanim samolot zgasł? Wydaje się, że w tym sensie wszystkie systemy są stabilne.
Josiah Yoder
3
bardzo dobra lista, jednak przykładowa drukarka atramentowa nie kwalifikuje się do twardego czasu rzeczywistego, w najlepszym przypadku jest mocna i najprawdopodobniej po prostu miękka.
Ab Irato
tysm za przykłady
himanshuxd
43

Po przeczytaniu strony Wikipedii i innych stron poświęconych przetwarzaniu w czasie rzeczywistym. Wyciągnąłem następujące wnioski:

1> W przypadku twardego systemu czasu rzeczywistego , jeśli system nie dotrzyma terminu, nawet jeśli zostanie uznany za uszkodzony.

2> W przypadku firmowego systemu czasu rzeczywistego , nawet jeśli system nie dotrzyma terminu, być może więcej niż raz (np. W przypadku wielu wniosków), system nie jest uznawany za uszkodzony. Również odpowiedzi na zapytania (odpowiedzi na zapytanie, wynik zadania itp.) Są bezwartościowe po upływie terminu dla tego konkretnego żądania ( użyteczność wyniku wynosi zero po jego terminie ). Hipotetycznym przykładem może być system prognozowania burzy (jeśli burza jest przewidziana przed nadejściem, to system wykonał swoją pracę, przewidywanie po tym, jak zdarzenie już się wydarzyło lub kiedy się dzieje, nie ma wartości).

3> W przypadku miękkiego systemu czasu rzeczywistego , nawet jeśli system nie dotrzyma terminu, być może więcej niż jeden raz (np. W przypadku wielu wniosków), system nie jest uznawany za uszkodzony. Ale w tym przypadku wyniki żądań nie są bezwartościowe. Wartość wyniku po terminie, nie wynosi zero , a raczej degraduje się w miarę upływu czasu po terminie. Np .: Streaming audio-video.

Oto link do zasobu, który był bardzo pomocny.

Meghendra
źródło
4
System prognozowania burzy nie jest dobrym przykładem, ponieważ musisz ustalić termin na podstawie czasu, a jeśli już wiedziałeś, kiedy najprawdopodobniej nadejdzie burza, system prognozowania burzy jest trochę zbędny.
jxh
12

Popularne jest kojarzenie jakiejś wielkiej katastrofy z definicją trudnego czasu rzeczywistego, ale nie ma to znaczenia. Każde niepowodzenie w spełnieniu trudnych ograniczeń w czasie rzeczywistym oznacza po prostu, że system jest uszkodzony. Dotkliwość wyniku, gdy coś jest oznaczone jako „zepsute”, nie ma znaczenia dla definicji.

Twarde i miękkie po prostu nie są automatycznie uznawane za złamane w przypadku niedotrzymania jednego terminu.

Aby uzyskać rzetelny przykład trudnej pracy w czasie rzeczywistym, ze strony, do której masz link:

Wczesne systemy gier wideo, takie jak Atari 2600 i grafika wektorowa Cinematronics, miały trudne wymagania czasu rzeczywistego ze względu na charakter grafiki i sprzętu synchronizującego.

Gdyby coś w pętli generowania wideo spóźniło się tylko na jeden termin, cały wyświetlacz by się trzasnął, co byłoby nie do zniesienia, nawet gdyby było to rzadkie. To byłby zepsuty system i zabralibyście go z powrotem do sklepu w celu zwrotu pieniędzy. Więc jest to trudne w czasie rzeczywistym.

Oczywiście każdy system może podlegać sytuacjom, z którymi sobie nie radzi, dlatego konieczne jest ograniczenie definicji do spodziewanych warunków pracy - zauważając, że w zastosowaniach krytycznych dla bezpieczeństwa ludzie muszą planować na straszne warunki („chłodziwo wyparowało”, „ hamulce zawiodły ”, ale rzadko„ wybuchło słońce ”).

I nie zapominajmy, że czasami istnieje domniemany stan pracy „gdy ktoś patrzy”. Jeśli nikt nie widzi, że łamiesz zasady (lub jeśli to zrobił, ale giną w ogniu, zanim komukolwiek o tym powiedzą) i nikt nie może udowodnić, że złamałeś zasady po fakcie, to jest to tak samo, jakbyś nigdy ich nie złamał!

sh1
źródło
4
If nobody sees you break the rules (or if they did but they die the fire before telling anyone), and nobody can prove that you broke the rules after the fact, then it's kind of the same as if you never broke the rules!... Ok, HAL. A teraz, czy możesz otworzyć drzwi wnęki na kapsuły?
Podstawowy
11

Najprostszym sposobem rozróżnienia różnych rodzajów systemów czasu rzeczywistego jest odpowiedź na pytanie:

Czy opóźniona reakcja systemu (po terminie) jest nadal przydatna, czy nie?

W zależności od odpowiedzi, jaką otrzymasz na to pytanie, Twój system może zostać zaliczony do jednej z następujących kategorii:

  1. Trudny : nie, a opóźnione odpowiedzi są uważane za awarię systemu

Dzieje się tak w przypadku, gdy przekroczenie terminu może spowodować, że system będzie bezużyteczny. Na przykład system sterujący systemem poduszek powietrznych samochodu powinien wykryć zderzenie i szybko napełnić poduszkę. Cały proces zajmuje mniej więcej jedną dwudziestą piątą sekundy. Tak więc, jeśli system zareaguje na przykład z 1-sekundowym opóźnieniem, konsekwencje mogą być śmiertelne, a napompowanie worka po rozbiciu samochodu nie przyniesie żadnych korzyści.

  1. Firma : Nie, ale opóźnione odpowiedzi nie są konieczne w przypadku awarii systemu

Dzieje się tak, gdy przekroczenie terminu jest tolerowane, ale wpłynie to na jakość usługi. Jako prosty przykład rozważ system szyfrowania wideo. Zwykle hasło szyfrowania jest generowane na serwerze (stacja czołowa wideo) i wysyłane do dekodera klienta. Ten proces powinien być zsynchronizowany, aby normalnie dekoder otrzymał hasłoprzed rozpoczęciem odbierania zaszyfrowanych klatek wideo. W takim przypadku opóźnienie może prowadzić do usterek wideo, ponieważ dekoder nie jest w stanie zdekodować ramek, ponieważ nie otrzymał jeszcze hasła. W takim przypadku na usługę (film, ciekawy mecz piłki nożnej itp.) Może wpłynąć niedotrzymanie terminu. Odebranie hasła z opóźnieniem w tym przypadku nie jest przydatne, ponieważ ramki zaszyfrowane tym samym już spowodowały usterki.

  1. Miękki : tak, ale usługa systemowa jest zdegradowana

Jak wynika z opisu Wikipedii, użyteczność wyniku spada po terminie . Oznacza to, że uzyskanie odpowiedzi z systemu po terminie jest nadal przydatne dla użytkownika końcowego, ale jej użyteczność spada po jego upływie. Prostym przykładem tego przypadku jest oprogramowanie, które automatycznie kontroluje temperaturę w pomieszczeniu (lub budynku). W takim przypadku, jeśli system ma pewne opóźnienia w odczytaniu czujników temperatury, będzie trochę wolno reagował na gwałtowne zmiany temperatury. Jednak w końcu zareaguje na zmianę i odpowiednio dostosuje temperaturę, aby na przykład utrzymać ją na stałym poziomie. Dlatego w tym przypadku opóźniona reakcja jest przydatna, ale obniża jakość usług systemu.

rkachach
źródło
6

Miękki czasu rzeczywistego jest najłatwiejsze do zrozumienia, w których nawet jeśli wynik uzyskuje się po upływie terminu, wyniki są nadal uważane za ważne.

Przykład: przeglądarka internetowa - żądamy określonego adresu URL, ładowanie strony zajmuje trochę czasu. Jeśli system potrzebuje więcej czasu, niż oczekiwano, aby dostarczyć nam stronę, otrzymana strona nie jest uważana za nieważną, po prostu mówimy, że wydajność systemu nie była na najwyższym poziomie (system dał niską wydajność!).

W twardym systemie czasu rzeczywistego , jeśli wynik zostanie uzyskany po terminie, uważa się, że system całkowicie zawiódł.

Przykład: W przypadku robota wykonującego jakąś pracę, taką jak śledzenie linii itp. Jeśli na jego drodze pojawi się przeszkoda, a robot nie przetworzy tych informacji w zaprogramowanym terminie (prawie natychmiast!), Mówi się, że robot poniósł porażkę w swoim zadaniu (system robota też może ulec całkowitemu zniszczeniu!).

W stabilnym systemie czasu rzeczywistego , jeśli wynik wykonania procesu pojawia się po terminie, odrzucamy ten wynik, ale system nie jest określany jako zawiódł.

Przykład: komunikacja satelitarna do monitorowania pozycji wroga lub do innych zadań. Jeśli naziemna stacja komputerowa, do której satelity okresowo wysyłają ramki, jest przeciążona, a bieżąca ramka (pakiet) nie jest przetwarzana w czasie i pojawia się następna, aktualny pakiet (ten, który spóźnił się z terminem) nie ma znaczenia czy przetwarzanie zostało zakończone (w połowie lub prawie ukończone) jest odrzucane / odrzucane. Ale komputer naziemny nie jest określany jako całkowicie uszkodzony.

Rubal
źródło
Przykład przeglądarki jest nieprawidłowy. Czas nie jest zasobem w przeglądarce internetowej: to w ogóle nie jest system czasu rzeczywistego.
Bart Friederichs
6

Aby zdefiniować „miękki czas rzeczywisty”, najłatwiej jest porównać to z „trudnym czasem rzeczywistym”. Poniżej zobaczymy, że termin „firma w czasie rzeczywistym” stanowi nieporozumienie dotyczące „miękkiego czasu rzeczywistego”.

Mówiąc od niechcenia, większość ludzi ma nieformalny model mentalny, który traktuje informacje lub wydarzenie jako „w czasie rzeczywistym”

• jeśli lub w zakresie, w jakim jest to dla nich widoczne z opóźnieniem (latencją), które może być związane z jego postrzeganą walutą

• tj. W ramach czasowych, w których informacja lub wydarzenie ma 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 wykonania, akceptowalnie zadowalająca wartość zdarzenia, w którym wszystkie zadania są ukończone, jest ograniczona do specjalnego przypadku, gdy wszystkie zadania dotrzymują terminów.

Twarde systemy czasu rzeczywistego przyjmują bardzo mocne założenie, że wszystko w aplikacji, systemie i środowisku jest statyczne i znane a priori - np. Które zadania są okresowe, ich czas przybycia, ich okresy, terminy, które wygrały nie ma konfliktów zasobów i ogólnie ewolucji systemu w czasie. W systemie sterowania lotem samolotu czy samochodowym układzie hamulcowym i wielu innych przypadkach te założenia można zwykle spełnić, aby dotrzymać wszystkich terminów.

Ten model mentalny jest celowo i bardzo użytecznie na tyle ogólny, że obejmuje zarówno twardy, jak i miękki czas rzeczywisty - miękki jest dostosowywany przez wyrażenie „w takim stopniu, w jakim”. Załóżmy na przykład, że zdarzenie zakończenia zadania ma nieoptymalną, ale akceptowalną wartość, jeśli

  • nie więcej niż 10% zadań nie dotrzymuje terminów
  • lub żadne zadanie nie jest opóźnione o więcej niż 20%
  • czyli średnia opieszałość wszystkich zadań nie przekracza 15%
  • lub maksymalne opóźnienie wszystkich zadań jest mniejsze niż 10%

Są to typowe przykłady miękkich przypadków czasu rzeczywistego w wielu aplikacjach.

Rozważ jedno zadanie polegające na odbieraniu dziecka po szkole. To prawdopodobnie nie ma faktycznego terminu, zamiast tego istnieje pewna wartość dla Ciebie i Twojego dziecka na podstawie tego, kiedy to wydarzenie ma miejsce. Zbyt wczesne marnowanie zasobów (takich jak czas) i zbyt późne marnowanie zasobów ma jakąś negatywną wartość, ponieważ Twoje dziecko może zostać pozostawione samo i potencjalnie narażone na niebezpieczeństwo (lub przynajmniej niewygodne).

W przeciwieństwie do statycznego, twardego, specjalnego przypadku czasu rzeczywistego, miękki czas rzeczywisty tworzy tylko minimalne niezbędne założenia specyficzne dla aplikacji dotyczące zadań i systemu i oczekuje się niepewności. Aby odebrać dziecko, musisz jechać do szkoły, a czas na to jest dynamiczny w zależności od pogody, warunków drogowych itp. Możesz ulec pokusie, aby nadmiernie zaopatrzyć swój system (tj. Pozwolić, aby to, co masz nadzieję, było w najgorszym przypadku czas prowadzenia pojazdu), ale znowu jest to marnowanie zasobów (twojego czasu i zajmowania pojazdu rodzinnego, być może odmawiania używania go innym członkom rodziny).

Ten przykład może nie wydawać się kosztowny, biorąc pod uwagę zmarnowane zasoby, ale rozważ inne przykłady. Wszystkie wojskowe systemy bojowe działają łagodnie w czasie rzeczywistym. Na przykład rozważ wykonanie ataku lotniczego na wrogi pojazd naziemny przy użyciu pocisku kierowanego z aktualizacjami w trakcie manewru celu. Maksymalną satysfakcję z wykonania zadań aktualizacji kursu zapewnia bezpośrednie niszczycielskie uderzenie w cel. Jednak próba nadmiernego przydzielenia zasobów w celu upewnienia się co do takiego wyniku jest zwykle zbyt kosztowna, a nawet może być niemożliwa. W takim przypadku możesz być mniej, ale wystarczająco zadowolony, jeśli pocisk uderzy wystarczająco blisko celu, aby go wyłączyć.

Oczywiście scenariusze walki mają wiele możliwych dynamicznych niepewności, które muszą zostać 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 najpilniejsze, aby osiągnąć zadowalającą wartość.

Podstawą systemów czasu rzeczywistego jest „przewidywalność”. Trudny przypadek czasu rzeczywistego jest zainteresowany tylko jednym szczególnym przypadkiem przewidywalności - tj. Tym, że wszystkie zadania dotrzymają terminów, a maksymalna możliwa wartość zostanie osiągnięta przez to wydarzenie. Ten szczególny przypadek nazywa się „deterministyczny”.

Istnieje szerokie spektrum przewidywalności. Deterministyczny (determinizm) to jeden punkt końcowy (maksymalna przewidywalność) w spektrum przewidywalności; drugim punktem końcowym jest minimalna przewidywalność (maksymalna niedeterminizm). Metrykę widma i punkty końcowe należy interpretować pod kątem wybranego modelu przewidywalności; wszystko pomiędzy tymi dwoma punktami końcowymi to stopnie nieprzewidywalności (= stopnie niedeterminizmu).

Większość systemów czasu rzeczywistego (a mianowicie miękkich) ma niedeterministyczną przewidywalność, na przykład czasu realizacji zadań, a tym samym wartości uzyskanych z tych zdarzeń.

Ogólnie (w teorii) przewidywalność, a zatem akceptowalnie zadowalająca wartość, można uczynić 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, a może nawet w odebranie dziecka ze szkoły).

Miękki czas rzeczywisty wymaga specyficznego dla aplikacji wyboru modelu prawdopodobieństwa (nie powszechnego modelu częstego), a tym samym modelu przewidywalności dla wnioskowania o opóźnieniach zdarzeń i wynikowych wartościach.

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 swojego terminu o więcej niż 5% jest większe niż 0,87. (Zwróć uwagę na liczbę wyrażonych tam kryteriów planowania).

W zastosowaniu do obrony przeciwrakietowej, biorąc pod uwagę fakt, że w walce ofensywa zawsze ma przewagę nad obroną, który z tych dwóch scenariuszy obliczeniowych w czasie rzeczywistym wolałbyś:

  • ponieważ idealne zniszczenie wszystkich wrogich pocisków jest bardzo mało prawdopodobne lub niemożliwe, przydziel swoje środki obronne, aby zmaksymalizować prawdopodobieństwo, że jak najwięcej najbardziej zagrażających (np. w oparciu o ich cele) pocisków wroga zostanie pomyślnie przechwyconych (liczy się przechwycenie bliskie, ponieważ może przesunąć wrogi pocisk z kursu);

  • narzekać, że nie jest to problem z obliczeniami w czasie rzeczywistym, ponieważ jest dynamiczny, a nie statyczny, a tradycyjne koncepcje i techniki czasu rzeczywistego nie mają zastosowania i brzmi to trudniej niż statyczne trudne w czasie rzeczywistym, więc nie jesteś tym zainteresowany .

Pomimo różnych nieporozumień dotyczących miękkiego czasu rzeczywistego w społeczności komputerów czasu rzeczywistego, miękki czas rzeczywisty jest bardzo ogólny i potężny, choć potencjalnie złożony w porównaniu z trudnym czasem rzeczywistym. Miękkie systemy czasu rzeczywistego, jak tutaj podsumowano, mają długą historię udanego użytkowania poza społecznością komputerów czasu rzeczywistego .

Aby bezpośrednio odpowiedzieć na pytanie OP:

Twardy system czasu rzeczywistego może zapewnić deterministyczne gwarancje - najczęściej wszystkie zadania dotrzymają terminów, czas reakcji na przerwanie lub wywołanie systemowe będzie zawsze mniejszy niż x itd. - JEŚLI I TYLKO JEŚLI bardzo mocne założenia zostaną przyjęte i są poprawne, wszystko, co ma znaczenie, jest statyczne i znane a 'priori (generalnie takie gwarancje dla twardych systemów czasu rzeczywistego są otwartym problemem badawczym, z wyjątkiem raczej prostych przypadków)

Miękki system czasu rzeczywistego nie daje deterministycznych gwarancji, ma na celu zapewnienie możliwie najlepszej określonej analitycznie i osiągniętej probabilistycznej terminowości i przewidywalności terminowości, które są wykonalne w obecnych dynamicznych warunkach, zgodnie z kryteriami specyficznymi dla aplikacji.

Oczywiście trudny czas rzeczywisty to prosty, specjalny przypadek miękkiego czasu rzeczywistego. Oczywiście miękkie, niedeterministyczne zapewnienia analityczne 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 w czasie rzeczywistym nie jest dynamiczna. statyczny.

„Firmowy czas rzeczywisty” to źle zdefiniowany specjalny przypadek „miękkiego czasu rzeczywistego”. Nie ma potrzeby używania tego terminu, jeśli termin „miękki czas rzeczywisty” jest rozumiany i używany właściwie.

Mam bardziej szczegółowe, znacznie bardziej precyzyjne omówienie czasu rzeczywistego, trudnego czasu rzeczywistego, miękkiego czasu rzeczywistego, przewidywalności, determinizmu i powiązanych tematów na mojej stronie real-time.org.

E. Douglas Jensen
źródło
„Pierwsza rewolucja ma miejsce, kiedy zmienisz zdanie na temat tego, jak patrzysz na rzeczy i zobaczysz, że może istnieć inny sposób spojrzenia na to, że nie zostałeś pokazany”. --Gil Scott-Heron, „The Revolution will not be TV”
E. Douglas Jensen,
2

w czasie rzeczywistym - termin odnoszący się do systemu lub trybu działania, w którym obliczenia są wykonywane w czasie rzeczywistym, w którym występuje proces zewnętrzny, w celu wykorzystania wyników obliczeń do kontrolowania, monitorowania lub reagowania na proces zewnętrzny w odpowiednim czasie sposób. [Norma IEEE 610.12.1990]

Wiem, że ta definicja jest stara, bardzo stara. Nie mogę jednak znaleźć nowszej definicji IEEE (Institute of Electrical and Electronics Engineers).

Mike Jablonski
źródło
2
Właściwie rok 1990 wcale nie jest stary. Miałem tę dyskusję w latach 70., a definicja była mniej więcej taka sama.
Hot Licks
2

Rozważmy zadanie, które wprowadza dane z portu szeregowego. Gdy nadejdą nowe dane, port szeregowy wyzwala zdarzenie. Gdy oprogramowanie obsługuje to zdarzenie, odczytuje i przetwarza nowe dane. Port szeregowy ma sprzęt do przechowywania przychodzących danych (2 w MSP432, 16 w TM4C123), tak że jeśli bufor jest pełny i nadejdzie więcej danych, nowe dane zostaną utracone. Czy ten system jest twardy, stabilny czy miękki w czasie rzeczywistym?

Jest to trudne w czasie rzeczywistym, ponieważ jeśli odpowiedź jest spóźniona, dane mogą zostać utracone.


Pomyśl o aparacie słuchowym, który wprowadza dźwięki z mikrofonu, przetwarza dane dźwiękowe, a następnie przekazuje je do głośnika. System zwykle ma małe i ograniczone jitter, ale czasami inne zadania w aparacie słuchowym powodują opóźnienie niektórych danych, powodując pulsowanie szumu w głośniku. Czy ten system jest twardy, stabilny czy miękki w czasie rzeczywistym?

Jest to stabilny czas rzeczywisty, ponieważ powoduje błąd, który można dostrzec, ale efekt jest nieszkodliwy i nie zmienia znacząco jakości doświadczenia.


Rozważ zadanie, które wysyła dane do drukarki. Gdy drukarka jest bezczynna, wyzwala zdarzenie. Gdy oprogramowanie obsługuje to zdarzenie, wysyła więcej danych do drukarki. Czy ten system jest twardy, stabilny czy miękki w czasie rzeczywistym?

Jest to miękki czas rzeczywisty, ponieważ im szybciej reaguje, tym lepiej, ale wartość systemu (przepustowość to ilość danych drukowanych na sekundę) zmniejsza się wraz z opóźnieniem.

UTAustinX: UT.RTBN.12.01x Sieci Bluetooth w czasie rzeczywistym

Mohamed Abd El Raouf
źródło
1

Może definicja jest błędna.

Z mojego doświadczenia oddzieliłbym te dwa rozwiązania jako zależne od sprzętu i oprogramowania.

Jeśli masz 200 ms na obsługę przerwania sterowanego sprzętem, to właśnie masz. Wbijasz tam 300ms kodu, a system nie jest uszkodzony, nie został opracowany. Zostaniesz wyrzucony, zanim skończysz. Twój kod nie działa lub nie nadaje się do celu. Wiele systemów ma ściśle określone okresy przetwarzania. Wideo, telekomunikacja itp.

Jeśli piszesz aplikację działającą w czasie rzeczywistym, można to uznać za miękką . Jeśli zabraknie Ci czasu, możesz mieć nadzieję na mniejsze obciążenie następnym razem, możesz dostroić system operacyjny, dodać trochę pamięci lub nawet zaktualizować sprzęt. Masz opcje.

Spojrzenie na to z perspektywy UX nie jest pomocne. Skoda może się nie zepsuć, jeśli się zepsuje, ale BMW na pewno będzie.

Steve
źródło
co masz przeciwko Škodas!
Erik Kaplun,
1

Definicja rozszerzała się przez lata ze szkodą dla tego terminu. To, co obecnie nazywane jest „twardym” czasem rzeczywistym, nazywa się po prostu czasem rzeczywistym. Dlatego systemy, w których brakujące okna czasowe (zamiast jednostronnych terminów) skutkowałyby niepoprawnymi danymi lub nieprawidłowym zachowaniem, powinny być brane pod uwagę w czasie rzeczywistym. Systemy bez tej cechy nie działałyby w czasie rzeczywistym.

Nie oznacza to, że czas nie jest interesujący w systemach nie czasu rzeczywistego, oznacza to po prostu, że wymagania czasowe w takich systemach nie prowadzą do zasadniczo niepoprawnych wyników.

user1671787
źródło
1

Twarde systemy czasu rzeczywistego używają prewencyjnej wersji planowania priorytetów, dzięki czemu krytyczne zadania są natychmiast planowane, podczas gdy miękkie systemy czasu rzeczywistego używają nie wywłaszczającej wersji planowania priorytetów, co pozwala na zakończenie bieżącego zadania przed przeniesieniem kontroli na wyższy priorytet zadanie, powodując dodatkowe opóźnienia. W związku z tym terminy zadań są bezwzględnie przestrzegane w twardych systemach czasu rzeczywistego, podczas gdy w miękkich systemach czasu rzeczywistego nie są one traktowane poważnie.

Kishor Bhoyar
źródło