Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 1 Projektowanie oprogramowania czasu rzeczywistego l Przedstawienie metod używanych do.

Podobne prezentacje


Prezentacja na temat: "©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 1 Projektowanie oprogramowania czasu rzeczywistego l Przedstawienie metod używanych do."— Zapis prezentacji:

1 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 1 Projektowanie oprogramowania czasu rzeczywistego l Przedstawienie metod używanych do projektowania systemów czasu rzeczywistego i opisu niektórych ogólnych architektur systemów czasu rzeczywistego.

2 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 2 Cele l Zrozumieć pojęcie czasu rzeczywistego i dowiedzieć, dlaczego takie systemy zwykle implementuje się jako zbiory procesów współbieżnych. l Zrozumieć proces projektowania systemów czasu rzeczywistego. l Zrozumieć rolę modułu wykonawczego czasu rzeczywistego. l Poznać uniwersalne architektury procesowe systemów monitorowania i sterowania oraz systemów gromadzenia danych.

3 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 3 Zawartość l Projektowanie systemów l Moduły wykonawcze czasu rzeczywistego l Systemy monitorowania i sterowania l Systemy gromadzenia danych

4 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 4 Systemy czasu rzeczywistego l Komputery są obecnie używane do sterowania rozmaitymi systemami, od maszyn domowych do całych hal produkcyjnych. l 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.

5 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 5 Definicje l 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. l 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. l Wymagający system czasu rzeczywistego to system, którego działanie jest niepoprawne, jeśli wyniki nie są tworzone zgodnie z ustalonymi wymaganiami czasowymi.

6 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 6 System czasu rzeczywistego jako system bodziec-reakcja l 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ć. l Podział bodźców: bodźce okresowe pojawiają się w przewidywanych odstępach czasu, bodźce nieokresowe pojawiają się nieregularnie.

7 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 7 Architektura systemu czasu rzeczywistego l 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. l Systemy czasu rzeczywistego zwykle projektowane są jako zbiór współbieżnych, współpracujących procesów. l Zadaniem części systemu czasu rzeczywistego, zwanego modułem wykonawczym, jest zarządzanie tymi procesami.

8 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 8 Uniwersalny model systemu czasu rzeczywistego Detektor System sterujący czasu rzeczywistego System sterujący czasu rzeczywistego Efektor

9 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 9 Uniwersalny model architektoniczny l Z każdym rodzajem detektora kojarzy się proces zarządzania detektorem. l Procesy obliczające wyznaczają oczekiwaną odpowiedź na bodźce otrzymane przez system. l Procesy sterowania efektorami zarządzają działaniem efektorów. l 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.

10 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 10 Procesy sterujące detektorami i efektorami Detektor Efektor Sterowanie efektorem Sterowanie efektorem Procesor danych Procesor danych Sterowanie detektorem Sterowanie detektorem Bodziec Reakcja

11 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 11 Wymogi dot. projektowania systemu l Część procesu projektowania systemu polega na podjęciu decyzji, które udogodnienia systemu będą zaimplementowane przez oprogramowanie, a które przez sprzęt. l 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. l Proces projektowania systemu może więc zarówno obejmować projektowanie specjalnego sprzętu, jak i projektowanie oprogramowania czasu rzeczywistego.

12 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 12 Hardware and software design

13 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 13 Czynności procesu projektowania l Zidentyfikuj bodźce, które system musi przetwarzać oraz skojarzone z nimi reakcje. l 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. l 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.

14 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 14 Czynności procesu projektowania c.d. l 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ń. l Zaprojektuj system szeregujący, który zapewni, że procesy będą uruchamiane w chwili wystarczającej do spełnienia ograniczeń czasowych. l Zintegruj system pod kontrolą modułu wykonawczego.

15 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 15 Uwagi dot. ograniczeń czasowych i projektowania obiektowego l 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. l 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.

16 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 16 Wykorzystanie modelu maszyny stanowej l W modelu stanowym systemu zakłada się, że w każdej chwili system jest w jednym z wielu swoich stanów. l Po wystąpieniu bodźca może nastąpić przejście do innego stanu. l 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).

17 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 17 Model maszyny stanowej kuchenki mikrofalowej Oczekiwanie do: wyświetlaj godzinę Działanie do: podgrzewanie Pełna moc do: ustaw moc = 600 Oczekiwanie do: wyświetlaj godzinę Połowa mocy do: ustaw moc = 300 Ustawienie czasu do: odczytaj liczbę exit: ustaw czas Niegotowy do: wyświetlaj „Czekam” Gotowy do: wyświetlaj „Gotowy” Pełna moc Połowa mocy Połowa mocy Pełna moc Stoper Liczba Otworzono drzwiczki Stoper Zamknięto drzwiczki PoczątekZatrzymaj Otworzono drzwiczki

