Projektowanie oprogramowania czasu rzeczywistego

Slides:



Advertisements
Podobne prezentacje
Video DR-S Cyfrowy rejestrator wideo
Advertisements

Zerowanie mikroprocesorów Cel: wprowadzenie mikroprocesora w określony stan początkowy Zwykle realizowany poprzez: inicjalizację licznika rozkazów (PC)
Co to jest BIOS ? Piotr Pierzchalski kl. III B.
Związki w UML.
Podstawowe pojęcia programowania współbieżnego
SYSTEMY OPERACYJNE WSTĘP
Semafory Autorzy : Michał Winciorek Łukasz Jackowicz.
Procesy poznawcze cd Uwaga.
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Wykład nr 1: Wprowadzenie. Pojęcia podstawowe
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Synchronizacja Rozdział 5.
Systemy operacyjne.
Systemy operacyjne Bibliografia:
Temat nr 10: System przerwań
Diagram czynności (Activity Diagrams)
Budowa systemów operacyjnych czasu rzeczywistego
Java – programowanie obiektowe
Projektowanie i programowanie obiektowe II - Wykład IV
ZARZĄDZANIE PROCESAMI
Język Java Wielowątkowość.
1 Podstawy informatyki H. P. Janecki- 2006_ Systemy Operacyjne W6.
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
SIEĆ P2P 1. Definicja sieci równouprawnionej. To taka sieć, która składa się z komputerów o takim samym priorytecie ważności, a każdy z nich może pełnić.
Inżynieria Oprogramowania
ogólne pojęcia struktury
Podstawy programowania
Podstawy programowania II
Projektowanie architektur systemów filtracji i akwizycji danych z wykorzystaniem modelowania w domenie zdarzeń dyskretnych Krzysztof Korcyl.
Opracowanie: Maria Wąsik
Wielozadaniowowść systemu operacyjnego Linux
Systemy operacyjne.
Zasada działania komputera
Autor: Justyna Radomska
Budowa komputera.
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 4.
Prezentacja i szkolenie
Podstawowe usługi systemów operacyjnych
Problem sekcji krytycznej
Przerwanie ang. interrupt.
Maszyna wirtualna ang. virtual machine, VM.
Buforowanie D e f i n i c j a.
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
Elementy zestawu komputerowego
Etapy uruchamiania systemu Pliki konfiguracyjne
Wykład 7 Synchronizacja procesów i wątków
PL/SQL – dalsza wędrówka
Projektowanie stron WWW
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
Algorytmika.
Zintegrowany sterownik przycisków. Informacje podstawowe Każdy przycisk jest podłączony do sterownika za pośrednictwem dwóch przewodów, oraz dwóch linii.
Diagram aktywności (czynności)
Zarządzanie zagrożeniami
Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu.
Procesor, pamięć, przerwania, WE/WY, …
Modelowanie obiektowe - system zarządzania projektami.
Diagram czynności Diagram czynności (activity diagram) służy do modelowania dynamicznych aspektów systemu. Diagram czynności przedstawia sekwencyjne lub.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Gromadzenie informacji
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Projektowanie architektoniczne
BUDOWA WEWNĘTRZNA KOMPUTERA
Wstęp do programowania Wykład 7
Wątki, programowanie współbieżne
Wskaż wybrany krok lub kliknij Enter aby dowiedzieć się więcej.
JavaBeans by Paweł Wąsala
Zapis prezentacji:

Projektowanie oprogramowania czasu rzeczywistego Przedstawienie metod używanych do projektowania systemów czasu rzeczywistego i opisu niektórych ogólnych architektur systemów czasu rzeczywistego.

Cele Zrozumieć pojęcie czasu rzeczywistego i dowiedzieć, dlaczego takie systemy zwykle implementuje się jako zbiory procesów współbieżnych. Zrozumieć proces projektowania systemów czasu rzeczywistego. Zrozumieć rolę modułu wykonawczego czasu rzeczywistego. Poznać uniwersalne architektury procesowe systemów monitorowania i sterowania oraz systemów gromadzenia danych.

Zawartość Projektowanie systemów Moduły wykonawcze czasu rzeczywistego Systemy monitorowania i sterowania Systemy gromadzenia danych

