Linux a czas rzeczywisty
Wprowadzenie do systemów RT:

RTLinux:

KURT Linux:

Slajdy:

Systemy twarde i miękkie

Rozważmy dwa przykładowe procesy:

  • system kontroli lotów
  • wyświetlanie obrazu z kamery

W pierwszym przypadku widać, że jakiekolwiek przekroczenie ustalonych limitów czasowych może doprowadzić do tragedii. Wyobraźmy sobie sytuację, w której dwa samoloty pasażerskie lecą kursem kolizyjnym. Jeśli system nie poinformuje kontrolera lotów odpowiednio szybko, wówczas nie będzie on w stanie w porę podać nowych kursów pilotom i zaistnieje realna szansa zderzenia, a w konsekwencji wiele ofiar.

W drugim przypadku sytuacja wygląda inaczej. Jeśli wystąpi jakieś opróżnienie w przetwarzaniu danych z kamery, wówczas jedyne, co nam grozi to chwilowa utrata jakości obrazu.

W związku z tym wyróżnia się dwa rodzaje systemów czasu rzeczywistego:

  • Twarde systemy czasu rzeczywistego (hard real time systems) - systemy z absolutną gwarancja odpowiedzi w wyznaczonym czasie.
  • Miękkie systemy czasu rzeczywistego (soft real time systems) - systemy, w których dotrzymanie terminów jest ważne, ale system funkcjonuje poprawnie przy sporadycznym przekroczeniu limitów. Przekroczenie czasu wiąże się najczęściej z utratą jakości.

Istnieją dwa sposoby szeregowania zadań w systemach czasu rzeczywistego.

Jeśli właściwości kontrolowanego systemu są znane z góry, w związku z tym rodzaj i kolejność podejmowanych działań może być określona przed rozpoczęciem wykonywania procesu, wówczas można użyć szeregowania statycznego. Taka polityka stosowana jest raczej do zadań występujących okresowo (analiza danych z czujnika). Jest ona oczywiście całkowicie nieelastyczna, ponieważ system zostaje ściśle związany z konkretnym procesem. Jest jednak prostrzy w implementacji, a co za tym idzie tańszy i właśnie dlatego dosyć powszechnie stosowany. Złożoność kontrolowanych procesów, oraz praca w środowiskach o większej niepewności, sprawia, że powstają również systemy z szeregowaniem dynamicznym. Dzięki takiemu podejściu jesteśmy w stanie uzyskać o wiele bardziej uniwersalne systemy, jest to oczywiście przyszłość systemów czasu rzeczywistego.