kategorie systemów czasu rzeczywistego

119
Kategorie systemów czasu rzeczywistego 1. Obliczeniowe system y kom puterowe: przetwarzanie w ielozadaniow e irozproszone. 2. Systemy sterowania przem ys łowego i system y dow odzenia: sterow anie procesem technologicznym , procesem w ytw arzania,kontrola ruchu lotniczego. 3. Wielododost ępne systemy komercyjne i biurowe: system y bankow e,rezerw acjim iejsc lotniczych.

Upload: carlyn

Post on 12-Jan-2016

53 views

Category:

Documents


1 download

DESCRIPTION

Kategorie systemów czasu rzeczywistego. Podstawowe definicje. Podstawowe definicje. Standard IEEE / ANSI. KOMPUTER. System Czasu Rzeczywistego. Sensory. Otoczenie. Sterowniki. Kategorie SCR. Kategorie SCR. Kategorie SCR. Cechy SCR. Problematyka SCR. Strategia PUSH. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Kategorie systemów czasu rzeczywistego

Kategorie systemów czasu rzeczywistego

1. Obliczeniowe systemy komputerowe: przetwarzaniewielozadaniowe i rozproszone.

2. Systemy sterowania przemysłowego i systemydowodzenia: sterowanie procesem technologicznym,procesem wytwarzania, kontrola ruchu lotniczego.

3. Wielododostępne systemy komercyjne i biurowe:systemy bankowe, rezerwacji miejsc lotniczych.

Page 2: Kategorie systemów czasu rzeczywistego

Podstawowe definicje

1. System czasu rzeczywistego (SCR) - systemkomputerowy, w którym obsługiwanie zdarzeńdokonuje się w ustalonych limitach czasu.

2. SCR – system komputerowy, w którym poprawnośćobliczeń zależy nie tylko od logicznej ich poprawności,ale także od czasu w jakim zostanie wyprodukowanywynik.

Page 3: Kategorie systemów czasu rzeczywistego

Podstawowe definicje

3. SCR - system interaktywny, który utrzymuje ciągłyzwiązek z asynchronicznym środowiskiem.

4. SCR odpowiada w sposób przewidywalny (wokreślonym czasie) na zdarzenia napływające w sposóbnieprzewidywalny.

System komputerowy działa w czasie rzeczywistym, jeżeliwypracowane decyzje są realizowane w tempieobsługiwanego procesu.

Page 4: Kategorie systemów czasu rzeczywistego

Standard IEEE / ANSI

System czasu rzeczywistego - system komputerowy, wktórym obliczenia są wykonywane współbieżnie zprocesem zewnętrznym (otoczeniu) w celu sterowania,nadzorowania lub terminowego reagowania na zdarzeniawystępujące w tym procesie.

IEEE - Institute of Electrical and Electronic Engineers,ANSI – American National Standards Institute

Page 5: Kategorie systemów czasu rzeczywistego

System Czasu Rzeczywistego

Sensory

Sterowniki

Otoczenie

KOMPUTER

Page 6: Kategorie systemów czasu rzeczywistego

Kategorie SCR

I. SCR o mocnych wymaganiach czasowych(hard real-time system)

II. SCR o słabych wymaganiach czasowych(soft real-time system)

III. SCR o solidnych wymaganiach czasowych( firm real-time system)

Page 7: Kategorie systemów czasu rzeczywistego

Kategorie SCR

1. System wbudowany (embedded system)

2. System odporny na błędy ( fault tolerant system)

3. System dedykowany (dedicated system)

Page 8: Kategorie systemów czasu rzeczywistego

Kategorie SCR

System wbudowany - system komputerowy, który jestumieszczony w innym systemie stanowiąc jego integralnączęść.

System odporny na błędy - system reagujący na sytuacjewyjątkowe, kontynuuje pracę stosując zamiennikiuszkodzonych elementów lub zmniejszając swoją pierwotnąfunkcjonalność.

System dedykowany - system o jednostkowej funkcjona-lności, zaprojektowany z myślą o ściśle określonymspecjalizowanym zastosowaniu.

Page 9: Kategorie systemów czasu rzeczywistego

Cechy SCR

1. Współbieżność ( concurrent),

2. Punktualność ( punctuality),

3. Przewidywalność ( predictability),

4. Ciągłość działania ( continuity).

5. Nieprzekraczalność terminu ( deadline).

Page 10: Kategorie systemów czasu rzeczywistego

Problematyka SCR

1. Metody formalne w inżynierii SCR

2. Metody analizy i specyfikacji wymagań

3. Metodyka projektowania oprogramowania SCR

4. Systemy operacyjne czasu rzeczywistego

5. Problemy jakości i bezpieczeństwa SCR

Page 11: Kategorie systemów czasu rzeczywistego

Strategia PUSH

JEDNOSTKA PLANUJĄCO - STERUJĄCA

M M MM

Materiały Sterowanie Informacje

Page 12: Kategorie systemów czasu rzeczywistego

Strategia PUSH

Systemy sterowania oparte na strategii PUSH sąsystemami scentralizowanymi ze zwrotnym sprzęże-niem informacyjnym.

Systemy te mogą być modelowane i analizowane wkategoriach klasycznej teorii szeregowania i rozdziałuzasobów.

Page 13: Kategorie systemów czasu rzeczywistego

Strategia SQUEEZE

JEDNOSTKA PLANUJĄCO - STERUJĄCA

M B MM

Materiały Sterowanie Informacje

Page 14: Kategorie systemów czasu rzeczywistego

Strategia SQUEEZE

Wydajność systemu wytwórczego jest ograniczonaprzepustowością wąskiego gardła - zestawu stanowiskwytwórczych, przez które produkcja się przeciska(squeeze), powodując kolejki zadań.

Strategia squeeze ustala optymalny harmonogram pracystanowisk „wąskiego gardła”, dostosowując harmono-gram pracy pozostałych stanowisk.

Page 15: Kategorie systemów czasu rzeczywistego

