Systemy czasu rzeczywistego Podstawowe pojęcia, cykl tworzenia oprogramowania W uproszczeniu system czasu rzeczywistego jest określany jako system komputerowy,

Slides:



Advertisements
Podobne prezentacje
TRADYCYJNE METODY PLANOWANIA I ORGANIZACJI PROCESÓW PRODUKCYJNYCH
Advertisements

ANALIZA SIECIOWA PRZEDSIĘWZIĘĆ konstrukcja harmonogramu
Związki w UML.
Analiza współzależności zjawisk
Podstawowe pojęcia programowania współbieżnego
Projektowanie aplikacji równoległych Jarosław Kuchta.
Projektowanie w cyklu życia oprogramowania
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania
Nowoczesne narzędzia wykorzystywane w cyklu polityk publicznych
Złożoność procesu konstrukcji oprogramowania wymusza podział na etapy.
Formalizacja i uwiarygodnianie Iteracyjny proces syntezy modeli
Badania operacyjne. Wykład 1
Wykład no 11.
Procesy poznawcze cd Uwaga.
SPRAWNOŚĆ SEKTORA PUBLICZNEGO WYKŁAD IV
Jakość sieci geodezyjnych. Pomiary wykonane z największą starannością, nie dostarczają nam prawdziwej wartości mierzonej wielkości, lecz są zwykle obarczone.
Systemy operacyjne.
Jakość systemów informacyjnych (aspekt eksploatacyjny)
Budowa systemów operacyjnych czasu rzeczywistego
Projektowanie i programowanie obiektowe II - Wykład IV
Problem rozbieżności czasów jednym z wielu problemów pojawiających się w systemach rozproszonych jest rozbieżność wartości zegarów na poszczególnych węzłach-maszynach.
Programowanie współbieżne
PROF. DOMINIK SANKOWSKI
Dalsze elementy metodologii projektowania. Naszym celem jest...
Wykład 2 Cykl życia systemu informacyjnego
Promotor: Dr inż. Grzegorz Wróbel
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ć.
Podstawy programowania
Podstawy programowania II
Układy sekwencyjne pojęcia podstawowe.
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Elementy Rachunku Prawdopodobieństwa i Statystyki
Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 4.
Prezentacja i szkolenie
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
EXCEL Wykład 4.
Podsumowanie metodologii OMT
SW – Algorytmy sterowania
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
Modelowanie obiektowe Diagramy czynności
Dr Karolina Muszyńska Na podst.:
Modelowanie obiektowe Diagramy UML – diagram przypadków użycia
Modelowanie obiektowe Diagramy sekwencji
Spis treści W świecie algortmów -Budowa algorytmu
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Algorytmika.
Temat 3: Integralność danych. Integralność danych, określana również mianem spójności danych, jest to funkcja SZBD, która gwarantuje, że dane nie zostaną.
Model obiektowy bazy danych
PROCESY W SYSTEMACH SYSTEMY I PROCESY.
Diagram aktywności (czynności)
Walidacja danych alina suchomska.
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.
EXCEL Wstęp do lab. 4. Szukaj wyniku Prosta procedura iteracyjnego znajdowania niewiadomej spełniającej warunek będący jej funkcją Metoda: –Wstążka Dane:
Podstawy języka skryptów
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.
Eksploatacja zasobów informatycznych przedsiębiorstwa.
Ergonomia procesów informacyjnych
Podstawy automatyki I Wykład 1b /2016
Zarządzanie projektami
Etapy procesu sterowania rozmytego
Temat: Tworzenie bazy danych
Inżynieria systemów informacyjnych
Telekomunikacja Bezprzewodowa (ćwiczenia - zajęcia 10,11)
Efektywność algorytmów
Zarządzanie projektami
Selekcja danych Korelacja.
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Systemy czasu rzeczywistego Podstawowe pojęcia, cykl tworzenia oprogramowania W uproszczeniu system czasu rzeczywistego jest określany jako system komputerowy, którego wyniki zależą nie tylko od danych generowanych przez otoczenie, lecz również uzależnione są od upływu czasu. Analizując dowolny system czasu rzeczywistego należy uwzględnić więc następujące elementy: otoczenie generujące i przyjmujące dane/sygnały z systemu, system komputerowy oraz czas.

System czasu rzeczywistego i jego otoczenie System czasu rzeczywistego będzie analizowany i opisywany w kontekście dwóch współdziałających procesów (rysunek): otoczenie i system komputerowy, przy czym działanie tego ostatniego jest dodatkowo uzależnione od czasu. System czasu rzeczywistego i jego otoczenie e1 e2 s1 s2 otoczenie system