18 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 18 Programowanie czasu rzeczywistego l Język programowania użyty do implementacji systemu czasu rzeczywistego również może mieć wpływ na projekt. l Wymagające systemy czasu rzeczywistego wciąż często programuje się w asemblerze, aby sprostać limitom czasowym. l Można skorzystać także z języków programowania systemowego takich jak C, które dają efektywny kod. l 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.

19 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 19 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.

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

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

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

23 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 23 Systemy zapewniające ciągłą obsługę l Systemy zapewniające ciągłą obsługę (np. telekomunikacja, monitoring) mogą posiadać pewne udogodnienia modułu wykonawczego. l 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. l Menedżer awarii. Odpowiada za wykrywania awarii sprzętu i oprogramowania oraz podjęcie odpowiednich działań zmierzających do odtworzenia stanu po awariach.

24 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 24 Poziom priorytetu i obsługa sytuacji wyjątkowych l Bodźce przetwarzane przez systemy czasu rzeczywistego mają zwykle różne poziomy priorytetu. l 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.

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

26 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 26 Procesy okresowe l Procesy okresowe to procesy, które muszą być wykonywane w ustalonych odstępach czasu w celu pobrania danych i sterowania efektorami. l Moduł wykonawczy korzysta ze swojego zegara czasu rzeczywistego, aby określić, kiedy proces ma być wykonywany. l W większości systemów czasu rzeczywistego występuje kilka klas procesów okresowych. l 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). l Moduł wykonawczy musi wybrać odpowiedni proces do wykonania w każdej chwili.

27 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 27 Zarządzanie procesami l 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. l Menedżer procesów musi wybrać proces do wykonania, przydzielić dla niego pamięć i zasoby procesora oraz rozpocząć jego wykonywanie na procesorze.

28 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 28 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

29 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 29 Moduł szeregujący l Przegląda listę procesów okresowych i wybiera proces do wykonania. l Wybór zależy od priorytetu, okresu, oczekiwanego czasu wykonania i limitu poszczególnych procesów gotowych. l Czasem po jednym tyknięciu zegara trzeba wykonać dwa procesy z różnymi limitami czasowymi. l 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.

30 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 30 Strategie szeregowania l 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. l Szeregowanie z wywłaszczeniem. Działanie procesu może być przerwane, jeśli trzeba obsłużyć proces o wyższym priorytecie.

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

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

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

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

35 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 35 Dwie klasy bodźców l 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. l 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.

36 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 36 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 od alarmu wywołanego przez detektor 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

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

38 Building_monitor process 1

39 Building_monitor process 2

40 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 40 Przykład systemu sterowania l 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. l Przykładem systemu sterowania jest system sterowania ogrzewaniem w budynku. l 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.

41 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 41 Architektura procesowa systemu sterowania temperaturą Proces sterowania piecem Proces sterowania grzejnikiem Proces termostatu Proces detektora Proces termostatu 500 Hz Stan detektora Polecenie przełączenia Numer pokoju

42 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 42 Systemy gromadzenia danych l Systemy gromadzenia danych stanowią kolejną klasę systemów czasu rzeczywistego, mających zwykle uniwersalny model architektoniczny. l Takie systemy zbierają od detektorów dane do późniejszego przetwarzania i analizy.

43 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 43 System zbierający dane od detektorów monitorujących promieniowanie neutronowe w reaktorze atomowym l Dane z detektorów są umieszczane w buforze; następnie są z niego pobierane i przetwarzane. l W rezultacie na ekranie operatora jest wyświetlane średnie natężenie promieniowania. l Każdy detektor ma swój proces, który zmienia dane analogowe o natężeniu promieniowania neutronowego na sygnał cyfrowy. l Następnie przekazuje to natężenie promieniowania oraz swój identyfikator do bufora danych. l 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.

44 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 44 Architektura systemu monitorującego promieniowanie Detektory (każdy przepływ danych to stan detektora) Proces detektora Przetwarzanie danych Wyświetlacz Bufor z danymi z detektorów Identyfikator i stan detektora Wyznaczone natężenie promieniowania

45 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 45 Wzajemne wykluczanie l 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. l W większości systemów gromadzenia danych neutralizacja tych różnic szybkości polega na zastosowaniu bufora cyklicznego. l 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. l 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.

46 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 46 Bufor cykliczny do gromadzenia danych Proces producenta Proces producenta Proces konsumenta Proces konsumenta

47 Implementacja bufora cyklicznego w Javie

48 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

49 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 49 Główne tezy l 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. l 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. l Projektowanie architektoniczne systemu czasu rzeczywistego polega zwykle na nadaniu systemowi struktury zbioru oddziałujących na siebie procesów współbieżnych. l 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.

50 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 50 Główne tezy l 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. l 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. l 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.


Pobierz ppt "©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 13Slide 1 Projektowanie oprogramowania czasu rzeczywistego l Przedstawienie metod używanych do."

Podobne prezentacje


Reklamy Google