Strategia PULL

JEDNOSTKA PLANUJĄCO - STERUJĄCA

M M MM

Materiały Sterowanie Ssanie

Page 16: Kategorie systemów czasu rzeczywistego

Systemy JIT

Zasada wytwarzania na żądanie JIT (Just-In-Time) opartana koncepcji dostarczania wyrobów w potrzebnychilościach dokładnie na wyznaczony czas.

Efektywność strategii JIT :

1. minimalizacja kosztów wytwarzania przez ograniczeniezapasów i powierzchni magazynowych (Zero Inwentory,No- store),

2. optymalizacja środków zaangażowanych w produkcjęw toku (Work in Process),

3. brak czekania (No-wait),

4. przepływ zamówień wg techniki Kanban.

Page 17: Kategorie systemów czasu rzeczywistego

Notacja (trójpolowa)

- opisuje typ systemu i środowisko maszynowe,

- charakteryzuje zadania, dodatkowe zasoby i ogranicze-nia,

- kryterium optymalizacji (wskaźnik jakości sterowania).

Page 18: Kategorie systemów czasu rzeczywistego

= 1 2

1 { PF, F, O, J } { P, G}

2 - parametr określający liczbę maszyn, procesorów.

Page 19: Kategorie systemów czasu rzeczywistego

= 1, 2, 3, 4, 5

1 {, prm}

1 = - zadania niepodzielne (nonpreemptive),

1 = prm – zadania podzielne (preemptive),

4 {rj, }

4 = rj - czas dostępności j-tego zadania ( release).

Page 20: Kategorie systemów czasu rzeczywistego

Dodatkowe zasoby (discretely-additional resources)

2 {, res }

2 = - brak dodatkowych zasobów,

2 = res - dodatkowe zasoby (liczba rodzajów

dodatkowych zasobów, ograniczenia zasobowe,żądania zasobowe).

{ , k}

Page 21: Kategorie systemów czasu rzeczywistego

= k

- k rodzajów dodatkowych zasobów,- k jednostek każdego rodzaju,- żądania zasobowe każdego zadania nie przekraczają

k jednostek każdego zasobu.

=

Liczba rodzajów zasobów, ograniczenia oraz żądaniazasobowe są dowolne.

Page 22: Kategorie systemów czasu rzeczywistego

Wymagania kolejnościowe zadań.

3 {, prec, tree, chain }

prec – dowolny graftree – drzewo (in-tree, out-tree)chain - łańcuch

in–tree out–tree

Page 23: Kategorie systemów czasu rzeczywistego

Parametry zadania

Si – termin rozpoczęcia wykonywania zadania,

Ci – termin zakończenia wykonywania zadania ( completiontime),

pj – czas wykonywania zadania (processing time),

ri – najwcześniejszy możliwy termin rozpoczęcia wykonywaniazadania (release time),

di - żądany termin zakończenia wykonywania zadania (duedate, deadline).

Page 24: Kategorie systemów czasu rzeczywistego

Parametry zadania

Li = Ci – di – opóźnienie zadania ( Lateness),

Ti = max[0, Ci – di] – spóźnienie zadania (Tardiness),

Ei = max[0, ri – Si] – przyspieszenie zadania (Earliness).

Page 25: Kategorie systemów czasu rzeczywistego

Kryteria optymalizacji

1. Długość uszeregowania (maksymalny czas wykonania zbioruzadań), ( maximum completion time, makespan)

Cmax = max j=1,...,n {Cj}

2. całkowity (łączny) czas zakończenia zadań:

C = j=1,...,n Cj

3. Średni czas przepływu

F = 1/n j=1,...,n Fj

gdzie: Fj = Cj – rj

Page 26: Kategorie systemów czasu rzeczywistego

Kryteria optymalizacji

4. Maksymalne opóźnienie

Lmax = m a x j=1,...,n {Lj}

5. Maksymalne spóźnienie

Tmax = max j=1,...,n {Tj},

6. Całkowite spóźnienie

T = j=1,...,n Tj,

7. Ważone spoźnienie poprzez wprowadzenie wag dla zadań

wT = j=1,...,n wjTj

Page 27: Kategorie systemów czasu rzeczywistego

Zależności między kryteriami

wi Ti

Lmax

wi Ci Ti

Ci

Cmax

Kryteria 1, 2 są w relacji 1 2 jeśli rozwiązanie problemu z kryterium 2 dostarcza rozwiązania problemu z kryterium 1.

Page 28: Kategorie systemów czasu rzeczywistego

System permutacyjny (PF, Permutation Fow-shop)

1 2 m

Przepływ zadańStanowisko obsługiMaszyna

Page 29: Kategorie systemów czasu rzeczywistego

System (F, Flow-shop)

Przepływ zadańStanowisko obsługiMaszyna

1 2 m

Page 30: Kategorie systemów czasu rzeczywistego

System gniazdowy (J, Job-shop)

Przepływ zadań Stanowisko obsługiMaszyna

1 2 m

Page 31: Kategorie systemów czasu rzeczywistego

System równoległy (P, Parallel-shop)

Przepływ zadań Stanowisko obsługiMaszyny

Page 32: Kategorie systemów czasu rzeczywistego

System gniazdowy równoległy

Przepływ zadań Stanowisko obsługiMaszyny

Page 33: Kategorie systemów czasu rzeczywistego

Typy zagadnień szeregowania

1. F - zagadnienie przepływowe ( Flow-shop problem),

2. PF - permutacyjne zagadnienie przepływowe ( permuta-tion flow-shop problem),

3. O - zagadnienie otwarte (Open- shop problem).

4. J - zagadnienie gniazdowe (Job-shop problem),

5. G - zagadnienie ogólne (General-shop problem),

6. P - zagadnienie z równoległymi maszynami ( Parallel-shop problem),

Page 34: Kategorie systemów czasu rzeczywistego

Algorytm Johnsona O(nlogn)

Specyfikacja algorytmu.