Systemy czasu rzeczywistego Komputery są obecnie używane do sterowania rozmaitymi systemami, od maszyn domowych do całych hal produkcyjnych. Te komputery bezpośrednio porozumiewają się z urządzeniami sprzętowymi. Ich oprogramowanie jest wbudowanym systemem czasu rzeczywistego, który musi reagować na zdarzenia powodowane przez sprzęt i wysyłać sygnały sterujące w odpowiedzi na te zdarzenia.

Definicje System czasu rzeczywistego jest systemem oprogramowania, którego poprawne działanie zależy od wyników przez niego wytwarzanych i czasu potrzebnego do ich wytworzenia. Tolerancyjnym systemem czasu rzeczywistego jest system, którego działanie jest tylko gorsze, jeśli wyniki nie są dostępne zgodnie z ustalonymi wymaganiami czasowymi. Wymagający system czasu rzeczywistego to system, którego działanie jest niepoprawne, jeśli wyniki nie są tworzone zgodnie z ustalonymi wymaganiami czasowymi.

System czasu rzeczywistego jako system bodziec-reakcja Na podstawie otrzymanego bodźca system musi wygenerować odpowiednią reakcję. Zachowanie systemu czasu rzeczywistego można więc zdefiniować przez wyliczenie bodźców, które może otrzymać, skojarzonych z nimi odpowiedzi oraz czasu, w którym należy je utworzyć. Podział bodźców: bodźce okresowe pojawiają się w przewidywanych odstępach czasu, bodźce nieokresowe pojawiają się nieregularnie.

Architektura systemu czasu rzeczywistego System czasu rzeczywistego musi reagować na bodźce pojawiające się w różnych chwilach. Jego architektura musi więc być tak skonstruowana, aby sterowanie było przekazywane do odpowiedniej procedury obsługi natychmiast po pojawieniu się bodźca. Systemy czasu rzeczywistego zwykle projektowane są jako zbiór współbieżnych, współpracujących procesów. Zadaniem części systemu czasu rzeczywistego, zwanego modułem wykonawczym, jest zarządzanie tymi procesami.

Uniwersalny model systemu czasu rzeczywistego Detektor Detektor Detektor Detektor Detektor Detektor System sterujący czasu rzeczywistego Efektor Efektor Efektor Efektor

Uniwersalny model architektoniczny Z każdym rodzajem detektora kojarzy się proces zarządzania detektorem. Procesy obliczające wyznaczają oczekiwaną odpowiedź na bodźce otrzymane przez system. Procesy sterowania efektorami zarządzają działaniem efektorów. Ten model umożliwia szybkie odbieranie danych od detektorów (zanim będą gotowe następne dane wejściowe), późniejsze ich przetwarzanie i reagowanie przez efektory.

Procesy sterujące detektorami i efektorami Reakcja Bodziec Sterowanie detektorem Procesor danych Sterowanie efektorem

Wymogi dot. projektowania systemu Część procesu projektowania systemu polega na podjęciu decyzji, które udogodnienia systemu będą zaimplementowane przez oprogramowanie, a które przez sprzęt. Ograniczenia czasowe lub inne wymagania mogą oznaczać, że niektóre funkcje systemu, takie jak przetwarzanie sygnałów, muszą być zaimplementowane w postaci specjalnie zbudowanego sprzętu. Proces projektowania systemu może więc zarówno obejmować projektowanie specjalnego sprzętu, jak i projektowanie oprogramowania czasu rzeczywistego.

Hardware and software design

Czynności procesu projektowania Zidentyfikuj bodźce, które system musi przetwarzać oraz skojarzone z nimi reakcje. Dla każdego bodźca i związanej z nim reakcji zidentyfikuj wymagania czasowe, które dotyczą przetwarzania zarówno bodźca, jak i reakcji. Pogrupuj bodźce i reakcje w kilku procesach współbieżnych. Dobrym modelem uniwersalnej architektury takiego systemu jest skojarzenie jednego procesu z każdą klasą bodźców i reakcji.

Czynności procesu projektowania c.d. Dla każdego bodźca i reakcji zaprojektuj algorytmy do przeprowadzania koniecznych obliczeń. Te projekty algorytmów często trzeba opracować w dość wczesnej fazie procesu, aby poznać ilość przetwarzania i czas potrzebny do wykonania tych obliczeń. Zaprojektuj system szeregujący, który zapewni, że procesy będą uruchamiane w chwili wystarczającej do spełnienia ograniczeń czasowych. Zintegruj system pod kontrolą modułu wykonawczego.