Przykłady dotyczą systemów czasu rzeczywistego, pracujących w (fizycznym) otoczeniu, które zmienia się autonomicznie w miarę upływu czasu. Wynika stąd podstawowa cecha systemów czasu rzeczywistego, tzn. reagowalność. Jest to wymaganie właściwego reagowania na zdarzenia zachodzące w otoczeniu, nawet w przypadkach, gdy w systemie pojawiły się błędy. Np. jeśli w wyniku awarii edytora tekstu może nastąpić utrata pliku lub jego kopii, skutki te chociaż dokuczliwe nie są jednak niebezpieczne. Jeżeli błąd nastąpi jednak np. w systemie automatycznego pilota, i wystąpi brak właściwego sterowania skutki mogą być tragiczne ponieważ działanie pole grawitacyjne nie może być ekranowane (zawieszone)

Stąd też nawet w wypadku wystąpienia błędów, ich usunięcie i prawidłowa reakcja na ewolucję świata zewnętrznego (otoczenia) musi być zrealizowana w czasie mniejszym niż maksymalny określony w wymaganiach. Nie jest bowiem możliwe zawieszenie procesu zachodzącego w otoczeniu na czas wykrycia błędu i dostarczenia nowej wersji oprogramowania. W związku z powyższym nie można pozwolić sobie na rozwijanie tych systemów „domowy sposobem” tzn. rozpoczęcie tworzenia od pierwszej wersji i następnie przeprowadzanie analizy i poprawiania, gdyż takie postępowanie z uwagi na brak możliwości usystematyzowania może (z dużym prawdopodobieństwem) zakończyć się niepowodzeniem.

Poniżej podana jest definicja systemu czasu rzeczywistego (zgodnie z IEEE/ANSI) oraz jego podstawowe cechy. System czasu rzeczywistego jest to system komputerowy, w którym obliczenia są wykonywane współbieżnie z procesem zewnętrznym (otoczenie) w celu sterowania, nadzorowania lub terminowego reagowania na zdarzenia występujące w tym procesie (otoczeniu)

Powyższa definicja stanowi podsumowanie wcześniejszych rozważań Powyższa definicja stanowi podsumowanie wcześniejszych rozważań. Można zauważyć że wyodrębniono w niej dwa niezależne procesy: a.) wyznaczony przez obliczenia realizowane w systemie komputerowym b.) zachodzący w otoczeniu, które dostarcza temu pierwszemu informacji wejściowych (zdarzenia) i jest obszarem, gdzie kierowane są wyniki obliczeń (reakcje na zdarzenia)

Ogólna definicja systemu czasu rzeczywistego jest uzupełniona przez sformułowanie wymagań, które określają pożądane cechy tych systemów. Wyróżnić można pięć cech charakterystycznych. 1. Ciągłość działania. SCR powinien pracować bez przerw. W okresie od uruchomienia systemu, do czasu jego wycofania, system powinien działać nieprzerwanie. Stąd obliczenia tego procesu są nieskończone i trudno w nich wyodrębnić stan początkowy. Istotną rolę pełnią natomiast stany oczekiwania na wystąpienie zdarzeń. Cechy te istotnie zmieniają podejście do analizy poprawności.

2. Zależność od otoczenia 2. Zależność od otoczenia. SCR musi być rozpatrywany w kontekście otoczenia. Oznacza to, że obliczenia tego systemu są uzależnione od zdarzeń i danych generowanych przez proces zewnętrzny (otoczenie). Struktura otoczenia jest zazwyczaj skomplikowana, lecz przeważnie statyczna, co istotnie ogranicza konieczność stosowania struktur dynamicznych, co ułatwia analizę systemu. 3. Współbieżność. Otoczenie systemu składa się z wielu obiektów (podsystemów), które działają współbieżnie, generując odpowiednie zdarzenia lub dane wymagające obsługi przez SCR. Wymagania jednoczesnej obsługi narzucają współbieżność systemu. System składa się z szeregu procesów współbieżnych, które dostarczają usług.

4. Przewidywalność. Zdarzenia i dane generowane przez otoczenie pojawiają się zazwyczaj w momentach przypadkowych, a współbieżne wystąpienie zdarzeń może wymagać ich jednoczesnej obsługi, co w sytuacji ograniczonych zasobów prowadzi do współzawodnictwa o uzyskanie dostępu. Stąd system, mimo że złożony jest zazwyczaj z szeregu procesów współbieżnych (struktura wewnętrzna), na zewnątrz musi zachowywać się deterministycznie, tzn. reagować na zdarzenia wg. założonych wymagań.

5. Punktualność. Odpowiedzi systemu (reakcje na zdarzenia) winny być obliczane zgodnie z zaprojektowanymi algorytmami i dostarczane do otoczenia w odpowiednich momentach czasowych. Natura otoczenia, tzn. brak możliwości zatrzymania procesu zewnętrznego stawia dodatkowe wymagania, by oprócz poprawności uzyskanych wyników, moment ich przekazania do otoczenia spełniał określone wymagania. Wyniki dostarczone zbyt późno (niekiedy również wcześnie) mogą prowadzić do niepoprawnego działania, lub być nawet przyczyną upadku systemu.