1. Utwórz dwa rozłączne podzbiory zadań: A={Z i: pi1pi2,

i=1,2,...,n} oraz B={Zi: pi1>pi2, i=1,2,...,n}. Zadania ze zbioru Auszeregowane wg niemalejących wartości p i1 tworząpermutację

A, zadania ze zbioru B uszeregowane wgnierosnących wartości p i2 tworzą permutację

B.

2. Permutacja * będąca konkatenacją < A B> jest optymalną

permutacją zadań:

Cmax(*) = m i n Cmax() *

Page 35: Kategorie systemów czasu rzeczywistego

Problem PF3|P2, no-bottl.|Cmax

Istnieje optymalna kolejność wykonywania zadań dlaproblemu PF3|P2,no-bottl.|Cmax z czasami pi1, pi2, pi3

wykonywania zadań Z iZ, taka jak optymalna kolejność dla

problemu PF2 Cmax z czasami:

p'i1= pi1 + pi2,

p'i2= pi2 + pi3

przy założeniu, że:

min {pi1} max {pi2} albo min {pi3} max {pi2} i i i i

Page 36: Kategorie systemów czasu rzeczywistego

Algorytm Johnson O(nlogn)

Specyfikacja algorytmu.

1. Dla ZiZ wyznaczyć:

- p'i1= pi1 + pi2

- p'i2= pi2 + pi3

2. Znaleźć optymalną permutację * dla zagadnienia:

PF2 Cmax

z czasami wykonywania p'i1 oraz p'

i2 dla zadań Z iZ.

Permutacja * jest również optymalną permutacją dla

zagadnienia:

PF3|P2, no-bottl.|Cmax

Page 37: Kategorie systemów czasu rzeczywistego

Zadania podzielne. Procesory równoległe

Problem: P| prm |Cmax.

Algorytm McNaughtona (złożoność O(n))

1. Wyznacz wartość (minimalną długość uszeregowania) :C*max = max {max j=1,...,n {pj}, j=1,..n pj/m},

Podstaw t = 0.

2. Wybierz dowolne nieuszeregowane zadanie i rozpocznijjego wykonywanie na tym samym procesorze copoprzednie zadanie. Po osiągnięciu t=C* max jeślizadanie nie zostało zakończone przerwij go i kontyuujna wolnym procesorze, podstaw t=0. Punkt 2 powtarzajaż wszystkie zadania zostaną uszeregowane.

Page 38: Kategorie systemów czasu rzeczywistego

Zadania podzielne. Procesory równoległe

I. n=5, m=3, {pj}={36 4 1 3}

C*max = max {max j=1,...,n {pj}, j=1,..n pj/m}=max{17/3, 6} =6

2 640

P1

P2

Z5

Z3

P3 Z3 Z4

Z2

Z1 Z2

2 640

P1

P2

Z4

Z3

P3 Z3

Z2

Z1 Z2

Z5

II. {pj}={4 5 4 3 2}

Jeżeli C*max = j=1,..n pj/m wówczas wszystkie procesory

kończą pracę równoczesnie.

Page 39: Kategorie systemów czasu rzeczywistego

Zadania podzielne. Procesory równoległe

Problem: P| |Cmax.

Algorytm LPT (Longest Processing Time)

1. Przydziel aktualnie woly procesor do nieuszeregowanego zadaniao najdłuższym czasie wykonania.

Oszacowanie będu w najgorszym przypadku:

CLPTmax / C

*max 4/3 – 1/(3m)

Średnia dokładność algorytmu jest znacznie lepsza.

2 640

P1

P2 Z5Z3Z2

Z1 Z4 Z6

8 10

Page 40: Kategorie systemów czasu rzeczywistego

Zadania zależne. Procesory równoległe

Problem P|pi=1,in–tree|Cmax

Algorytm Hu, złożonośc O(n).

1. Określ poziomy zadań.

2. Jeśli liczba zadań bez poprzedników jest mniejsza lub równam, to przydziel tym zadaniom procesory, przejdź do 3.W przeciwnym przypadku wybierz spośród nich m zadań onajwyższych poziomach i przydziel im procesory.

3. Usuń wybrane zadania z grafu. Powtarzaj 2 dopóki wszystkiezadania nie zostaną wykonane.

Page 41: Kategorie systemów czasu rzeczywistego

Algorytm Hu, Przykład

1

2

3

4 Z1 Z2Z3 Z4

Z5Z6 Z7

Z8 Z10

Z11

Z9

2 640

P1

P2Z2

Z1

Z4

Z3

Z6 Z8

Z5 Z7 Z9

Z10

Z11

Page 42: Kategorie systemów czasu rzeczywistego

Zadania niezależne, procesory równoległe

Problem:

P | | Ci

Cmax

Algorytm RPT (Reverse Processing Time), algorytm przybliżony.

1. Zastosuj szeregowanie LPT.

2. Na każdym procesorze uszereguj zadania według SPT.

P1

P2

P3

LPT

P1

P2

P3

RPT

Dokładność: 1 Ci (RPT) / Ci* m

Page 43: Kategorie systemów czasu rzeczywistego

Reguła EDD (Earliest Due Date)

Reguła EDD – szeregowanie w kolejności niemalejącychwymaganych terminów deadline.

d2

Z1 Z2

d1

EDD

d2

Z2 Z1

d1

Problem:

1| |Lmax

Istnieje rozwiązanie optymalne problemu, w którym zadania sąwykonywane w kolejności niemalejących wartości d j.

Algorytm:

1.Reguła EDD.

Page 44: Kategorie systemów czasu rzeczywistego

Zadania niezależne, przerywalne.

Problem:1 |ri, prm |Lmax

Algorytm Liu oparty na regule EDD, złożoność O(n 2)

1. Spośród dostępnych zadań przydziel procesor (zwywłaszczeniem zadania) temu, które ma najbliższywymagany termin zakończenia,

2. Jeśli zadanie zostało zakończone lub przybyło nowewróć do 1.