Uwagi dot. ograniczeń czasowych i projektowania obiektowego Systemy czasu rzeczywistego muszą spełniać postawione im ograniczenia czasowe, a zatem zastosowanie strategii projektowych, które powodują dodatkowe narzuty implementacyjne, byłoby niepraktyczne w wypadku wymagających systemów czasu rzeczywistego. Projektowanie obiektowe oznacza na przykład ukrywanie informacji o reprezentacji danych i dostęp do atrybutów za pośrednictwem operacji zdefiniowanych na obiektach. Prowadzi to nieuchronnie do narzutów i utraty efektywności.

Wykorzystanie modelu maszyny stanowej W modelu stanowym systemu zakłada się, że w każdej chwili system jest w jednym z wielu swoich stanów. Po wystąpieniu bodźca może nastąpić przejście do innego stanu. Np. system sterujący zaworem może na przykład zmienić stan z „zawór otwarty” na „zawór zamknięty” po otrzymaniu polecenia operatora (bodźca).

Model maszyny stanowej kuchenki mikrofalowej Pełna moc Pełna moc do: ustaw moc = 600 Działanie do: podgrzewanie Stoper Liczba Pełna moc Oczekiwanie do: wyświetlaj godzinę Ustawienie czasu do: odczytaj liczbę exit: ustaw czas Połowa mocy Początek Zatrzymaj Połowa mocy Stoper Oczekiwanie do: wyświetlaj godzinę Połowa mocy do: ustaw moc = 300 Otworzono drzwiczki Gotowy do: wyświetlaj „Gotowy” Zamknięto drzwiczki Niegotowy do: wyświetlaj „Czekam” Otworzono drzwiczki

Programowanie czasu rzeczywistego Język programowania użyty do implementacji systemu czasu rzeczywistego również może mieć wpływ na projekt. Wymagające systemy czasu rzeczywistego wciąż często programuje się w asemblerze, aby sprostać limitom czasowym. Można skorzystać także z języków programowania systemowego takich jak C, które dają efektywny kod. Zaleta języków programowania systemowego polega na tym, że umożliwiają tworzenie efektywnego kodu. Taki język nie obejmuje jednak żadnych konstrukcji do obsługi współbieżności albo zarządzania zasobami współdzielonymi.

Problemy z Javą Java nie nadaje się do programowania wymagających systemów czasu rzeczywistego lub systemów, w których procesy mają ścisłe limity czasowe. Oto zasadnicze problemy z zastosowaniem Javy jako języka programowania czasu rzeczywistego: Nie można określić czasu, w którym wątki powinny działać. Odśmiecanie nie podlega sterowaniu – może rozpocząć się w dowolnym czasie. Nie ma możliwości odczytu długości kolejek związanych ze współdzielonymi zasobami. Implementacja maszyny wirtualnej Javy jest inna na każdym komputerze. Język nie przewiduje szczegółowej analizy wykorzystania procesora i pamięci w czasie wykonania.

Moduły wykonawcze czasu rzeczywistego Moduł wykonawczy czasu rzeczywistego jest odpowiednikiem systemu operacyjnego w komputerze ogólnego przeznaczenia. Zarządza procesami i przydziałem zasobów systemu czasu rzeczywistego. Uruchamia i zatrzymuje procesy, aby reagować na bodźce. Przydziela pamięć i zasoby procesora. Nie obejmuje jednak bardziej złożonych udogodnień systemu operacyjnego, np. zarządzania plikami. 14

Zbiór komponentów modułu wykonawczego Zegar czasu rzeczywistego. Udostępnia informacje niezbędne do okresowego. szeregowania procesów. Procedura obsługi przerwań. Zarządza nieokresowymi żądaniami usług. Moduł szeregujący. Odpowiada za znajdowanie procesów, które można wykonać, i wybór jednego z nich, który będzie wykonywany. Menedżer zasobów. Przydziela procesowi wybranemu do wykonywania odpowiednie zasoby procesora i pamięć. Dyspozytor. Odpowiada za rozpoczęcie wykonywania procesu.

