1 / 44

Projektowanie oprogramowania czasu rzeczywistego

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 .

dasha
Download Presentation

Projektowanie oprogramowania czasu rzeczywistego

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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.

  2. 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.

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

  4. 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.

  5. 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.

  6. 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.

  7. 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.

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

  9. 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.

  10. Procesy sterujące detektorami i efektorami Detektor Efektor Reakcja Bodziec Sterowanie detektorem Procesor danych Sterowanie efektorem

  11. 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.

  12. 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.

  13. 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.

  14. 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.

  15. Wykorzystanie modelumaszyny 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).

  16. Model maszyny stanowej kuchenki mikrofalowej Pełna moc Pełna moc do: ustaw moc = 600 Działanie do: podgrzewanie Liczba Stoper 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

  17. 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.

  18. 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.

  19. 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

  20. 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.

  21. Informacje o szeregowaniu Rys. Komponenty modułu wykonawczego systemu czasu rzeczywistego 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

  22. 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.

  23. 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.

  24. 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.

  25. 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.

  26. 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

  27. 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.

  28. 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.

  29. 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.

  30. 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.

  31. 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ę.

  32. 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.

  33. 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.

  34. 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

  35. 400 Hz 60 Hz 100 Hz Rys. Architektura procesowa systemu antywłamaniowego 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

  36. 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.

  37. 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

  38. 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.

  39. 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.

  40. 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

  41. 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.

  42. Bufor cykliczny do gromadzenia danych Proces producenta Proces konsumenta

  43. 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.

  44. 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.

More Related