kategorie systemów czasu rzeczywistego
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 PresentationTRANSCRIPT
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.
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.
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.
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
System Czasu Rzeczywistego
Sensory
Sterowniki
Otoczenie
KOMPUTER
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)
Kategorie SCR
1. System wbudowany (embedded system)
2. System odporny na błędy ( fault tolerant system)
3. System dedykowany (dedicated system)
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.
Cechy SCR
1. Współbieżność ( concurrent),
2. Punktualność ( punctuality),
3. Przewidywalność ( predictability),
4. Ciągłość działania ( continuity).
5. Nieprzekraczalność terminu ( deadline).
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
Strategia PUSH
JEDNOSTKA PLANUJĄCO - STERUJĄCA
M M MM
Materiały Sterowanie Informacje
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.
Strategia SQUEEZE
JEDNOSTKA PLANUJĄCO - STERUJĄCA
M B MM
Materiały Sterowanie Informacje
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.
Strategia PULL
JEDNOSTKA PLANUJĄCO - STERUJĄCA
M M MM
Materiały Sterowanie Ssanie
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.
Notacja (trójpolowa)
- opisuje typ systemu i środowisko maszynowe,
- charakteryzuje zadania, dodatkowe zasoby i ogranicze-nia,
- kryterium optymalizacji (wskaźnik jakości sterowania).
= 1 2
1 { PF, F, O, J } { P, G}
2 - parametr określający liczbę maszyn, procesorów.
= 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).
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}
= 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.
Wymagania kolejnościowe zadań.
3 {, prec, tree, chain }
prec – dowolny graftree – drzewo (in-tree, out-tree)chain - łańcuch
in–tree out–tree
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).
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).
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
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
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.
System permutacyjny (PF, Permutation Fow-shop)
1 2 m
Przepływ zadańStanowisko obsługiMaszyna
System (F, Flow-shop)
Przepływ zadańStanowisko obsługiMaszyna
1 2 m
System gniazdowy (J, Job-shop)
Przepływ zadań Stanowisko obsługiMaszyna
1 2 m
System równoległy (P, Parallel-shop)
Przepływ zadań Stanowisko obsługiMaszyny
System gniazdowy równoległy
Przepływ zadań Stanowisko obsługiMaszyny
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),
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() *
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
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
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.
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.
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
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.
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
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
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.
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.
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.
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.
-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
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.
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
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).
Struktura kolejki w algorytmie cyklicznym
1
2
3
46
5
7 Kierunekobsługi
Cykliczny algorytm LIFO (Last in First Out)
Kolejka
Stanowisko obsługi
Zadania przerwane
Zadania zakończone
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.
System obsługi wg. algorytmu SS
Kolejka System kolejek
Stanowiskoobsługi
Zadaniawykonane
Podstawowy algorytm szeregowania
Nowezadania
Zadania oczekujące Zadania wykonywane
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”).
Z = {Z1, Z2, ..., Zn} - zadania cykliczne;
= {1, 2, ..., m} – okresy czasowe zadań;
H - Horyzont czasowy, (najmniejsza wspólna wielokrotnośćokresów 1, 2, ..., m).
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].
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]
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.
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.
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ść.
Kolejki komunikatów
Kolejka zadańodbierających
Kolejka zadańwysyłających
Blok kontrolny kolejki
Długość kolejki
Rozmiar wiadomości
Elementkolejki
Kolejki komunikatów
Bufor zadaniaodbierającego
Bufor zadaniawysyłającego
Jednokierunkowa komunikacja
Kopia I Kopia II
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).
Rejestry zdarzeń. Flagi zdarzeń.
OR /AND
0 00 1 0 0 01
ZAD1ZAD2
Ustawienie flag zdarzeń
ZAD3
Użycie rejestru i flag zdarzeń
Potoki
Potoki (pipes) - (wirtualne urządzenia we-wy), służą doprzechowywania danych bez struktury.
ZAD.CZYTAJĄCE
ZAD.PISZĄCE DANE
POTOK
DeskryptorDeskryptor
Zakleszczenie (deadlock)
KOLEJKA(pusta)
ZADANIE 2(czeka na semafor)
SEMAFOR
ZADANIE 1(czeka na dane,posiada semafor)
Przeterminowanie (starvation)
KOLEJKA
ZADANIE 2
SEMAFOR
ZADANIE 1 ZADANIE 3
Inwersja priorytetów (priority inversion)
ZAD1
ZAD2
ZAD1
ZAD2
ZAD1NISKI
WYSOKI
Priorytet
t1t2 t3 t4 t5
Inwersja priorytetów
Inwersja priorytetów
NISKI
WYSOKI
Priorytet
t1 t2t3 t6 t7
Inwersja priorytetów
t4 t5
Nieznany czas
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,
Jądro z wywłaszczaniem
ZADANIE A 1 7
3
5
2IRS
4ZADANIE B
6
Czas
wykonanie
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).
ZADANIE 1
Stos
STATUS
Wskaźnikstosu
Priorytet
TCB TCB
. . .
Wskaźnikstosu
Kontekst
Pamięć
CPU Rejestry CPU
ZADANIE n
Stos
STATUS
Wskaźnikstosu
Priorytet
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.
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.
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
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.
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.
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.
Inwersja priorytetów
Zadanie C
Priorytet
Zadanie A
Zadanie B
czasw posiadaniu semafora
wywłaszczenie blokada
pobranie semafora
oddaniesemafora
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
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.
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
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,
Architektura systemu RTLinux
Drivery Linux
Funkce systemowe, POSIX
RT-LinuxScheduler
Zadanieczasu rzecz.
Zadanieczasu rzecz.
Sprzęt
we/wyPrzerwania
Zwykłe procesy Linuksa
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.
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.
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
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.
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).
Struktura mikrojądra QNX
Mechanizmy komunikacji (IC)
Interfejs sieciowy (NI)
SCHEDULER
Przekierowania przerwania (IR)
Przerwania Zarządca sieci (NM)
ZAD ZAD
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).
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).
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.
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ść.
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.
Komunikacja w sieci
P VQSend ( )
ZAD
VP QReceive ( )
ZAD
Zadania wirtualne
Węzeł sieci Węzeł sieci
Automatyczne przekazanie wiadomości przez połączenie
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
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.
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.
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
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).
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
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.
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).
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.
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.
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.
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
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ł.
Model procesów współbieżnych
ParBegin
t1
p2
ParEnd
p1
p3p4
t2
t0
t3
p0
Model protokołu z potwierdzeniem
Received
Receive
Sender
ReceiverMess_Buff
Ack_Buff
Ready
Waitfor ack Send
ack
Sendmess
Ready
Komunikacja za pomocą ograniczonego bufora
producer
consumer
p
k
p’
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
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
Sieciowy model procesu cyklicznego
process k
..
....
pc
ps
Cykliczne procesy współbieżne
process 1
process k
process n
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()}.