1. Wprowadzenie
W niektórych systemach komputerowych oprócz precyzji obliczeń i przetwarzania danych wymagane są dodatkow e właściwości takie jak:
• współpraca (wymiana danych) z urządzeniami zewnętrznymi,
• gwarantowany nieprzekraczalny maksymalny czas oczekiwania na wynik przetwarzania danych,
• reakcja na awaryjne zdarzenia zachodzące w systemie powinna być podjęta w tak sposób, by zapewnić stabilność pracy systemu lub jego właściwe zatrzymanie.
Systemy w których powyższe założenia powinny być spełnione nazywane są systemami czasu rzeczywistego. Należą do ruch systemy stosowane w automatyce, gdzie nie spełnienie powyższych założeń może spowodować straty1 2 3 4 5 6 bądź doprowadzić do śmierci (np. w elektrowni, samolocie, w systemie kontroli ruchu lotniczego, fabryce itp.). Do tej grapy należą również systemy innego rodzaju, np. rezerwacja miejsc lotniczych czy systemy bankowe, gdzie względy finansowe wymagają sprawnego przetwarzania i przesyłania danych "na czas". W zależności od kosztów i strat związanych z przekroczeniem wymagań mówi się o "twardych" lub "miękkich" ograniczeniach czasu rzeczywistego.
Większość metod strukturalnych dla opisu systemów czasu rzeczywistego jest rozszerzeniem metod dla klasycznych systemów przetwarzających dane. Jedną z najbardziej znanych metod jest SADT (Structured Analysis and Design Technique) zaproponowana w 1985 przez P.T. Warda i S.J. Mellora jako rozszerzenie klasycznej metodyki Yourdona/DeMarco. Jej ideą jest hierarchiczna dekompozycja funkcjonalna z wykorzystaniem diagramów6 przepływu danych i sterowania. Cały system jest dekomponowany na zbiór wzajemnie na siebie oddziałujących, powiązanych modułów6, z których każdy ma określoną funkcję.
Grafy transformacji
Diagramy przepływu danych, które w metodyce SADT nazywane są grafami transformacji TRG (itransformiation graphs) są podstawowym narzędziem modelowania systemu. Obrazują one przekształcanie
danych wejściowych na dane wyjściowe (wyniki) przez kolejne przekształcenia funkcjonalne. W stosunku do klasycznych DFD uzupełniono je o możliwość modelowama przepływów6 sterujących (tzn. sygnałów lub przerwań) oraz uwzględniono istnienie procesów sterujących czyli procesów, których jedynym zadaniem jest koordynacja i synchronizacja działania itmych - "zwykłych" procesów.
Przepływ sterujący można uważać za kanał, przenoszący sygnały binarne (typu "włączony" lub "wyłączony"). W odróżnieniu od itmych omawianych przepływów, przepływ sterujący nie dostarcza wartości danych. Jest on wywoływany od jednego procesu do drugiego (lub od terminatora do procesu) jako informacja o konieczności aktywowania danego procesu. Wynika z tego, że proces przed nadejściem przepływu pozostawał w stanie uśpienia lub bezczynności.
Proces sterujący można traktować jako nadzorcę procesów wykonawczych. Jego zadaniem jest koordynacja pracy itmych procesów na diagramie: jego wejścia i wyjścia stanowią jedynie przepływy sterujące. Na pojedynczym DFD jest zwykle jeden taki proces. Przepływy sterujące, wychodzące z procesu sterującego służą do budzenia innych procesów ; wchodzące przepływy sterujące zwykle wskazują, że jeden z procesów zakończył wykony wanie zadania lub że
wystąpiła sytuacja wyjątkowa, o której należy poinformować proces sterujący. Po "obudzeniu" proces wznawia swoją działalność zgodnie z opisem w specyfikacji procesu.