Co to jest czas rzeczywisty?
W informatyce czas rzeczywisty odnosi się do bardzo krótkich ram czasowych, które wydają się natychmiastowe. Gdy komputer przetwarza dane z tą prędkością, odczytuje i obsługuje dane w momencie ich otrzymania, generując wyniki bez opóźnień. Na przykład witryna internetowa aktualizowana w czasie rzeczywistym pozwoli widzom zobaczyć zmiany natychmiast po ich pojawieniu się, zamiast czekać na aktualizacje w późniejszym terminie.
Proces komputerowy działający w czasie rzeczywistym nie ma określonego terminu. Z drugiej strony oczekuje się, że system czasu rzeczywistego zareaguje nie tylko szybko, ale także w przewidywalnym czasie. Dobrym przykładem jest system przeciwdziałający blokowaniu się samochodu. Oczekuje się, że układ przeciwblokujący zwolni hamulce pojazdu, zapobiegając niebezpiecznemu zablokowaniu koła, w przewidywalnie krótkim czasie.
Niestety zdarzają się sytuacje, w których systemy czasu rzeczywistego nie reagują zgodnie z oczekiwaniami. Taki proces kończy się niepowodzeniem, gdy jego zadanie nie zostanie ukończone przed upływem terminu. W informatyce nie podano okresu karencji z powodu innych wymagań dotyczących systemu. Terminy muszą być dotrzymywane bez względu na inne czynniki; są uważane za krytyczne dla misji.
Gdy proces jest uważany za trudny w czasie rzeczywistym, musi zakończyć działanie do określonego czasu. Jeśli nie dotrzyma terminu, jego działanie jest bezwartościowe, a system, którego jest składnikiem, może napotkać awarię. Jednak gdy system jest uważany za miękki w czasie rzeczywistym, jest miejsce na spóźnienie. 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.
W systemach wbudowanych często stosuje się twarde systemy czasu rzeczywistego. Rozważmy na przykład układ sterowania silnikiem samochodu. Taki system jest uważany za trudny, ponieważ opóźniony proces może spowodować awarię silnika. Systemy te są stosowane, gdy ważne jest, aby zadanie lub zdarzenie zostało wykonane w ściśle określonym terminie. Jest to zwykle konieczne, gdy uszkodzenie lub utrata życia mogą wystąpić w wyniku awarii systemu.
Miękkie systemy czasu rzeczywistego są zwykle stosowane, gdy istnieje wiele połączonych systemów, które należy utrzymywać pomimo zdarzeń i okoliczności zmieniających się. 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 rozkładów podróży dla dużych firm transportowych jest często miękkie w czasie rzeczywistym. Konieczne jest, aby takie oprogramowanie aktualizowało harmonogramy z niewielkim opóźnieniem. Jednak opóźnienie o kilka sekund prawdopodobnie nie spowoduje chaosu.