Rys. Komponenty modułu wykonawczego systemu czasu rzeczywistego Informacje o szeregowaniu Moduł szeregujący Zegar czasu rzeczywistego Procedura obsługi przerwań Informacje o zasobach wymaganych przez procesy Procesy czekające na zasoby Lista dostępnych zasobów Menedżer zasobów Proces Zwolnione gotowy zasoby Dyspozytor Lista procesów gotowych Lista procesorów Proces wykonywany Rys. Komponenty modułu wykonawczego systemu czasu rzeczywistego

Systemy zapewniające ciągłą obsługę Systemy zapewniające ciągłą obsługę (np. telekomunikacja, monitoring) mogą posiadać pewne udogodnienia modułu wykonawczego. Menedżer konfiguracji. Odpowiada za dynamiczną rekonfigurację sprzętu systemu. Bez zatrzymywania systemu można wyłączyć z użycia pewne moduły sprzętowe lub rozszerzyć system o nowy sprzęt. Menedżer awarii. Odpowiada za wykrywania awarii sprzętu i oprogramowania oraz podjęcie odpowiednich działań zmierzających do odtworzenia stanu po awariach.

Poziom priorytetu i obsługa sytuacji wyjątkowych Bodźce przetwarzane przez systemy czasu rzeczywistego mają zwykle różne poziomy priorytetu. W wypadku niektórych bodźców, takich jak te związane z sytuacjami wyjątkowymi, ważne jest, aby zakończyć ich przetwarzanie w ściśle ustalonym czasie. Inne procesy można bezpiecznie opóźnić, gdy obsługi wymaga bardziej krytyczny proces.

Poziomy priorytetu procesów Moduły wykonawcze są zdolne do zarządzania co najmniej dwoma poziomami priorytetu procesów: Poziom przerwania oznacza najwyższy priorytet. Nadaje się go procesom, które wymagają bardzo szybkiej reakcji. Jednym z nich jest proces zegara czasu rzeczywistego. Poziom zegarowy jest nadawany procesom okresowym.

Procesy okresowe Procesy okresowe to procesy, które muszą być wykonywane w ustalonych odstępach czasu w celu pobrania danych i sterowania efektorami. Moduł wykonawczy korzysta ze swojego zegara czasu rzeczywistego, aby określić, kiedy proces ma być wykonywany. W większości systemów czasu rzeczywistego występuje kilka klas procesów okresowych. Mają one różne okresy (odstępy między wykonaniami), czasy działania i limity czasowe (czasy, po których muszą zakończyć działanie). Moduł wykonawczy musi wybrać odpowiedni proces do wykonania w każdej chwili.

Zarządzanie procesami Zarządzanie procesami w module wykonawczym czasu rzeczywistego polega na zarządzaniu zbiorem procesów współbieżnych, który jest częścią systemu czasu rzeczywistego. Menedżer procesów musi wybrać proces do wykonania, przydzielić dla niego pamięć i zasoby procesora oraz rozpocząć jego wykonywanie na procesorze.

Akcje modułu wykonawczego niezbędne do uruchomienia procesu Moduł szeregujący Wybierz proces do wykonania Menedżer zasobów Przydziel pamięć i procesor Dyspozytor Rozpocznij wykonywanie na dostępnym procesorze

Moduł szeregujący Przegląda listę procesów okresowych i wybiera proces do wykonania. Wybór zależy od priorytetu, okresu, oczekiwanego czasu wykonania i limitu poszczególnych procesów gotowych. Czasem po jednym tyknięciu zegara trzeba wykonać dwa procesy z różnymi limitami czasowymi. W takiej sytuacji jeden z nich musi być opóźniony, jednak najwyżej na tyle, aby jego zakończenie przed upływem limitu czasowego było możliwe.

Strategie szeregowania Szeregowanie bez wywłaszczenia. Gdy wybrano proces do wykonywania, działa on aż do zakończenia swojej pracy lub do chwili zablokowania z jakiegoś powodu, np. oczekiwania na dane wejściowe. Szeregowanie z wywłaszczeniem. Działanie procesu może być przerwane, jeśli trzeba obsłużyć proces o wyższym priorytecie.

Systemy monitorowania i sterowania Systemy monitorowania i sterowania są ważna klasą systemów czasu rzeczywistego. Sprawdzają stan detektorów dostarczających informacje o środowisku systemu i wykonują akcje zależne od odczytów z tych detektorów. Systemy monitorowania podejmują działania, gdy detektory wykryją jakąś wyjątkową wartość. Systemy sterowania ustawicznie sterują sprzętowymi efektorami zależnie od wartości związanych z nimi detektorów.