Page 45: Kategorie systemów czasu rzeczywistego

Zadania zależne, przerywalne.

Problem:1| rj , prm, prec |Lmax

Algorytm: zmodyfikowany algorytm Liu, złożoność O(n 2).

1. Określ zmodyfikowane terminy zakończenia zadań:

dj*=min{dj, min{di:ZjZi}}

2. Przydziel procesor dostępnemu zadaniu Z j, które manajmniejszą wartość d j

*. Wykonuj je tak długo, dopóki albojego wykonanie się nie zakończy, albo nie stanie siędostępne zadanie Z k, dla którego dk

*< dj*, wtedy przerwij

wykonywanie zadania Zj.

3. Powtarzaj punkt 2 dopóty, dopóki wszystkie zadania niezostaną wykonane.

Page 46: Kategorie systemów czasu rzeczywistego

Zadania zależne, procesory równoległe.

Problem:P| pj=1, in–tree | Lmax

Algorytm Bruckera O(nlog n).

Oznaczmy przez next(j) - bezpośredni następnik zadania Z j.

1. Podstaw droot*=1–droot

2. Dla zadania Zj, j=2,3,..,n wyznacz zmodyfikowane terminyzakończenia:

dj* = max{1+dnext(j)*, 1–dj}

3. Uszereguj zadania w kolejności nie rosnących wartości ichzmodyfikowanych terminów zakończenia, uwzględniającograniczenia klejnościowe.

Page 47: Kategorie systemów czasu rzeczywistego

-6*, 7

Przykład P| pj=1, in–tree | Lmax

-1*, 3

-2*, 3

0*, 4

Z1 Z2 Z3

Z5 Z6

Z7Z8

Z10

Z9

Z4

-5*, 6

-4*, 5

-1*, 2

0*, 2

0*, 2

-1*, 4

dj*, dj 2 40

P2

P3Z3

Z2

Z6

Z5 Z7

Z9Z1P1Z4 Z8

L*max= 0

Z10

Page 48: Kategorie systemów czasu rzeczywistego

Zadania niepodzielne, dodatkowe zasoby

ProblemP rj, pj=1, res11 Cmax.

Algorytm, złożoność O(n).

1. t=0, k=0.2. Przydziel w chwili t do wolnego procesora dostępne zadanie Z j,

dla którego R(Zj)=1, podstaw k=k+1.Powtarzaj ten punkt dopóty, dopóki albo k= R , albo niebędzie zadania żądającego zasobu.

3. Przydziel do pozostałych wolnych procesorów w chwili t,dostępne zadania, dla których R 1(Zi)=0. Podstaw t=t+1 orazk=0 i powtórz pkt.2 jeśli są jeszcze nieprzydzielone zadania.

Page 49: Kategorie systemów czasu rzeczywistego

Przykład Ppodz, res11Cmax

Zj Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8

R(Zj) 1 0 1 0 1 1 0 1

rj 4 2 3 5 7 2 1 5

2 40

P2

Z4

Z5

Z1P1

Z7

6 8 10

Z6 Z8

Z3

Z2

Z5

P3

Page 50: Kategorie systemów czasu rzeczywistego

Cykliczny algorytm FIFO

Technika szeregowania FIFO (First in First Out) lubFCFS (First Come First Served) oznacza obsługę wkolejności zgłoszeń.Zadania mogą być wykonywane z przerwaniami,realizowanymi przez podział czasu ( Time Sharing)według strategii RR (Round Robin).

Page 51: Kategorie systemów czasu rzeczywistego

Struktura kolejki w algorytmie cyklicznym

1

2

3

46

5

7 Kierunekobsługi

Page 52: Kategorie systemów czasu rzeczywistego

Cykliczny algorytm LIFO (Last in First Out)

Kolejka

Stanowisko obsługi

Zadania przerwane

Zadania zakończone

Page 53: Kategorie systemów czasu rzeczywistego

Cykliczny algorytm SS (Selfish Scheduling)

Algorytm SS - uogólnienie algorytmów FIFO, LIFO.

Podział zadań na dwa podzbiory:

1. Zadania oczekujące,

2. Zadania wykonywane.

Page 54: Kategorie systemów czasu rzeczywistego

System obsługi wg. algorytmu SS

Kolejka System kolejek

Stanowiskoobsługi

Zadaniawykonane

Podstawowy algorytm szeregowania

Nowezadania

Zadania oczekujące Zadania wykonywane

Page 55: Kategorie systemów czasu rzeczywistego

Szeregowanie zadań cyklicznych:

1. Statyczne: PAP (Plan Aktywacji Procesów) -określa zadanie, które w danej chwili ma być wykonane.Implementacja PAP: Tablica, lista.

2. Dynamiczne: Strategia (np. „Najwcześniejsza liniakrytyczna najpierw”).

Page 56: Kategorie systemów czasu rzeczywistego

Z = {Z1, Z2, ..., Zn} - zadania cykliczne;

= {1, 2, ..., m} – okresy czasowe zadań;

H - Horyzont czasowy, (najmniejsza wspólna wielokrotnośćokresów 1, 2, ..., m).

Page 57: Kategorie systemów czasu rzeczywistego

Binaryzacja okresów zadań

{1,..., i, ..., m} {p1,..., pi, ..., pm: pi i, pi =p02k(i)}

[p0: 2k(1), 2k(2), ..., 2k(m)] – Binaryzacja okresów zadań

p0 - okres bazowy,

2k(1), 2k(2), ..., 2k(m) - wielokrotności binarne.

Dla: p1=16, p2=32 p3=128, p4=256;

B: [16: 1, 2, 8, 16].

Page 58: Kategorie systemów czasu rzeczywistego

Binaryzacja niezdominowana

J = {J1, J2, J3, J4, J5},

T1: 1=10, t1=1,

T2,T3, T4, T5: 2=30, t2= t3= t4= t5=6,

B1: [7: 1, 4],

H = 28

