siagi.docx

(25 KB) Pobierz

System czasu rzeczywistego jest to system komputerowy, w którym obliczenia są wykonywane

współbieżnie z procesem zewnętrznym w celu sterowania, nadzorowania lub terminowego reagowania

na zdarzenia występujące w tym procesie

Cechy systemu czasu rzeczywistego:

1. Ciągłość´ działania. System czasu rzeczywistego powinien działać´ nieprzerwanie w okresie od

uruchomienia systemu do jego wycofania.

2. Zależność od otoczenia. System czasu rzeczywistego rozpatruje sie w kontekście otoczenia.

Obliczenia dla takiego systemu uzależnione sa˛od zdarzeń´ oraz danych generowanych przez proces

zewnętrzny (otoczenie).

3. Współbieżność´. System czasu rzeczywistego składa sie z szeregu procesów, które wymagają

jednoczesnej obsługi narzucając współbieżną strukturę sytemu.

4. Przewidywalność´. Wszelkie zdarzenia i dane generowane przez otoczenie pojawiają w sposób

przypadkowy, a współbieżne pojawienie sie zdarzeń wymaga jednoczesnej ich obsługi. Na zewnątrz system musi zachowywać´ się deterministycznie.

5. Punktualność. Reakcje systemu na zdarzenia powinny być dostarczane w odpowiednich momentach

czasowych.

 

Klasy systemu czasu rzeczywistego

1. Systemy o ostrych wymaganiach czasowych (ang. hard real–time), gdzie wymagania czasowe

musza byc dokładnie spełnione, przekroczenie ograniczen czasowych moze prowadzic do katastrofy

systemu, np. sterowanie samolotem przez system fly–by–wire

2. Systemy o słabych wymaganiach czasowych (ang. soft real–time), gdzie żąda sie spełnienia

sredniego czasu odpowiedzi. Opóznienie nie powoduje katastrofy systemu, a jedynie wpływa

niekorzystnie na ocene np. system rezerwacji miejsc lotniczych.

3. Systemy o solidnych wymaganiach czasowych (ang. firm real-time), wymagania czasowe sa tu

kombinacją ograniczen dla systemów o wymaganiach ostrych i słabych. Przekroczenia ograniczen

czasowych mogą  pojawiac sie okazjonalnie. Wyróznia sie dwa poziomy waznosci wartosci ograniczen

czasowych jeden krótszy majacy charakter „słaby", i dłuzszy majacy charakter „ostry”.

 

Historia jezyka Ada

— koniec lat 70-tych XX wieku — sformułowano (Departament Obrony Stanów Zjednoczonych)

wymagania dla nowego jezyka i w drodze konkursu wyłoniono jeden jezyk programowania; konkurs

wygrał zespół francuskich informatyków, który opracował jezyk o nazwie Ada; zespołowi

przewodniczył Jean Ichbah, znany teoretyk informatyki,

— 1983 — pierwsza standardowa wersja Ady nazwana Ada 83, której specyfikacja została przyjeta

jako norma ANSII w roku 1983,

— 1987 — Ada 83 jako norma miedzynarodowa ISO,

— 1988 — koncepcja okreslenia nowej wersji Ady oznaczonej wtedy jako Ada 9X,

— 1995 — opublikowaniem nowej normy Ada 95,

— 2005 — nowa norma Ada 2005.

 

Przykłady zastosowan jezyka Ada 95

— sterowanie szybkiej kolei francuskiej (TGV),

— sterowanie metrem w Paryzu i w innych miastach,

— sterowanie wybranych układów w samolocie Boeing 777,

— system GPS – oprogramowanie satelitów i odbiorników naziemnych,

— systemy wojskowe, w tym rakietowe,

— systemy kontroli i sterowania transportu drogowego i kolejowego,

— systemy medyczne,

— sterowanie elektrowniami atomowymi

 

Cechy jezyka Ada 95

— uniwersalny jezyk programowania ukierunkowany na programowanie systemów czasu rzeczywistego

— wysoki stopien standaryzacji, zgodnosc z norma ISO 8652:1995

scisła typizacja jezyka umozliwia wykrycie przez kompilator duzej klasy błedów w oprogramowaniu

duza czytelnosc kodu,

— udogodnienia dla pracy grupowej,

łatwosc konserwacji oprogramowania w ciagu całego zycia programu (czasami kilkadziesiat lat),

wielouzywalnosc kodu (ang. reuse) daja˛ca moz˙liwos´c´ wielokrotnego wykorzystania wczesniej