Przykład systemu antywłamaniowego Ten system korzysta z różnych rodzajów detektorów. Gdy detektor wykrywa obecność intruza, system automatycznie dzwoni do pobliskiego posterunku policji i za pomocą syntezatora mowy informuje o miejscu wywołania alarmu. System alarmowy zwykle jest zasilany z sieci, ale ma też zapasowe akumulatory.

Przykład systemu antywłamaniowego c.d. Ten system jest „tolerancyjnym” systemem czasu rzeczywistego, który nie ma dużych wymagań czasowych. Detektory nie muszą wykrywać bardzo szybko następujących zdarzeń, trzeba je więc odpytywać najwyżej dwa razy na sekundę.

Projektowanie systemu antywłamaniowego Projektowanie rozpoczyna się od rozpoznania bodźców nieokresowych działających na system i skojarzonych z nimi odpowiedzi. Następnym krokiem procesu projektowania jest rozważenie ograniczeń czasowych związanych z każdym bodźcem i skojarzoną z nim reakcją. Kolejnym krokiem jest przydział funkcji systemu do procesów współbieżnych.

Dwie klasy bodźców Zanik zasilania Jest zgłaszany przez układ monitorujący napięcie. Wymagana odpowiedzią jest przełączenie na zasilanie zapasowe przez wysłanie sygnału do urządzenia przełączającego zasilanie. Wtargnięcie intruza Reakcją na ten bodziec jest wyznaczenie numeru pokoju, w którym znajduje się aktywny detektor, zadzwonienie na policję, uruchomienie syntezatora mowy do obsługi telefonu oraz włączenie syreny i świateł w okolicach włamania.

Wymagania czasowe stawiane bodźcom i reakcji Bodziec/reakcja Wymagania czasowe Przerwanie zaniku Przełączenie na zasilanie zapasowe musi być ukończone po najwyżej zasilania 50ms Alarm drzwiowy Każdy detektor drzwiowy musi być odpytywany dwa razy na sekundę Alarm okienny Każdy detektor okienny musi być odpytywany dwa razy na sekundę Detektor ruchu Każdy detektor ruchu powinien być odpytywany dwa razy na sekundę Sygnał dźwiękowy Sygnał dźwiękowy musi być włączony po upływie najwyżej 1 sekundy od alarmu wywołanego przez detektor Włączenie świateł Światła powinny być włączone po upływie najwyżej 1/2 sekundy Komunikacja Wezwanie policji przez telefon należy rozpocząć po upływie najwyżej 2 sekund od alarmu wywołanego przez detektor Syntezator mowy Komunikat z syntezatora powinien być dostępny po upływie najwyżej 4 sekund od alarmu wywołanego przez detektor

Rys. Architektura procesowa systemu antywłamaniowego 400 Hz 60 Hz 100 Hz Proces detektorów ruchu Proces detektorów drzwiowych Proces detektorów okiennych Stan detektorów Stan detektorów Stan detektorów 560 Hz Proces monitorowania budynku System alarmowy Kontroler budynku Proces komunikacyjny Numer pokoju Przerwanie braku zasilania Proces systemu alarmowego Proces przełączania zasilania Komunikat alarmowy System alarmowy Numer pokoju System alarmowy System alarmowy Numer pokoju Proces sterowania światłami Proces sygnalizacji dźwiękowej Proces syntezatora mowy Rys. Architektura procesowa systemu antywłamaniowego

Building_monitor process 1

Building_monitor process 2

Przykład systemu sterowania System antywłamaniowy jest systemem monitorowania, a nie systemem sterowania, ponieważ nie zawiera efektorów będących pod bezpośrednim wpływem stanu detektorów. Przykładem systemu sterowania jest system sterowania ogrzewaniem w budynku. Monitoruje on detektory temperatury w różnych pokojach budynku oraz włącza i wyłącza grzejniki w zależności od aktualnej temperatury i ustawienia termostatów w pokojach.

Architektura procesowa systemu sterowania temperaturą 500 Hz Proces detektora Stan detektora 500 Hz Proces termostatu Proces termostatu 500 Hz Polecenie przełączenia Numer pokoju Proces sterowania grzejnikiem Proces sterowania piecem