T1 T2 T1 T3 T1 T4 T1 T5

1 7 8 14 15 21 22 28

Uszeregowanie dopuszczalne dla binaryzacji B1: [7: 1, 4]

Page 59: Kategorie systemów czasu rzeczywistego

Binaryzacje niezdominowane

Dane: Sekwencja oryginalnych okresów zadań

P=(1, 2, ..., m) ; 0 < 1

2 ..., m.

Wyniki: Zbiór E = {[p0: 2k(1), 2k(2), ..., 2k(m)]} binaryzacji

niezdominowanych.

Page 60: Kategorie systemów czasu rzeczywistego

1. Wyznacz następujące wartości początkowe:

min = 1/2;

max = 1, E = 0;

2. Dla każdego elementu i należącego do sekwencji P

wykonaj:

2.1. Znajdź taką wartość k N, że min< i/2

k max.Niech p0 = i/2

k,

2.2. Do zbioru E dodaj binaryzację:

[p0: v(1, p0), v(2, p0), ..., v(m, p0)]

gdzie: v(a, b) = max {2q: b 2q a} i 2q N.

Page 61: Kategorie systemów czasu rzeczywistego

Komunikacja między zadaniami

Komunikacja między zadaniami ( ITC, Inter Task Commu-nication) - zestaw mechanizmów przekazywania informacjimiędzy zadaniami.

Aspekty komunikacji:

1. Niezawodność,

2. Zawartość,

3. Prędkość,

4. Przenośność.

Page 62: Kategorie systemów czasu rzeczywistego

Kolejki komunikatów

Kolejka zadańodbierających

Kolejka zadańwysyłających

Blok kontrolny kolejki

Długość kolejki

Rozmiar wiadomości

Elementkolejki

Page 63: Kategorie systemów czasu rzeczywistego

Kolejki komunikatów

Bufor zadaniaodbierającego

Bufor zadaniawysyłającego

Jednokierunkowa komunikacja

Kopia I Kopia II

Page 64: Kategorie systemów czasu rzeczywistego

Semafor

Semafor (semaphore) – narzedzie synchronizacji,

Semafor – zmienna całkowita, na której mogą być wykonywaneoperacje:

- Inicjalizacja,

- Czekaj (ang. wait, holend. proberen),

- Sygnalizuj (ang. signal, holend. verhogen),

Stosowane typy semaforów:

- Semafor zliczajacy (counting semaphore),

- Semafor binarny (binary semaphore),

- Muteksy (mutual exclusion semaphores).

Page 65: Kategorie systemów czasu rzeczywistego

Rejestry zdarzeń. Flagi zdarzeń.

OR /AND

0 00 1 0 0 01

ZAD1ZAD2

Ustawienie flag zdarzeń

ZAD3

Użycie rejestru i flag zdarzeń

Page 66: Kategorie systemów czasu rzeczywistego

Potoki

Potoki (pipes) - (wirtualne urządzenia we-wy), służą doprzechowywania danych bez struktury.

ZAD.CZYTAJĄCE

ZAD.PISZĄCE DANE

POTOK

DeskryptorDeskryptor

Page 67: Kategorie systemów czasu rzeczywistego

Zakleszczenie (deadlock)

KOLEJKA(pusta)

ZADANIE 2(czeka na semafor)

SEMAFOR

ZADANIE 1(czeka na dane,posiada semafor)

Page 68: Kategorie systemów czasu rzeczywistego

Przeterminowanie (starvation)

KOLEJKA

ZADANIE 2

SEMAFOR

ZADANIE 1 ZADANIE 3

Page 69: Kategorie systemów czasu rzeczywistego

Inwersja priorytetów (priority inversion)

ZAD1

ZAD2

ZAD1

ZAD2

ZAD1NISKI

WYSOKI

Priorytet

t1t2 t3 t4 t5

Inwersja priorytetów

Page 70: Kategorie systemów czasu rzeczywistego

Inwersja priorytetów

NISKI

WYSOKI

Priorytet

t1 t2t3 t6 t7

Inwersja priorytetów

t4 t5

Nieznany czas

Page 71: Kategorie systemów czasu rzeczywistego

Usługi jądra systemu czasu rzeczywistego

1. Zarządza czasem procesora,2. Udostępnia usługi (odczyt czasu systemowego,

przesyłanie komunikatów, zawieszenie,synchronizację, wzajemne wykluczanie),

3. Zapewnia wykonanie zadania o krytycznych ogranicze-niach czasowych,

4. Tworzy zadanie (stan uśpienia stan gotowy),

5. Obsługuje listę zadań gotowych do wykonania,

6. Upraszcza proces projektowania,

Page 72: Kategorie systemów czasu rzeczywistego

Jądro z wywłaszczaniem

ZADANIE A 1 7

3

5

2IRS

4ZADANIE B

6

Czas

wykonanie

Page 73: Kategorie systemów czasu rzeczywistego

Stany zadania

1. Uśpione ( dormant),

2. Gotowe do wykonania (ready),

3. Wykonywane (executed),

4. Oczekujące na określony czas ( delayed),

5. Oczekujące na zdarzenie ( waiting for an event),

6. Przerwane (interruped).

Page 74: Kategorie systemów czasu rzeczywistego

ZADANIE 1

Stos

STATUS

Wskaźnikstosu

Priorytet

TCB TCB

. . .

Wskaźnikstosu

Kontekst

Pamięć

CPU Rejestry CPU

ZADANIE n

Stos

STATUS

Wskaźnikstosu

Priorytet

Page 75: Kategorie systemów czasu rzeczywistego

Przełączanie kontekstu

1. Przechowanie zawartości rejestrów procesora(kontekstu),

2. Zachowanie wskaźnika szczytu stosu,

3. Załadowanie wskaźnika stosu nowego zadania,

4. Załadowanie rejestrów procesora kontekstem zadaniaprzejmującego kontrolę nad procesorem.

Page 76: Kategorie systemów czasu rzeczywistego