napisanego kodu,

— mechanizmy programowania obiektowego,

— interfejs do innych jezyków programowania w standardzie,

łatwosc realizacji oprogramowania współbieznego dzi˛eki zawarciu konstrukcji współbieznych w

składni jezyka,

— wbudowana obsługa czasu,

— obsługa wyjatków,

mozliwosc zastosowania jako jezyka projektowania i do zapisu algorytmów,

jezyk podatny na zastosowanie róznych metod analizy oprogramowania.

Ada 95 – jako język obiektowo zorientowany

1. umozliwia deklarowanie typów obiektów

2. umozliwia deklarowanie operacji na obiektach

3. umozliwia enkapsulacje (hermetyzacje) obiektu i jego operacji

4. udostepnia mechanizm dziedziczenia

5. udostepnia mechanizm polimorfizmu statycznego i dynamicznego

Agregat wyrazenie reprezentujace wartosci typów złozonych.

Atrybut

Funkcja wyznaczajaca pierwotna˛własnosc nazwanego bytu np. typu, zmiennej, to atrybut.

np.

Zmienna’Address— zwraca adres zmiennej

Integer’Image(Zmienna)— zwraca obraz (String) danej zmiennej

Zmienna’Imgj.w. ale dost˛epna tylko w GNAT’cie

Character’Pos(Znak)— zwraca kod znaku

Character’Val(Kod_Znaku)— zwraca znak o danym kodzie

TekstoweWe/Wy— pliki

with Ada.Text_IO;

use Ada.Text_IO;

Plik: File_Type;

Open(Plik, In_File,”Nazwa_Pliku.TXT”);

lub

Create(Plik, Out_File,”Nazwa_Pliku.TXT”);

Get(Plik,);

Get_Line(Plik,);

Put(Plik,);

Put_Line(Plik,);

New_Line(Plik);

Close(Plik);

Wyjatki

Wyjatki słuza˛ do sygnalizacji zdarzen awaryjnych zgłaszanych przez program.

Dzieki obsłudze wyjatków można zapewnić´ nieprzerwane działanie systemu.

Podział wyjątków:

wyjątki predefiniowane – udostępnia jezyk w swoich pakietach,

np. Constraint_Error, Name_Error, Tasking_Error,

wyja˛tki uz˙ytkownika – zadeklarowane przez programkiste˛.

Nazwa_Wyjatku {, Nazwa_Wyj atku} : exception;

Wyjatki zgłaszane przez instrukcję:

raise [Nazwa_Wyjatku];

Obsługa wyjątków

exception Segment_Obsługi_Wyj ˛ atków

{,Segment_Obsługi_Wyjatków}

Segment_Obsługi_Wyjatków:

when Nazwa_Wyj ˛ atku

{ | Nazwa_Wyj ˛ atku} => Instrukcje

| when others => Instrukcje

 

Współbieznosc

Współbieżność dotyczy procesów.

Procesy sa˛ od siebie uzależnione.

Dwa procesy sa˛ współbieżne, jeżeli jeden z nich rozpoczyna się przed zakończeniem drugiego.

Współbieżność – wirtualna równoległość.

Realizacja współbieżności na jednym procesorze wymaga przeplotu.

Programowanie współbieżne – notacja i techniki programowania umożliwiające specyfikację współbieżności z uwzględnieniem synchronizacji i komunikacji procesów.

 

Stany procesu

Obsługą procesów zajmuje sie˛ program szeregującycześć´ systemu operacyjnego.

Stany procesu (podstawowe):

— gotowy – czeka na przydział procesora,

— aktywny – wykonywany przez procesor,

— zawieszony – oczekuje na spełnienie swoich żądań´.

 

Zakończenie zadania

— wykonanie całego ciągu instrukcji zadania – osiągniecie instrukcji end,

— zgłoszenie nieobsłużonego wyjątku,

— wykonanie instrukcji terminate,

— wykonanie na tym zadaniu instrukcji abort.

 

Semafor – zmienna całkowita przyjmująca jedynie wartości nieujemne np. S.

Semafor powinien mieć´ nadaną wartość´ początkową.

Operacje semaforowe – operacje zdefiniowane na semaforze, P(S) i V(S).

P(S) lub Czekaj(S):

if S>0 then S:=S-1 else Zawie´s_Zadanie;

V(S) lub Sygnalizuj(S):

...

Zgłoś jeśli naruszono regulamin