System, czas, proces, obliczenie Systemem nazywamy zorganizowany zbiór obiektów (podsystemów), które są od siebie zależne i stanowią pewną częściowo zamkniętą (względem relacji zależności) jednostkę. Pierwsza część definicji określa system jako pewien zbiór obiektów (nie jest to więc monolityczny pojedynczy obiekt), które to obiekty są powiązane (sprzężone) przez pewne relacje zdefiniowane między nimi. W drugiej powiedziano, że system jest (częściowo) zamknięty względem relacji zależności. Oznacza to, że obiekty składowe systemu nie są dobrane przypadkowo, lecz tworzą pewną całość, w której połączenia wewnętrzne są dobrze zdefiniowane i mogą być niewidoczne na zewnątrz

System jest więc zamknięty w swoich granicach, a stopień jego „otwartości” jest uzależniony przez relacje zależności z innymi systemami. Czas jest opisywany jako niezależny i nieskończony proces generujący stany (momenty czasowe) w porządku liniowym w ten sposób, że zachowany jest warunek ciągłości. Należy również wspomnieć o zakresie czasu, tzn., czas może dotyczyć całego systemu (dokładniej systemu i otoczenia), jak również pewnych jego podsystemów. Odpowiada to pojęciom czasu globalnego i czasów lokalnych. Czas globalny jest niejednokrotnie modelowany (z różną dokładnością) przez zegary lokalne (umieszczone w podsystemach).

Terminowe reagowanie jest jednym z ważniejszych wymagań stawianych systemom czasu rzeczywistego. Z punktu widzenia dokładności spełniania wymagań czasu reakcji systemu wyróżnia się trzy klasy systemów czasu rzeczywistego: 1. Systemy o twardych wymaganiach czasowych (Hard Real-Time Systems) – wymagania czasowe muszą być dokładnie spełnione, przy czym warunek ich spełnienia może być wyrażany jako opracowanie i wysłanie odpowiedzi przed upływem określonego czasu (czas reakcji) lub też bardziej rygorystycznie: odpowiedź systemu winna być przesłana do otoczenia dokładnie w danym momencie czasowym. Ta ostatnia sytuacja może wystąpić, gdy konieczna jest ściśle synchroniczna współpraca z otoczeniem, przykład: rozrusznik serca.

2. Systemy o miękkich wymaganiach czasowych (Soft Real-Time Systems) – dla tych systemów żąda się spełnienia średniego czasu odpowiedzi. Zbyt późne dostarczenie odpowiedzi nie powoduje tutaj katastrofy systemu, choć większe opóźnienia wpływają niekorzystnie na jego ocenę. Istotną klasę stanowią tu systemy interakcji z użytkownikiem, np. System rezerwacji miejsc lotniczych.

3. Systemy o solidnych wymaganiach czasowych (Firm Real-Time Systems) – wymagania czasowe są tu kombinacją twardych i miękkich. W rzeczywistości definiuje się pewien krótszy czas reakcji, który winien być „miękko” spełniany oraz dłuższy, wobec którego żąda się „twardego” dotrzymania. Wydaje się, że tego typu wymagania lepiej obrazują żądania „miękkiego” spełnienia, gdyż wiele wymagań „miękkich” ma właściwie taką „solidną” naturę.

Proces jest kolejnym podstawowym pojęciem Proces jest kolejnym podstawowym pojęciem.W dużym uproszczeniu proces jest pewnym opisem zachowania (dynamiki) charakteryzujący się się zbiorem stanów i pewną relacją (funkcją) określającą następstwo stanów.

Etapy tworzenia oprogramowania Złożoność procesu konstrukcji oprogramowania wymusza podział na etapy. Konstrukcja SCR jest zazwyczaj zagadnieniem skomplikowanym i z tego powodu nie jest możliwe podanie metod pozwalających na automatyczne tworzenie systemu. Z drugiej strony ogólnie znaną tendencją jest podział skomplikowanego procesu na mniejsze etapy (precyzyjnie określone), aby ułatwić rozwiązanie zadania. Podział procesu na etapy jest korzystny z następujących względów: - ułatwia rozwiązanie problemu – poszczególne etapy mają mniejszy zakres i są mniej skomplikowane, stąd łatwiejsze do wykonania, w tym przypadku zakres etapów powinien być precyzyjnie określony.

Umożliwia lepsze zarządzanie czasem wykonania, gdyż na końcu każdego etapu konstruktor może określić, jaka część zadania została wykonana; Ułatwia kontrolę jakości, gdyż na końcu każdego etapu może być wykonana odpowiednia analiza i kontrola;

problem Analiza wymagań specyfikacja projektowanie programowanie rozwiązanie metoda Dekompozycja na etapy podczas tworzenia oprogramowania