Cechy systemu VxWorks

1. Szeregowanie zadań:

Algorytm: z wywłaszczeniem (256 poziomów priorytów),karuzelowy.

2. Komunikacja między zadaniami:

Kolejki komunikatów, współdzielona pamięć, dziedziczeniepriorytetów, semafory: binarne, całkowite, wzajemnegowykluczania.

3. Sieć:protokół TCP/IP, zdalny dostęp, zdalne wykonywaniekomend (rsh), sieciowy system plików NFS, usługi ftp,klient-serwer.

4. Zgodność ze standardem: POSIX, ANSI C i C++.

5. Dodatkowe pakiety:Środowisko graficzne, rozszerzona obsługa pamięci,rozszerzenie o wielopocesorowość, wirtualna maszynaJavy.

Page 77: Kategorie systemów czasu rzeczywistego

Stany zadania VxWorks

1. Zawieszone (suspended),2. Oczekujące na określony czas ( delayed),3. Wstrzymane na dostęp do zasobu ( pended),4. Gotowe do wykonania (ready),5. Wykonywane aktualnie na procesorze (executed).

GOTOWE

WYKONYWANE

OCZEKUJĄCEWSTRZYMANE

ZAWIESZONE

Page 78: Kategorie systemów czasu rzeczywistego

Mechanizmy Komunikacji między zadaniami

1. Wspólna pamięć,

2. Semafory,

3. Kolejki komunikatów,

4. Potoki,

5. Procedury zdalnie wywoływane RPC ( RemoteProcedure Calling),

6. Sygnały.

Page 79: Kategorie systemów czasu rzeczywistego

Współdzielona pamięć, wzajemne wykluczanie

ZADANIE 1

ZADANIE 2

ZADANIE 3Wsp_Dane

PAMIĘĆ

Techniki wzajemnego wykluczania:

1. Wyłączenie przerwań,

2. Wyłączenie wywłaszczania,

3. Blokada zasobów semaforami.

Page 80: Kategorie systemów czasu rzeczywistego

Semafory VxWorks

1. Binarne – zoptymalizowane do synchronizacji i wzajemnegowykluczania,

2. Wzajemnego wykluczania – binarne, optymalne ze względuna dziedziczenie priorytetów i ochronę przed usunięciem,

3. Całkowite – pamiętające ilość pobrań semafora, optymalneze wzgędu obsługę urządzeń.

Funkcje obsługi semaforow:

tworzenie, pobieranie, inicjalizowanie i usuwaniesemaforów, odblokowywanie zadań oczekujących nasemafor.

Page 81: Kategorie systemów czasu rzeczywistego

Inwersja priorytetów

Zadanie C

Priorytet

Zadanie A

Zadanie B

czasw posiadaniu semafora

wywłaszczenie blokada

pobranie semafora

oddaniesemafora

Page 82: Kategorie systemów czasu rzeczywistego

Dziedziczenie priorytetów

Zadanie A

Zadanie B

czasw posiadaniu semafora

wywłaszczenie blokada

pobranie semafora

C

A C A

B

oddanie semafora

dziedziczenie priorytetu

Zadanie C

Page 83: Kategorie systemów czasu rzeczywistego

System RTLinuks

1. Algorytm szeregowania z podziałem czasu,

2. Rozdzielczość (niska) zegara systemowego (100 MHz),

3. Niewywłaszczalność wywołań systemowych,

4. Mechanizm pamięci wirtualnej (chybienie z cacheopóźnia dostęp do pamięci),

5. Dążenie do optymalnego wykorzystania zasobów,

6. Wyłączenie przerwań sprzętowych w sekcjachkrytycznych jądra.

Page 84: Kategorie systemów czasu rzeczywistego

Systemy KURT, MERT

KURT, MERT – modyfikacje Linuksa.

System KURT o łagodnych ( firm) ograniczeniach czasowych:

1. Wywłaszczające szeregowanie procesów o stałym

priorytecie,

2. Zwiększenie rozdzielczości zegara systemowego.

System MERT (Bell Labs, w 1970) o twardych wymaganiach:

1. Oddzielne mechanizmy systemu operacyjnego czasurzeczywistego i systemu operacyjnego ogólnegozastosowania

Page 85: Kategorie systemów czasu rzeczywistego

Cechy systemu RTLinuks

1. Rozdział mechanizmów s.o. czasu rzeczywistego i s.o.ogólnego przeznaczenia,

2. Jądro Linuksa jest zadaniem najniższego priorytetu ( idletask),

3. Warstwa emulacji kontroli przerwania sprzętowego,

4. Przerwania najpierw są obsługiwane przez jądroRTLinuksa,

5. Kolejkowanie przerwań przeznaczonych dla Linuksa,

Page 86: Kategorie systemów czasu rzeczywistego

Architektura systemu RTLinux

Drivery Linux

Funkce systemowe, POSIX

RT-LinuxScheduler

Zadanieczasu rzecz.

Zadanieczasu rzecz.

Sprzęt

we/wyPrzerwania

Zwykłe procesy Linuksa

Page 87: Kategorie systemów czasu rzeczywistego

Zadania RTLinuksa

1. Dostarczenie bezpośredniego dostępu do sprzętu dlawątków czasu rzeczywistego,

2. Szeregowanie,

3. Udostępnienie mechanizmów odmierzania czasu,

4. Komunikacja międzyprocesowa.

Page 88: Kategorie systemów czasu rzeczywistego

Szeregowanie i komunukacja w RTLinuksie

1. Algorytm priorytetowy (RMS, Rate Monotonic SchedulingAlgorithm),

2. Algorytm EDF (Earliest Deadline First) - oparty nanajwcześniejszym czasie wznowienia.

Mechanizmy komunikacji:

1. Kolejki czasu rzeczywistego (RT-FIFO),

2. Pamięć dzielona.

Page 89: Kategorie systemów czasu rzeczywistego

Architektura systemu QNX

Poziomy uprzywilejowania:

Poziom 0 – mikrojądro,

Poziom 1 – zadania systemowe,

Poziom 2 – (nie jest wykorzystywany),

Poziom 3 – zadania aplikacyjne.

MIKROJĄDRO

Zadania (procesy ) systemowe

Zadania (procesy) aplikacyjne

Poziom zadań

Poziom jądra systemu

Page 90: Kategorie systemów czasu rzeczywistego

Zadania (procesy) systemowe QNX

1. Menedżer procesów ( PM, Process Manager) – tworzy i usuwaprocesy (zadania), nadzoruje czas.

2. Menedżer plików ( FM, Filesystem Manager) – organizuje systemplików,

3. Menedżer urządzeń ( DM, Device Manage) – formatuje strumieniedanych przekazywane miedzy zadaniami i urządzeniamizewnętrznymi,

4. Procesy sterujące urządzeniami ( DD, Device Drivers)

5. Administrator sieci (NM, Network Manager) – obsługuje łączesieciowe i komunikację węzłów sieci.

Page 91: Kategorie systemów czasu rzeczywistego

Funkcje mikrojądra QNX

1. Szeregowanie zadań ( Scheduler),

2. Komunikacja między zadaniami ( InterprocessCommunication),

3. Komunikacja między zadaniami w obrębie sieci lokalnej(Network Interface),

4. Przyjmowanie zgłoszeń przerwań (bez obsługi) ( InterruptRedirector).

Page 92: Kategorie systemów czasu rzeczywistego

Struktura mikrojądra QNX

Mechanizmy komunikacji (IC)

Interfejs sieciowy (NI)

SCHEDULER

Przekierowania przerwania (IR)

Przerwania Zarządca sieci (NM)

ZAD ZAD

Page 93: Kategorie systemów czasu rzeczywistego

Zadania (procesy) systemowe

Send

Receive

ReplyG

WM

Z

ZReceive

ZSend

Diagram przejść między zadaniami

Stany zadania:

- Gotowe G (ready),

- Wykonywane W (run),

- Zawieszone Z, ZSend, ZReceive

- Martwe M (dead).

Page 94: Kategorie systemów czasu rzeczywistego

Szeregowanie, komunikacja i synchronizacja

Mechanizmy komunikacji:

1. Wiadomości (synchroniczny przekaz wiadomości,message),

2. Depozyty (asynchroniczny przekaz stałych wiadomości,proxy),

3. Sygnały (sygnalizacja zdarzeń, signal).

Strategie szeregowania:

1. FIFO,

2. Karuzelowy (Round Robin),

3. Adaptacyjny (Adaptive scheduling).

Page 95: Kategorie systemów czasu rzeczywistego

Wiadomości

Mr

M

Zadanie T1 Zadanie T2

Send( T2, M, Mr )

Receive(M )

Reply(Mr)

Implementacja spotkania

Funkcje systemowe:

- Send( T2, M, Mr ) – wysyłanie,

- Receive(M ) - odbieranie wiadomości,

- Reply(Mr) – przekazanie odpowiedzi.

Page 96: Kategorie systemów czasu rzeczywistego

Depozyty (Proxy)

DEPOZYTProces

Widomość

ProcesWidomość

Widomość

1. Przekazywania wiadomości o zdarzeniach,2. Przekazywanie sygnałów synchronizujących.

Depozyt - odrębny proces, przypisany do procesu właściciela iprzechowujący jedną ustaloną wiadomość.

Page 97: Kategorie systemów czasu rzeczywistego

Sygnały

Sygnały - przerwania programowe generowane przezprogramy jądra systemu, procesy systemowe lub procesyaplikacyjne w chwili wystąpienia sytuacji nienormalnej.

Kategorie sygnałów:

1. Błąd operacji zmiennoprzecinkowej,

2. Naruszenie ochrony pamięci,

3. Przeterminowanie operacji,

4. Żądanie awaryjnego zakończenia zadania.

Page 98: Kategorie systemów czasu rzeczywistego

Komunikacja w sieci

P VQSend ( )

ZAD

VP QReceive ( )

ZAD

Zadania wirtualne

Węzeł sieci Węzeł sieci

Automatyczne przekazanie wiadomości przez połączenie

Page 99: Kategorie systemów czasu rzeczywistego

QNX Neutrino

Ochrona pamięci

Ochrona pamięci

System plików AplikacjaObsługa we-wy Podsystem graficzny

Mikrojądro NEUTRINO

Procedury obsługi urządzeń

Procedury obsługi sieci

Procedury obsługi grafiki

SPRZĘT

Page 100: Kategorie systemów czasu rzeczywistego

Zastosowanie

1. Systemy sterowania i monitorowania: procesy przemysłowe,technologiczne, śledzenie ruchu pociągów.

2. Przetwarzanie w trybie online: bankomaty, karty kredytowe,

3. Systemy bezwzględnego nadzoru: procesy chemiczne.

NASA, Hewlett Packard, Intel, Ford, Goodyear.

Page 101: Kategorie systemów czasu rzeczywistego

Standard POSIX

Portable Operating System Interface for ComputingEnvironments

Uwarunkowania:

1. Projektowana aplikacja jest wynikiem pracyzespołowej,

2. Aplikacje wykorzystują wielorakie programyużytkowe,

3. Długi cykl życia aplikacji wymagającej aktualizacji imodyfikacji.

Page 102: Kategorie systemów czasu rzeczywistego

Standard POSIX

Jednoznacznie określa sposoby realizacji kluczowych funkcjisystemu operacyjnego:

1. Zarządzanie procesami,

2. Operacje na plikach,

3. Obsługę przerwań sprzętowych,

4. Sterowanie urządzeniami.

Standard Nazwa

1003.1b Real-time Extensions

1003.1d Additional Real-time Extensions

1003.1j Advanced Real-time Extensions

1003.21 Distributed Real-time

Page 103: Kategorie systemów czasu rzeczywistego

Sieci Petriego

Zastosowania:

