Co to jest w czasie rzeczywistym?

W informatyce czas rzeczywisty odnosi się do ram czasowych, które są bardzo krótkie i wydają się być natychmiastowe. Gdy komputer przetwarza dane z taką szybkością, odczytuje i przetwarza dane tak, jak są odbierane, bezzwłocznie generując wyniki. Na przykład witryna aktualizowana w czasie rzeczywistym pozwoli swoim przeglądającym zobaczyć zmiany, gdy tylko się pojawią, zamiast czekać na pojawienie się aktualizacji w późniejszym terminie.

Proces komputerowy nie działający w czasie rzeczywistym nie ma terminu. Z drugiej strony oczekuje się, że system czasu rzeczywistego będzie reagować nie tylko szybko, ale także w przewidywalnym czasie. Dobrym przykładem jest system zapobiegający blokowaniu się samochodu. Oczekuje się, że układ przeciwblokujący zwolni hamulce pojazdu, zapobiegając niebezpiecznemu blokowaniu kół, w przewidywalnie krótkim czasie.

Niestety zdarza się, że systemy działające w czasie rzeczywistym nie reagują zgodnie z oczekiwaniami. Taki proces kończy się niepowodzeniem, gdy jego zadanie nie zostanie zakończone przed upływem terminu. W informatyce nie ma okresu karencji ze względu na inne wymagania systemu. Terminy muszą być dotrzymywane bez względu na inne czynniki; są uważane za krytyczne dla misji.

Kiedy proces jest uważany za trudny w czasie rzeczywistym, musi zakończyć swoje działanie w określonym czasie. Jeśli nie dotrzyma terminu, jego działanie jest bezwartościowe, a system, którego jest elementem, może ulec awarii. Jednak gdy system jest uważany za miękki w czasie rzeczywistym, istnieje pewne miejsce na opóźnienia. Na przykład w takim systemie opóźniony proces może nie spowodować awarii całego systemu. Zamiast tego może prowadzić do obniżenia zwykłej jakości procesu lub systemu.

Twarde systemy czasu rzeczywistego są często używane w systemach wbudowanych. Rozważmy na przykład system sterowania silnikiem samochodu. Taki system jest uważany za trudny, ponieważ późny proces może spowodować awarię silnika. Systemy te są stosowane, gdy ważne jest, aby zadanie lub wydarzenie zostało obsłużone w ściśle określonym terminie. Jest to zwykle konieczne, gdy w wyniku awarii systemu może nastąpić uszkodzenie lub utrata życia.

Miękkie systemy czasu rzeczywistego są zwykle stosowane, gdy istnieje wiele połączonych systemów, które muszą być utrzymywane pomimo zmieniających się wydarzeń i okoliczności. Systemy te są również używane, gdy występują wymagania dotyczące równoczesnego dostępu. Na przykład oprogramowanie używane do utrzymywania harmonogramów podróży dla dużych firm transportowych jest często miękkie w czasie rzeczywistym. Takie oprogramowanie musi aktualizować harmonogramy z niewielkim opóźnieniem. Jednak kilkusekundowe opóźnienie raczej nie spowoduje chaosu.