Systemy gromadzenia danych Systemy gromadzenia danych stanowią kolejną klasę systemów czasu rzeczywistego, mających zwykle uniwersalny model architektoniczny. Takie systemy zbierają od detektorów dane do późniejszego przetwarzania i analizy.

System zbierający dane od detektorów monitorujących promieniowanie neutronowe w reaktorze atomowym Dane z detektorów są umieszczane w buforze; następnie są z niego pobierane i przetwarzane. W rezultacie na ekranie operatora jest wyświetlane średnie natężenie promieniowania. Każdy detektor ma swój proces, który zmienia dane analogowe o natężeniu promieniowania neutronowego na sygnał cyfrowy. Następnie przekazuje to natężenie promieniowania oraz swój identyfikator do bufora danych. Proces odpowiedzialny za przetwarzanie danych pobiera dane z tego bufora, przetwarza je i przekazuje do procesu wyświetlającego w celu pokazania na konsoli operatora.

Architektura systemu monitorującego promieniowanie Detektory (każdy przepływ danych to stan detektora) Wyznaczone natężenie promieniowania Identyfikator i stan detektora Przetwarzanie danych Proces detektora Bufor z danymi z detektorów Wyświetlacz

Wzajemne wykluczanie W systemach czasu rzeczywistego, które gromadzą i przetwarzają dane, czasy wykonywania i okresy procesów gromadzących oraz przetwarzających mogą być nierówne. W większości systemów gromadzenia danych neutralizacja tych różnic szybkości polega na zastosowaniu bufora cyklicznego. Oczywiście należy zaimplementować wzajemne wykluczanie, aby procesy producentów i konsumentów nie miały w buforze dostępu do tego samego elementu w tym samym czasie. System musi również zadbać o to, żeby producent nie mógł dodać informacji do pełnego bufora i żeby konsument nie pobrał informacji z pustego bufora.

Bufor cykliczny do gromadzenia danych Proces producenta Proces konsumenta

Implementacja bufora cyklicznego w Javie

Implementacja bufora cyklicznego w Javie synchronized OdczytDetektora pobierz () throw InterruptedException { OdczytDetektora wynik = new OdczytDetektora (-1, -1) ; if (liczbaDanych = = 0) wait () ; wynik = składnica [początek] ; początek = początek + 1 ; if (początek = = rozmiar) początek = 0 ; liczbaDanych = liczbaDanych –1 ; notify () ; return wynik ; } // pobierz } //BuforCykliczny Implementacja bufora cyklicznego w Javie

Główne tezy System czasu rzeczywistego to system oprogramowania, który musi reagować na zdarzenia w czasie rzeczywistym. Jego poprawność nie zależy tylko od wytwarzanych wyników, ale także od czasu ich wytworzenia. Uniwersalny model architektury systemu czasu rzeczywistego przewiduje skojarzenie procesu z każdą klasą detektorów i efektorów. Mogą być potrzebne także inne procesy koordynujące. Projektowanie architektoniczne systemu czasu rzeczywistego polega zwykle na nadaniu systemowi struktury zbioru oddziałujących na siebie procesów współbieżnych. Moduł wykonawczy czasu rzeczywistego odpowiada za zarządzanie procesami i zasobami. Zawsze obejmuje moduł szeregujący, który jest komponentem podejmującym decyzje o tym, który proces ma się wykonywać. Decyzje o szeregowaniu są podejmowane na podstawie priorytetów procesów.

Główne tezy Systemy monitorowania i sterowania okresowego odpytują zbiór detektorów, które dostarczają informacje ze środowiska systemu. Takie systemy przez wydawanie poleceń efektorom wykonują akcje, które zależą od odczytów detektorów. Systemy gromadzenia danych są zwykle zgodne z modelem producent-konsument. Proces producenta wkłada dane do bufora cyklicznego, skąd są pobierane do wykorzystania przez konsumenta. Również bufor jest implementowany jako proces, co umożliwia wyeliminowanie konfliktów między producentem, a konsumentem. Chociaż Java ma udogodnienia do realizacji współbieżności, nie nadaje się do tworzenia krytycznych systemów czasu rzeczywistego. Java nie obejmuje udogodnień do sterowania wykonaniem. Nie ma tez możliwości analizowania czasowych aspektów zachowania programów Javy.