1. Projektowanie i specyfikacja systemów,2. Analiza poprawności oprogramowania (weryfikacja,

walidacja),3. Ocena wydajności i niezawodności systemów.

Cechy, istotne z punktu widzenia opisu SCR:

1. Wyrażanie czasu i zależności czasowych,

2. Przejrzysta reprezentacja współbieżności i synchronizacji,

3. Możliwości agregacji sieci: sieci wyższego poziomu(kolorowane).

Page 104: Kategorie systemów czasu rzeczywistego

Konwencje graficzne

Sieć Petriego - dwudzielny graf, w którym wyróżnia sięrozłączne podzbiory wierzchołków: miejsc i przejść.

p1 p2

p3

t2t1

Page 105: Kategorie systemów czasu rzeczywistego

Sieć Petriego PN jest uporządkowaną czwórką :

PN = (P, T, F, W)

P=(p1,p2,...,pn) – skończony zbiór miejsc ( places),

T=(t1,t2,...,tm) - skończony zbiór przejść ( transitions),

F(PxT)(TxP) - zbiór łuków,

W: F N\{0} – funkcja krotności (waga) łuku,

N - zbiór liczb naturalnych.

Page 106: Kategorie systemów czasu rzeczywistego

Znakowanie sieci.

Znakowanie sieci M: P N.

Wartość M(p i) wyraża liczbę znaczników ( markers) w miejscu pi.

Znakowana sieć Petriego MPN (Marked Petri Net) jest parą:

MPN = (PN, M0)

M0: P N - znakowanie początkowe ( Initial marking).

Page 107: Kategorie systemów czasu rzeczywistego

Realizacja przejścia

t1

p1 p2

p4

p3

p5

3

2

p1 p2

p4

t1

p3

p5

3

2

1. Realizacja przejścia ( firing of transition) - pobranieznaczników z miejsc wejściowych danego przejścia iwstawienia do miejsc wyjściowych.

2. Ilość znaczników pobieranych jest określona przez wagiodpowiednich łuków.

Page 108: Kategorie systemów czasu rzeczywistego

Własności dynamiczne sieci

Sekwencją palenia nazywamy sekwencję przejść = ti1, ..., tis

dla której istnieją znakowania M p, Mp+1, ..., Mp+s spełniającewarunek:

Mp [ti1]

Mp+1,…, Mp+s-1 [tis]

Mp+s

Mp []

Mp+s

Znakowanie Mp+s nazywamy znakowaniem osiągalnym zeznakowania Mp.

Sieć MPN jest żywą ( Liveness), jeśli dla każdegoznakowania M osiągalnego ze znakowania początkowegoM0 i dla każdego przejścia t istnieje sekwencja paleniaumożliwiająca palenie przejścia t.

Page 109: Kategorie systemów czasu rzeczywistego

Czasowe sieci Petriego

Czasowa, znakowana sieć Petrego TMPN (Timed MarkedPetri Net) jest parą

TMPN = ( MPN, )

: T R+, (R+- jest zbiorem nieujemnych liczb rzeczyw.).

Sposoby reprezentacji czasu poprzez:

a) przejścia,

b) miejsca.

Page 110: Kategorie systemów czasu rzeczywistego

Interpretacja miejsc i przejść

Miejsca wejściowe Przejścia Miejsca wyjściowe

Zasoby żądane Operacja, zadanie Zasoby zwalniane

Dane wejściowe Obliczenia Wyniki

Prewarunki Zdarzenie Postwarunki

Sygnały wejściowe Przetwarzanie Sygnały wyj ściowe

Page 111: Kategorie systemów czasu rzeczywistego

Model automatu obsługującego sprzedaż

wait

5 10

5 10

5 10

5

5

15 20

Automat akceptuje monety 5 i 10 zł. oraz sprzedaje dwarodzaje produktów w cenie po 15 i 20 zł.

Page 112: Kategorie systemów czasu rzeczywistego

Model procesów współbieżnych

ParBegin

t1

p2

ParEnd

p1

p3p4

t2

t0

t3

p0

Page 113: Kategorie systemów czasu rzeczywistego

Model protokołu z potwierdzeniem

Received

Receive

Sender

ReceiverMess_Buff

Ack_Buff

Ready

Waitfor ack Send

ack

Sendmess

Ready

Page 114: Kategorie systemów czasu rzeczywistego

Komunikacja za pomocą ograniczonego bufora

producer

consumer

p

k

p’

Page 115: Kategorie systemów czasu rzeczywistego

Synchronizowany dostęp do obszaru krytycznego

p1

p3

p0

t2

t1 t3

t4

p2 p4

Ms(p2) = Ms(p4) = 1

Ms(p2) + Ms(p4) 1

Page 116: Kategorie systemów czasu rzeczywistego

Sieciowy model procesu cyklicznego

tk i tk i + 1 pkb

pkc

proces k

Operacja oki(h) tranzycja tk

i T

Czas wykonania operacji oki(h) czas palenia tranzycji t =

T(t)

Czasowy znakowany graf TMG (Timed Marked Graph):

pP p=1 and p=1

Page 117: Kategorie systemów czasu rzeczywistego

Sieciowy model procesu cyklicznego

process k

..

....

pc

ps

Page 118: Kategorie systemów czasu rzeczywistego

Cykliczne procesy współbieżne

process 1

process k

process n

Page 119: Kategorie systemów czasu rzeczywistego

Czas cyklu

Niech będzie sekwencją wzbudzeń

={<ti; si(1), si(2),...,,si(v),...>: tiT}

gdzie: si(v) - jest chwilą w której tranzycja ti inicjuje v-te palenie.

Liczba C() jest czasem cyklu sieci, jeżeli istnieje sekwencja wzbudzeń ( jest zbiorem możliwych sekwencji wzbudzeń), dla której znakowanie sieci M jest równe znakowaniu początkowemu M0 w chwilach kC(), k=1, 2, ... .

C*=C(*)=min {C()}.