You are on page 1of 85

Politechnika Warszawska

Wydzia Elektroniki i Technik Informacyjnych


Instytut Automatyki i Informatyki Stosowanej
Skrypt do przedmiotu SCZR
(Systemy Czasu Rzeczywistego)
Praca napisana na podstawie wykadw w semestrze 04L
wykadowca: prof. nzw. dr hab. Krzysztof Sacha
Piotr Andrzej Topr
nr albumu 180142
Warszawa, 16.06.2004
Spis tre sci
Spis tre sci 2
1 Wykad 1 [27.02.2004] 5
1.1 Denicja Systemu Czasu Rzeczywistego . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Charakterystyka System Czasu Rzeczywistego . . . . . . . . . . . . . . . . . . . . 5
1.3 Klasykacja Systemw Czasu Rzeczywistego . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 Hard Real-Time System . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.2 Soft Real-Time System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Przykady Systemw Czasu Rzeczywistego . . . . . . . . . . . . . . . . . . . . . . 6
1.4.1 Sterowanie przejazdem kolejowym . . . . . . . . . . . . . . . . . . . . . . 6
1.4.2 Regulacji temperatury . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.3 Transmisja pakietw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Model dziaania Systemu Czasu Rzeczywistego . . . . . . . . . . . . . . . . . . . . 8
1.6 Sterowanie zdarzeniami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.7 Wymagania na system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.8 Werykacja i ocena Systemu Czasu Rzeczywistego . . . . . . . . . . . . . . . . . . 9
2 Wykad 2 [05.03.2004] 10
2.1 Zapewnianie terminowo sci wykonywania zada n . . . . . . . . . . . . . . . . . . . . 10
2.1.1 Procedura post epowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.2 Twierdzenie Liu&Laylanda - 1973 . . . . . . . . . . . . . . . . . . . . . . 11
2.1.3 Przykad szeregowania zada n . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.4 Inne twierdzenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.5 Symulacje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.6 Podej scie realistyczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Organizacja oprogramowania Systemu Czasu Rzeczywistego . . . . . . . . . . . . . 13
2.2.1 Cykliczny program sekwencyjny . . . . . . . . . . . . . . . . . . . . . . . . 13
3 Wykad 3 [12.03.2004] 15
3.1 Organizacja oprogramowania Systemu Czasu Rzeczywistego ci ag dalszy . . . . . . 15
3.1.1 Cykliczny program sekwencyjny - ci ag dalszy . . . . . . . . . . . . . . . . . 15
3.1.2 System dwuplanowy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.3 Systemy wielozadaniowe (multitasking) . . . . . . . . . . . . . . . . . . . . 18
3.2 Podsumowanie wst epu do Systemw Czasu Rzeczywistego . . . . . . . . . . . . . . 19
3.2.1 Ostre ograniczenia czasowe . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.2 agodne ograniczenia czasowe . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.3 Cechy Systemu Czasu Rzeczywistego . . . . . . . . . . . . . . . . . . . . . 20
4 Wykad 4 [19.03.2004] 21
4.1 Model budowy Systemu Operacyjnego . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.1.1 Standard POSIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.1.2 Denicja programu i procesu . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.1.3 Stany procesu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.1.4 Zdarzenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1.5 Tryby pracy systemu operacyjnego . . . . . . . . . . . . . . . . . . . . . . 23
4.1.6 Model budowy systemu operacyjnego opartego na mikroj adrze . . . . . . . . 23
4.1.7 Model budowy systemu operacyjnego opartego j adrze monolitycznym . . . . 24
2
5 Wykad 5 [26.03.2004] 26
5.1 Tablice systemowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.2 W atek a proces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.3 Model dziaania egzekutora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6 Wykad 6 [02.04.2004] 30
6.1 Tworzenie procesw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.1.1 Funkcja FORK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.1.2 Funkcje EXEC... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.2 Tworzenie w atkw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.3 Algorytmy szeregowania procesw . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.4 Mechanizm sygnaw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.5 Przegl ad sygnaw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7 Wykad 7 [16.04.2004] 36
7.1 Synchronizacja i komunikacja zada n . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.1.1 Semafory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.1.2 Anomalia synchronizacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
8 Wykad 8 [23.04.2004] 41
8.1 Synchronizacja i komunikacja zada n - cd . . . . . . . . . . . . . . . . . . . . . . . 41
8.1.1 Anomalia synchronizacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
8.1.2 Kolejki wiadomo sci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
8.1.3 Spotkanie (rendez-vous) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
9 Wykad 9 [07.05.2004] 46
9.1 Synchronizacja i komunikacja zada n - cd . . . . . . . . . . . . . . . . . . . . . . . 46
9.1.1 Komunikacja przez obszary pami eci wsplnej (shared memory object) . . . . 46
9.2 Rozszerzenia czasu rzeczywistego . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
9.2.1 Problemy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
9.2.2 Programowe liczniki czasu . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
9.3 System QNX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
10 Wykad 10 [21.05.2004] 51
10.1 System QNX - cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
10.1.1 Komunikacja i synchronizacja w systemie QNX . . . . . . . . . . . . . . . 51
10.1.2 Komunikacja ze sprz etem . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
10.1.3 Przerwania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
10.2 Przemysowe sieci miejscowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
10.2.1 Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
11 Wykad 11 [28.05.2004] 56
11.1 Przemysowe sieci miejscowe - cd . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
11.1.1 Warstwa linowa ( acza danych) . . . . . . . . . . . . . . . . . . . . . . . . . 56
11.2 Sie c PROFIBUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
11.2.1 Warstwa zyczna: sprz eg RS-485 . . . . . . . . . . . . . . . . . . . . . . . 60
11.2.2 Warstwa liniowa ( acza danych) . . . . . . . . . . . . . . . . . . . . . . . . 61
3
12 Wykad 12 [04.06.2004] 63
12.1 Sie c PROFIBUS - cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
12.1.1 Warstwa liniowa ( acza danych) - cd . . . . . . . . . . . . . . . . . . . . . . 63
12.1.2 Warstwa aplikacyjna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
13 Wykad 13 [15.06.2004] 71
13.1 Sie c PROFIBUS - cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
13.1.1 Warstwa aplikacyjna - cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
14 Wykad 14 [18.06.2004] 79
14.1 Rozproszony system steruj acy w praktyce . . . . . . . . . . . . . . . . . . . . . . . 79
Index 84
Rysunki 84
Literatura 85
4
1 Wykad 1 [27.02.2004]
1.1 Denicja Systemu Czasu Rzeczywistego
System Czasu Rzeczywistego (Real Time System) jest to system komputerowy, w ktrym
obliczenia prowadzane rwnolegle z przebiegiem zewn etrznego procesu maj a na celu nadzorowanie,
sterowanie lub terminowe reagowanie na zachodz acego w tym procesie zdarzenia.
(Denicja oparta o Standard Coputer Dictionary IEEE Std 610, 1990)
1.2 Charakterystyka System Czasu Rzeczywistego
Cechy charakteryzuj ace System Czasu Rzeczywistego:
Po aczenie z zewn etrzym procesem (sterowanie instalacj a)
Ograniczenia czasowe, np.:
zadany termin zako nczenia akcji
zadany okres powtarzania czynno sci
zadane op znienie
Gro zne konsekwencje przekroczenia ogranicze n:
utrata zdrowia lub zycia
straty nansowe
1.3 Klasykacja Systemw Czasu Rzeczywistego
1.3.1 Hard Real-Time System
Hard Real-Time System system o ostrych (twardych) ograniczeniach czasowych
Przykady:
systemy sterowania instalacjami przemysowymi, transportowymi, wojskowymi czy me-
dycznymi
systemy dowodzenia, np. wspomaganie kontrolerw ruchu lotniczego
Opis strat:
grozi utrat a zycia lub zdrowia
straty rosn a skokowo po przekroczeniu ogranicze n
Kryteria oceny:
ocena w najmniej korzystnym (najgorszym) przypadku
ocena przy maksymalnym obci a zeniu
5
1.3.2 Soft Real-Time System
Soft Real-Time System system o agodnych (mi ekkich) ograniczeniach czasowych
Przykady:
interakcyjne systemy komercyjne, np. banki, rezerwacja miejsc lotniczych
systemy telekomunikacyjne
elektronika u zytkowa, np. odtwarzacz CD
Opis strat:
straty nansowe
straty rosn a proporcjonalnie do op znienia
Kryteria oceny:
ocena dotyczy parametrw przeci etnych
ocena przy przeci etnym obci a zeniu
1.4 Przykady Systemw Czasu Rzeczywistego
1.4.1 Sterowanie przejazdem kolejowym
Przykad opisuje system odpowiedzialny za sterowanie rogatkami i semaforami na przeje zdzie
kolejowym. Schemat jak na rysunku nr 1.
pociag
semafor
rogatka
rogatka
semafor
Rysunek 1: Przejazd kolejowy
Ograniczenia czasowe:
zamkni ecie rogatki musi nast api c w czasie < t
1
,
w przeciwnym wypadku nast api katastrofa
wy swietlenie zielonego swiata w czasie < t
2
,
w przeciwnym wypadku nast api konieczno s c awaryjnego hamowania
Uwagi:
system nie musi by c szybki
system nie mo ze przekroczy c ogranicze n
6
Zdarzenie Reakcja
poci ag zbli za si e zamkn a c rogatk e
wy swietli c zielone swiato
poci ag odje zd za wy swietli c czerwone swiato
otworzy c rogatk e
1.4.2 Regulacji temperatury
Przykad opisuje system odpowiedzialny za regulacj e temeperatury w pomieszczeniach (np. w
inteligentnych budynkach). Schemat jak na rysunku nr 2.
u
Regulator
Termometr
Grzejnik
T
o
Rysunek 2: Regulacja Temperatury
Wymagania:
stabilizacja temperatury z dokadno sci a 1

C
Regulator:
PID (z reguy PI, PID w serwomechanizmach):
u(t) = K
p

e(t) +
1
T
i

t
0
e()d + T
d
de(t)
dt

u
n
= K
p

e
n
+
1
T
i
e
k
t + T
d
e
t

implementacja PID:
repeat every t
. . .
suma = suma + e
n
u
n
= K
p
e
n
+ K
i
suma + K
d
(e
n
e
old
)
e
old
= e
n
. . .
end repeat
Uwagi:
wymagane jest utrzymanie staego rytmu t, zazwyczaj rwne 100 ms
7
1.4.3 Transmisja pakietw
Przykad opisuje system dyskretny odpowiedzialny za transmisj e pakietw w sieci. Schemat jak
na rysunku nr 3.
Nadawca Odbiorca
Komunikat
Potwierdzenie
Rysunek 3: Transmisja pakietw
Zdarzenie Reakcja
O odbir komunikatu wysanie potwierdzenia
N odbir komunikatu wysanie nast epnego komunikatu
N brak potwierdzenia retransmisja
Ograniczenia czasowe:
wysanie potwierdzenia w czasie < t
1
wysanie retransmisji w czasie > t
2
od nadania (czas oczekiwania na potwierdzenia)
t
1
> czas transmisji komunikatu
t
2
> t
1
+ czas transmisji komunikatu
1.5 Model dziaania Systemu Czasu Rzeczywistego
dziaanie taktowane czasem (time-triggered system)
dziaanie taktowane zdarzeniami (event-triggered),
tzw. systemy reaktywne (reactive systems)
1.6 Sterowanie zdarzeniami
Zdarzenie sytuacja w procesie zewn etrznym wymagaj aca interakcji systemu
Zadanie algorytm, modu programu wykonywany przez system rwnolegle z in-
nymi zadaniami
Reakcja zmiana stanu, sygna steruj acy lub komunikat do obsugi
1.7 Wymagania na system
okre slaj a scie zki pochodzenia zdarzenie - reakcja (stimulus response path)
narzucaj a ograniczenia czasowe
8
Reakcja Zadanie Zdarzenie
t
Rysunek 4: Sterowanie zdarzeniami
1.8 Werykacja i ocena Systemu Czasu Rzeczywistego
poprawno s c funkcjonalna
terminowo s c wykonania
9
2 Wykad 2 [05.03.2004]
2.1 Zapewnianie terminowo sci wykonywania zada n
Rodzaje zada n:
zadania cykliczne, powtarzane ze staym, zadanym okresem (cycle) c
i
(np. sterowania temperatur a [rodzia 1.4.2])
zadania sporadyczne (acykliczne), wykonywane w odpowiedzi na zdarzenie, z narzuco-
nym terminem zako nczenia (deadline) d
i
(np. sterowania rogatkami i semaforami [rodzia 1.4.1])
Zadania sporadyczne sprowadza si e do cyklicznych poprzez okre slenie minimalnego odst epu mi e-
dzy zadaniami i przyjmuje si e go jako okres powtarzania c
i
. Wa zne jest, ze ka zde zadanie po okresie
c
i
musi si e zako nczy c w ramach tego okresu (d
i
= c
i
).
2.1.1 Procedura post epowania
1. Okre slenie zada n {z
i
} i zdeniowanie ogranicze n:
okres cyklu c
i
termin zako nczenia d
i
2. Oszacowanie czasu wykonywania zada n {t
i
}
3. Zaplanowanie kolejno sci wykonywania zada n:
r eczne rozplanowywanie kolejno sci (pre-run scheduling)
automatyczne planowanie kolejno sci przez system operacyjny (run-time scheduling):
szeregowanie priorytetowe (najpopularniejsze w systemach czasu rzeczywistego):
wedug wa zno sci
wedug pilno sci wykonania (RMS Rate Monotonic Scheduling),
wysoki priorytet maj a zadania o najkrtszym czasie wykonywania
szeregowanie wedug terminw wykonywania (EDF Earliest Deadline First),
algorytm ten jest trudniejszy do realizacji, gdy z ci e zko jest okre sli c terminy zako n-
czenia wszystkich zada n.
4. Analiza projektu:
dany jest zbir zada n {z
i
} = z
1
, z
2
, z
3
, ..., z
n
dla ka zdego rodzaju zadania mamy okre slone:
czas cyklu c
i
czas wykonania t
i
problem polega na znalezieniu takiego uszeregowania zada n, ktre gwarantuje dotrzyma-
nie terminw zako nczenia wszystkich zada n (dotrzymanie okresw c
i
).
10
2.1.2 Twierdzenie Liu&Laylanda - 1973
Je zeli zachodzi nierwno s c:
n

i=1
t
i
c
i
n(2
1
n
1)
oraz szeregowanie zada n jest zgodne z pilno sci a (algorytm RMS - priorytet tym wy zszy im krtszy
czas c
i
) to wszystkie zadania zostan a wykonane w terminie.
Uwagi:

t
i
c
i
obci a zenie wnoszone przez jedno zadanie
warunek, ze aczne obci a zenie 70% jest warunkiem dostatecznym szeregowania zada n w
algorytmie RMS, nie jest za s warunkiem koniecznym (wynika to ze skierowania implikacji)
system powinien mie c 30% rezerwy mocy
szeregowalno s c w zale zno sci od obci a zenia mo zna przedstawi c w sposb nast epuj acy:
algorytm RMS ? zaden
obci a zenie ... 70% ... 100% ...
2.1.3 Przykad szeregowania zada n
zadanie t
i
c
i
t
i
c
i
obci a zenie
A 8 16
1
2
50%
B 10 25
2
5
40%
acznie 90%
RMS - Rate Monotonic Scheduling (rysunek nr 5)
RMS jest algorytmem o staych priorytetach.
Rozkad priorytetw:
A - wysoki priorytet (bo cz e sciej, krtszy czas wykonywania)
B - niski priorytet
RMS jest algorytmem bardziej popularnym i atwiejszym w realizacji.
Wniosek:
Obci a zenie systemu wynosio 90%, co okazo si e jest warto sci a za du z a i algorytm RMS si e
wyo zy.
11
priorytet
czas
8 16 2426
25
32
8
8/10
8
2
A
B
zadania gotowe
do wykonania
przekroczenie okresu
wykonywania zadania
Rysunek 5: Szeregownia algorytmem RMS
EDF - Earliest Deadline First (rysunek nr 6)
EDF jest algorytmem o zmiennych priorytach.
EDF jest algorytmem trudniejszym do zrealizowania.
priorytet
8 16 24 32
8
A
B
zadania gotowe
do wykonania
czas 40 48 50
6
2 8/10
11
6/10
8
4/10
2
priorytet priorytet
B>A A>B
bo A juz jest czesciowo wykonane
oba zadania gotowe, ale lepiej
Rysunek 6: Szeregownia algorytmem EDF
Wniosek:
Pomimo du zego obci a zenia systemu, algorytmem EDF udao si e uszeregowa c zadania. Jest
to dobry dowd na to, ze twierdzenie Liu&Laylanda mwi o warunku dostatecznym, a nie
koniecznym szeregowalno sci.
2.1.4 Inne twierdzenia
Udowodniono twierdzenia:
algorytm RMS jest optymalny w srd algorytmw o staych priorytetach
(twierdzenie Liu&Laylanda - 1973)
algorytm EDF jest optymalny w srd algorytmw o zmiennych priorytetach
(twierdzenie Spuri, Buttazzo, Sensini - 1993)
je sli

n
i=1
t
i
c
i
1 to algorytm EDF uszereguje zadania
12
2.1.5 Symulacje
Przeprowadzane symulacje dla losowo generowanych zbiorw zada n wykazuj a, ze algorytm RMS
uszereguje zadania je sli:
n

i=1
t
i
c
i
0.88
jednak nie jest to w zaden sposb udowodnione. Zatem w systemach, gdzie dotrzymanie termi-
nowo sci zada n nie jest konieczne (np. odtwarzacz MP3) zakada si e, ze algorytmem RMS mo zna
szeregowa c zadania systemu o obci a zeniu okoo 88%.
2.1.6 Podej scie realistyczne
dany jest zbir zada n {z
i
}
dla ka zdego zadania okre slamy:
okres cyklu c
i
= d
i
sredni czas wykonywania t
ia
maksymalny czas wykonywania t
im
Zalecenia:
1. Wyodr ebni c grup e zada n krytycznych (ostre ograniczenia czasowe) i pozostaych (agodne
ograniczenia czasowe).
2. Nada c zadaniom krytycznym wy zsze priorytety i uszeregowa c je zgodnie z algorytmem RMS,
a nast epnie wykaza c szeregowalno s c dla maksymalnych czasw wykonywania.
3. Uszeregowa c pozostae zadania zgodnie z RMS i wykaza c szeregowalno s c dla srednich czasw
wykonywania.
2.2 Organizacja oprogramowania Systemu Czasu Rzeczywistego
2.2.1 Cykliczny program sekwencyjny
Cykliczny programsekwencyjny (rysunek nr 7 jest bardzo popularny wurz adzeniach powszech-
nego u zytku, np. tak zrealizowane maj a oprogramowanie sterowniki PLC.
zadanie czas wykonywania czas powtarzania
(a) pomiar 20 ms 100 ms
(b) obliczenia 30 ms 100 ms
(c) wyj scie 10 ms 100 ms
suma czasw 60 ms
13
czy 100ms
NIE
TAK
(a) pomiar
(b) obliczenie
(c) wyjscie
komunikacja?
TAK
NIE
(d) komunikacja
ekstra "slot"
czasowy
Rysunek 7: Cykliczny program sekwencyjny
Zalety:
Pena gwarancja terminowo sci.
Brak jakichkolwiek wspbie zno sci, a co za tym idzie brak jakiejkolwiek synchronizacji zada n.
Mo zliwo s c dodawania ekstra slotw czasowych na czynno sci zwi azane ze zdarzeniami.
14
3 Wykad 3 [12.03.2004]
3.1 Organizacja oprogramowania Systemu Czasu Rzeczywistego ci ag dalszy
3.1.1 Cykliczny program sekwencyjny - ci ag dalszy
zadanie czas wykonywania czas powtarzania obci a zenie
(a) pomiar 20 ms 100 ms 20%
(b) obliczenia 30 ms 200 ms 15%
(c) wyj scie 10 ms 50 ms 20%
(d) komunikacja 40 ms 200 ms 20%
suma czasw 100 ms 75%
Dla takiego wariantu przykadowy pre-run scheduling mo ze wygl ada c nast epuj aco:
0 1 2 3
(a) X X
(b) X
(c) X X X X
(d) X
suma czasu 30 ms 40 ms 30 ms 50 ms
Schemat drugiej wersji cyklicznego programu sekwencyjnego na rysunku nr 8
Uwagi:
Gwarancja dotrzymania ogranicze n czasowych
Brak problemw synchronizacyjnych
Mo zliwo s c uwzgl edniania zdarze n (rysunek nr 9)
Nie ma potrzeby wprowadzania przerwa n
15
NIE
TAK
czy 50ms
TAK
TAK
TAK
NIE
NIE
NIE
t=(t+1)mod 4
(c) wyjscie
t=0 lub 2 (a) pomiar
t=1 (b) obliczenia
(d) komunikacja t=3
(0...3)
t licznik kwantw czasu
Rysunek 8: Cykliczny program sekwencyjny (2 wersja)
t=0 lub 2
czas wolny
czy jest zdarzenie
NIE TAK
obsluga zdarzenia
Rysunek 9: Obsuga zdarzenia
16
3.1.2 System dwuplanowy
System dwuplanowy (Foreground / Background System)
Podzia zada n na dwie grupy:
Plan I czynno sci taktowane czasem, np. wykonywane po przerwaniu zegarowym, odpowie-
dzialne za bezpiecze nstwo (ostre ograniczenia czasowe)
Plan II (to) czynno sci wykonywane w czasie wolnym (agodne ograniczenia czasowe)
Zadanie czas wykonania cykl obci a zenie
(a) pomiar 20 ms 200 ms 10%
(b) obliczenie 30 ms 200 ms 15%
(c) wyj scie 10 ms 200 ms 5%
PLAN I
(d) diagnostyka 200 ms 2 s 10%
(e) raport 1 s 1 min 1, 5%
PLAN II
aczne obci a zenie 41, 5%
(a) pomiar
(b) obliczenie
(c) wyjscie
zlicz czas
zegar
Rysunek 10: System Dwuplanowy - Foreground
17
TAK
TAK
NIE
NIE
czy pora ?
(2 s)
czy pora ?
(1 min)
(d) diagnostyka
(e) raport
Rysunek 11: System Dwuplanowy - Background
czas
A
B
C
priorytet
zakonczenie lub zawieszenie
wznowienie B
wznowienie A zakonczenie A
kontynuacja B
Rysunek 12: Wsprz edne wykonywanie zada n przez podzia czasu procesora
Uwagi:
gwarancja terminowo sci dla zada n planu pierwszego oraz mo zliwo s c wyst apienia nieprzewidy-
wanych przerwa n w tle mo zliwa dokadna analiza czasowa
Potrzebny system operacyjny:
pomiar czasu
obsuga przerwa n
komunikacja (synchronizacja) zada n
3.1.3 Systemy wielozadaniowe (multitasking)
Wiele zada n:
sterowanie
archiwizowanie i dokumentowanie
GUI
komunikacja w sieci
18
Zadania nie s a ju z tylko programami, ktre wykonuj a si e od pocz atku do ko nca bez przeszkd, lecz
maj a okresy zawieszania i oczekiwania na warunki zewn etrzne.
Nie mo zna rozplanowa c kolejno sci wykonywania zada n przed uruchomieniem programu. Kolejno s c
wykonywania zada n ustala System Operacyjny, bior ac pod uwag e priorytety przypisane zadaniom
przez programist e.
Uwagi:
Trudna (niemo zliwa) analiza kolejno sci wykonania zada n brak gwarancji dotrzymania ogra-
nicze n czasowych.
Trudne oszacowanie czasu wykonywania zada n
Brak gwarancji terminowo sci (lub gwarancja dla w askiego zbioru zada n)
3.2 Podsumowanie wst epu do Systemw Czasu Rzeczywistego
3.2.1 Ostre ograniczenia czasowe
Ostre ograniczenia czasowe system gwarantuje dotrzymanie ogranicze n czasowych.
zastosowanie - systemy maj ace wpyw na bezpiecze nstwo:
systemy sterowania instalacjami przemysowymi, transportowymi, wojskowymi czy me-
dycznymi
systemy dowodzenia, np. wspomaganie kontrolerw ruchu lotniczego
implementacja:
program sekwencyjny
systemy dwuplanowe
przykady urz adze n steruj acych:
sterowniki PLC
sterowniki dedykowane
3.2.2 agodne ograniczenia czasowe
agodne ograniczenia czasowe system stara si e dotrzymywa c ogranicze n czasowych, zadania
pilne wykonywane s a w pierwszej kolejno sci.
zastosowanie - systemy maj ace wpyw na bezpiecze nstwo:
interakcyjne systemy komercyjne, np. banki, rezerwacja miejsc lotniczych
systemy telekomunikacyjne
elektronika u zytkowa, np. odtwarzacz CD
implementacja:
systemy wielozadaniowe
19
3.2.3 Cechy Systemu Czasu Rzeczywistego
deterministyczny czas operacji systemowej (kontrprzykad pami e c wirtualna)
kontrola czasu (kontrola operacji potencjalnie niesko nczonych)
scisa kontrola programisty nad mechanizmem szeregowania zada n
wspomaganie wsppracy zada n (komunikacja i synchronizacja) i ograniczanie wynikaj acego
st ad niedeterminizmu (ktre zadanie wznowi c po podniesieniu semafora)
dost ep do przerwa n i urz adze n we/wy
konguralno s c systemu i zdolno s c do pracy w r znych konguracjach (host-target)
20
4 Wykad 4 [19.03.2004]
4.1 Model budowy Systemu Operacyjnego
4.1.1 Standard POSIX
Standard POSIX (IEEE/ANSI 1003.1) opisuje system operacyjny od strony u zytkownika, czyli
API (Aplication Programming Interface) systemu operacyjnego.
1. Podstawowe rekomendacje przej ete z UNIX-a:
wielodost ep: sesja, kontrola dost epu, zmienne srodowiskowe
wielozadaniowo s c: tworzenie i usuwanie procesw, zawieszanie i op znianie, sygnay,
w atki, drzewo procesw
system plikw: przestrze n nazw scie zkowych, kontrola dost epu, podstawowe operacje,
potoki
terminal: relacje terminal-sesja-proces, operacje we/wy
2. Zalecenia do pracy w Systemie Czasu Rzeczywistego
algorytmy szeregowania priorytetowego
synchronizacja i komunikacja zada n (semafory i kolejki wiadomo sci)
statyczny przydzia pami eci (bez pami eci wirtualnej)
dost ep do obszarw pami eci wsplnej
programowe liczniki czasu (realizacja cykliczno sci)
4.1.2 Denicja programu i procesu
System wielozadaniowy wykonuje wspbie znie wiele zada n.
program statyczny zapis algorytmu w j ezyku programowania
proces dynamiczne wykonywanie programu zadanie
Proces:
program
obszar danych
tablica stanu procesu
4.1.3 Stany procesu
gotowy gotowy do wykonania, tzn. wszystkie warunki do wykonania s a spenione, zasoby
przydzielone, proces czeka tylko na procesor
wykonywany procesor wykonuje instrukcje zadania
zawieszony jaki s warunek wykonywania zadania nie jest speniony, np. brak zasobu na ktry
proces czeka
martwy proces zako nczy wykonywanie, oczekuje na usuni ecie z systemu, tzn. ze pozostay
jeszcze po nim jakie s slady
21
M W
G
Z
utworz
usun zakoncz
w
y
k
o
n
a
j
w
s
t
r
z
y
m
a
j
zawies
wznow
Rysunek 13: Graf stanw zadania
4.1.4 Zdarzenia
Akcja systemu operacyjnego polega na rozpoznaniu zdarze n i reagowaniu na nie, natomiast reakcja
na zmianie stanu jakiego s zadania.
Rozdzaje zdarze n
1. Zdarzenia zewn etrzne:
odpowiadaj a wyst apieniom sytuacji wyj atkowych w otoczeniu komputera
przykad: zako nczenie operacji we/wy
sygnalizowane s a z reguy przerwaniami zewn etrznymi, przez przerwania zgaszane przez
urz adzenia wsppracuj ace, np. wy aczniki kra ncowe
2. Zdarzenia czasowe:
sygnalizuj a upyw okre slonych odcinkw czasu
przykad: upyw czasu t podanego w instrukcji Delay (t) wykonywanej przez zadanie
sygnalizowane s a z reguy przez modu obsugi zegara
3. Zdarzenia wewn etrzne:
odpowiadaj a b edom (wyj atkom) powstaj acym podczas wykonywania programw
przykad: dzielenie przez zero
sygnalizowane przez przerwania wewn etrzne, czyli przerwania generowane przez odpo-
wiednie ukady komputera, tj. koprocesor arytmetyczny lub zgaszane przez podpro-
gramy, np. podprogram dzielenia w podwjnej precyzji
4. Zdarzenia programowe:
odpowiadaj a zdarzeniom zachodz acym podczas wykonywania zada n
przykad: wysanie wiadomo sci do innego w eza sieci
generowane przez jawne odwoania zada n do systemu operacyjnego, przerwania progra-
mowe (trap)
22
4.1.5 Tryby pracy systemu operacyjnego
master w tym trybie wykonywane s a rozkazy uprzywilejowane, instrukcje obsugi pami eci,
procesora, czy operacji we/wy
user program u zytkownika wykonuje rozkazy uprzywilejowane poprzez przerwania progra-
mowe, przekazuj ac sterowanie do systemu operacyjnego , ktry wykona instrukcje i powrci
jak ze zwykej funkcji
user
master
SO
przerwanie
Rysunek 14: Tryby pracy SO
4.1.6 Model budowy systemu operacyjnego opartego na mikroj adrze
. . . . . .
poziom zadan
poziom egzekutora
Zadania uzytkownika Zadania systemowe
mikrojadro
egzekutor wielozadaniowy
system operacyjny
filesystem
sterownik
dysku
write()
Rysunek 15: Model budowy systemu operacyjnego opartego na mikroj adrze
Funkcje j adra:
podzia czasu procesora
elementarna komunikacja zada n
Przykady zada n systemowych:
sterownik dyskw
system plikw
sterownik karty sieciowej
administrator sieci
administrator zada n
23
administrator narz edzi
komunikacja zada n
Dziaanie systemu jest zgodne z modelem:
klient serwer
uzytkownika
proces administrator
(proces systemowy)
mikrojadro
Rysunek 16: Model budowy systemu operacyjnego opartego na mikroj adrze
Obsluga zdarzen
Program szeregujacy
Monitor przerwan
procesow
zmiany stanow
podprogramy
zadan
stanow
tablice
EGZEKUTOR
WIELOZADANIOWY
przerwanie sygnalizujace zdarzenie
do wybranego zadania
(powrot z przerwania)
n
i
e

b
e
d
a
c
y
c
h

z
d
a
r
z
e
n
i
a
m
i
o
b
s
l
u
g
a

p
r
z
e
r
w
a
n
Rysunek 17: Model budowy egzekutora wielozadaniowego
4.1.7 Model budowy systemu operacyjnego opartego j adrze monolitycznym
W systemie operacyjnym opartym na j adrze monolitycznym, j adro jest bibliotek a funkcji wyko-
nywanych w ciele zadania (zasada samoobsugi).
Zalety mikroj adra
modularyzacja i bezpiecze nstwo
krtki czas operacji j adra
atwo s c rekonguracji
Zalety j adra monolitycznego
wysoka przepustowo s c
24
procesor
pamiec
urzadzenia
procesy
jadro
Rysunek 18: Model budowy systemu operacyjnego opartego na j adrze monolitycznym
G - user
W - user
W - system Z - system
wykonaj wstrzymaj
wejdz do jadra
wyjdz z jadra
wznow
zawies
Rysunek 19: Graf stanw zadania w systemie opartym na j adrze monolitycznym
Wady j adra monolitycznego
dugi, trudny do okre slenia czas operacji j adra (z wy aczonymi przerwaniami)
25
5 Wykad 5 [26.03.2004]
5.1 Tablice systemowe
1. Tablica stanu procesora zwana inaczej blokiem kontrolnym zadania (TCB Task Control
Block), desktryptorem zadania (TD task descriptor) lub tablic a stanu zadania (TST Task
state table) zawiera metryczk e zadania, czyli wszystkie informacje o nim:
priorytet zadania (task priority)
stan zadania
kontekst zadania (PSW Program Status World) zawarto s c rejestrw procesora
opis zale zno sci czasowych
opis przydzielonych obszarw pami eci
opis zasobw wykorzystywanych przez zadanie
2. Lista zada n gotowych (RL - Ready List) zawieraj aca adresy tablic stanu zada n gotowych do
wykonania
3. Lista zada n zawieszonych ka zda przyczyna zawieszenia posiada wasn a, odr ebn a list e
4. Identykator zadania (PID process identier, TID task identier) wskazuje zadania,
pozwala systemowi znale z c tablic e stanu szukanego zadania
5. Identykator zadania wykonywanego (RT - Running Task)
6. Inne tablice systemowe:
katalog plikw
mapa zaj eto sci pami eci
5.2 W atek a proces
Proces (process, task):
program
zasoby
W atek (thread):
pojedyncza scie zka wykonywania programu sekwencyjnego
wielow atkowo s c oznacza wykonywanie wspbie zne wielu w atkw w obr ebie jednego procesu
w atek mo ze by c: gotowy-wykonywany-zawieszony
26
utworz proces
przydziel zasoby, otworz
tablice stanu zadania,
identyfikator zadania (PID)
inicjuj kontekst
(licznik rozkazow, rejestr bazowy)
stan = G
wpisz zadanie na liste RL
szeregowanie
zakoncz proces (PID)
znajdz tablice stanu zadania
na podstawie PID
zwolnij zajmowane zasoby
stan = M
szeregowanie
usun zadanie z listy RL
zawies proces (PID)
znajdz tablice stanu zadania
na podstawie PID
stan = Z
szeregowanie
usun zadanie z listy RL
wznow proces (PID)
znajdz tablice stanu zadania
na podstawie PID
stan = G
szeregowanie
wpisz zadanie na liste RL
usun proces (PID)
znajdz tablice stanu zadania
na podstawie PID
wroc
usun tablice stanu
oraz
identyfikator zadania (PID)
Rysunek 20: Tworzenie, zaka nczanie, zawieszanie, wznawianie i usuwanie procesu
5.3 Model dziaania egzekutora
Tworzenie, zaka nczanie, zawieszanie, wznawianie i usuwanie procesu przedstawione s a na ry-
sunku nr 20, natomiast program szereguj acy na rysunku nr 21.
Istotnym problemem implementacji jest zapewnienie egzekutorowi wy acznego dost epu do da-
nych systemowych. Problem ten mo ze wyst api c w dwch aspektach:
1. zadania u zytkowe mog a prbowa c zmienia c tablice lub programegzekutora skuteczna ochrona
przed tak a ewentualno sci a wymaga wykorzystania sprz etowego mechanizmu ochrony pami eci.
2. zgoszenie przerwania podczas wykonywania programu egzekutora mo ze doprowadzi c do wstrzy-
mania bie z acego wykonywania egzekutora i rozpocz ecia nowego wykonania, doprowadzaj ac w
efekcie do wspbie znego wykonania dwch kopii egzekutora.
27
PID = RT
wybierz z listy RL zadanie o PID
o najwyzszym priorytecie
wpisz kontekst zadania RT
do jego tablicy stanu
odtworz kontekst zadania PID
z jego tablicy stanu
RT = PID
program szeregujacy
TAK
NIE
powrot do zadania RT
przelaczanie
kontekstu
wstrzymaj
wykonaj
Rysunek 21: Schemat programu szereguj acego
W systemie jednoprocesorowym mo ze by c skutecznie rozwi azany przez wy aczenie ukadu prze-
rwa n podczas wykonania egzekutora.
W systemie wieloprocesorowym ze wspln a pami eci a sytuacja jest bardziej zo zona. Poszcze-
glne procesory dziaaj a niezale znie i mog a w tym samym czasie przej s c do wykonywania programu
egzekutora. Istniej a dwa konkurencyjne rozwi azania:
1. INTEL zajmowanie dost epu do magistrali:
Bus Lock
Bus Unlock
Bezpo srednie wykorzystanie tych operacji do uzyskania wy acznego dost epu do danych sys-
temowych, prowadzioby do niepotrzebnego blokowania caej pami eci i znacznego obni zenia
wydajno sci systemu. Dlatego lepszym rozwi azaniem jest implementacja semaforw binarnych,
zapewniaj acych wzajemne wykluczanie wybranych fragmentw programu bez blokowania ma-
gistrali systemowej na dugi czas (rysunek nr 22).
Semafor binarny jest dwuwarto sciow a zmienn a przechowywan a w pami eci wsplnej, opi-
28
suj ac a stan zasobu lub urz adzenia:
B =

1 dost ep wolny
0 dost ep zabroniony
2. MOTOROLA specjalna niepodzielna instrukcja procesora exchange zamieniaj aca zawarto s c
komrki pami eci z zawarto sci a pami eci.
B = 1
BUS LOCK
B = 1
B = 0
BUS UNLOCK
BUS UNLOCK
uzyskaj dostep
NIE
TAK
NIE
TAK
zwolnij dostep
B = 1
sekcja
krytyczna
-
operacja
atomowa
Rysunek 22: Schemat semafora aktywnego
29
6 Wykad 6 [02.04.2004]
6.1 Tworzenie procesw
Utworzenie nowego procesu polega na zaadowaniu programu tego procesu do pami eci operacyj-
nej, wst epnym wypenieniu struktur systemowych opisuj acych stan procesu i okre sleniu numerycz-
nego identykatora (PID - Proces identier).
6.1.1 Funkcja FORK
# i nc l ude <s ys / t ypes . h>
# i nc l ude <uni s t d . h>
p i d _ t f ork ( voi d )
Funkacja fork tworzy i uruchamia nowy proces, b ed acy dokadn a kopi a procesu macierzystego.
Utworzony proces potomny wykonuje si e wspbie znie z procesem macierzystym. Mo zna powie-
dzie c, ze jest to rozdwojenie procesu, o obszarze programu i danych takim samym, a z innymi PIDem.
Program mo ze by c dzielony, lub czasem kopiowany.
program
dane
tablica
stanu
PID PID2
czasem
kopiowanie
kopiowanie
PROCES 1 PROCES 2
Rysunek 23: Tworzenie procesu - FORK
Przykadowe u zycie funkcji fork:
x = f ork ( voi d )
i f ( x==0)
{
/ pr ogr am pr oc e s u pot omnego /
}
e l s e
{
/ pr ogr am pr oc e s u ma c i e r z ys t e go /
}
30
Jak wida c w powy zszym przykadzie, po tym co zwrci fork mo zna pozna c, czy jest to proces po-
tomny, czy macierzysty:
x =

pid2 zwraca PID procesu potomnego w procesie macierzystym


0 zwraca w procesie potomnym
6.1.2 Funkcje EXEC...
# i nc l ude <proces s . h>
i n t e xe c l ( pgm, ar g0 , ar g1 , . . . , ar gn , NULL) ;
i n t e xe c l e ( pgm, ar g0 , ar g1 , . . . , ar gn , NULL, envp ) ;
i n t exec l p ( pgm, ar g0 , ar g1 , . . . , ar gn , NULL) ;
i n t e xe c l pe ( pgm, ar g0 , ar g1 , . . . , ar gn , NULL, envp ) ;
i n t execv ( pgm, ar gv ) ;
i n t execve ( pgm, ar gv , envp ) ;
i n t execvp ( pgm, ar gv ) ;
i n t execvpe ( pgm, ar gv , envp ) ;
pgm nazwa pliku
arg0, ..., argn argumenty
argv[] tablica argumentw
envp[] ustawienia srodowiska
Funkcje z serii execxxx powoduj a odczytanie programu pgm, z argumentami arg0, ..., argn lub
argv[] i utworzenie procesu, wykonuj acego ten program. Je zeli operacja zako nczy si e sukcesem,
to proces macierzysty, ktry wywoa funkcj e exec zostanie usuni ety, a jego miejsce zajmie proces
potomny, wykonuj acy si e z tym samym identykatorem PID.
Dokadny opis dziedziczenia parametrw srodowiska, przy tworzeniu nowych procesw znajduje si e
na stronie 27 w Laboratorium systemu QNX [2].
6.2 Tworzenie w atkw
# i nc l ude <pt hread . h>
i n t pt hread_creat e ( p t h r e a d _ t t hr e a d ,
c ons t p t h r e a d _ a t t r _ t a t t r ,
voi d ( s t a r t _ r o u t i n e ) ( voi d ) ,
voi d ar g ) ;
thread identykator pozwalaj acy odwoa c si e do w atku
attr atrybuty, wymagaj ace inicjalizacji oraz ustawienia przed wywoaniem pthread_create
start_routine gwna funkcja w atku, ciao w atku
arg argumenty funkcji start_routine
Inne funkcje zwi azane z w atkami:
31
i n t pt hread_j oi n ( p t h r e a d _ t t hr e a d ,
voi d v a l u e _ p t r ) ;
Funkcja pthread_join pozwala w programie gwnym oczekiwa c na zako nczenie w atkw.
voi d pt hr e ad_e xi t ( voi d v a l u e _ p t r ) ;
Funkcja pthread_exit zako nczenie w atku.
i n t pt hread_det ach ( p t h r e a d _ t t h r e a d ) ;
Funkcja pthread_exit zezwolenie na zwolnienie pami eci, ktr a w atek zaj a.
6.3 Algorytmy szeregowania procesw
Wchodz acy wskad j adra egzekutor szereguje procesy Gotowe na poziomach priorytetw(wQNX
s a to 32 poziomy). Procesy o wy zszym poziomie priorytecie zawsze wywaszczaj a procesy o pozio-
mie ni zszym. Procesy na tym samym poziomie priorytetw mog a by c szeregowane zgodnie z jedym
trzech r znych algorytmw.
Algorytm karuzelowy (RR - Round Robin) procesy wybiera si e do wykonywania kolejno,
przy czym ka zdy z nich otrzymuje ograniczony kwant czasu t. Je zeli wykonywany proces nie
zako nczy si e lub nie zawiesi si e wcze sniej, to w chwili wyczerpania kwantu system operacyjny
wywaszcza go i podejmuje wykonanie nast epnego procesu.
Cechy charakterystyczne:
stay priorytet
stay kwant czasu t
Algorytm FIFO (First In First Out) do wykonania wybiera si e proces najdu zej oczekuj acy
w stanie Gotowy. Wybrany proces wykonuje si e a z do zako nczenia lub zawieszenia.
Cechy charakterystyczne:
stay priorytet
brak wywaszczania w ramach poziomu
gwn a zalet a jest zminimalizowanie liczby prze acze n procesora
Algorytm adaptacyjny procesy wybiera si e do wykonania kolejno, podobnie jak w algoryt-
mie karuzelowym. Po wyczerpaniu kwantu czasu system operacyjny wywaaszcza wykony-
wany proces i obni za jego priorytet o 1. Je zeli wykonanie procesu o obni zonym priorytecie nie
zostanie podj ete w ci agu 2s, jego priorytet podnosi si e o 1 (ale nigdy powy zej oryginalnego
priorytetu). Proces zawieszony odzyskuje natychmiast swj oryginalny priorytet.
Cechy charakterystyczne:
zmienny priorytet
stay kwant czasu t
manipulacja priorytetami aby przyspieszy c dziaanie
Standard POSIX zakada konieczno s c implementacji algorytmw karuzelowego (RR) i FIFO,
dodatkowo producent mo ze sobie doda c dowolny inny, najcz e sciej jest to algorytm adaptacyjny.
32
W chwili uruchomienia nowy proces dziedziczy priorytet po procesie macierzystym. W systemie
QNX, standardowo, procesy uruchamiane przez shell otrzymuj a priorytet 10. Zarwno priorytet, jak i
algorytm szeregowania stanowi a parametry aktualnie wykonywanego procesu i mog a by c dynamicz-
nie zmieniane podczas pracy systemu za pomoc a odpowiednich funkcji systemowych. Oznacza to,
ze decyzja o wyborze algorytmu szeregowania jest lokalna w procesie.
6.4 Mechanizm sygnaw
Sygnay s a podstawowym srodkiem informowania procesw o b edach i nienormalnych stanach
powstaj acych podczas ich wykonywania. Funkcjonalnie, sygnay przypominaj a wi ec przerwania pro-
gramowe, generowane przez programy j adra, procesy systemowe i procesy u zytkowe. Wygenero-
wany sygna jest dostaczony przez j adro do procesu, dla ktrego jest przeznaczony. Sposb reakcji
procesu na dostarczony sygna zale zy od wybranego sposobu obsugi. Je zeli nie zostao to okre slone
inaczej, system operacyjny podejmuje akcj e domy sln a, ktra polega na og na zako nczeniu proceu.
Alternatywnie, proces mo ze zignorowa c dostarczony sygna lub zdeniowa c dla niego wasn a funk-
cj e (podprogram obsugi). W tym ostatnim wypadku, dostarczenie sygnau powoduje przerwanie
normalnego toku wykonywania procesu i przekazanie sterowania do funkcji obsugi. Po zako nczeniu
funkcji obsugi, wykonywanie procesu kontynuuje si e od miejsca przerwania.
Generacja sygnaw:
sprz etowo (system operacyjny)
raise(S) wygenerowanie sygnau S w obr ebie procesu (np. dla poinformowania procesu o
b edzie wynikym podczas wykonywania podprogramu)
kill(T,S) wygenerowanie sygnau S skierowanego do procesu T
Obsuga sygnaw:
domy slnie zako nczenie zadania
ignorowanie
przechwycenie:
wykonanie funkcji obsugi
wznowienie (je sli zawieszony, np. pause())
Funkcja obsugi sygnau:
voi d handl er ( i n t s i gno )
{
/ ogr a ni c z ony z b i o r f u n c j i /
}
Funkcje systemowe dozwolone wewn atrz funkcji obsugi sygnau s a zawarte w Tabeli 2.5 w Labo-
ratorium systemu QNX [2].
Funkcja obsugi sygnau jest cz e sci a programu procesu i mo ze u zywa c tych samych zmiennych, zgod-
nie z oglnymi zasadami widoczno sci zmiennych w j ezyku C. Poniewa z jednak wykonanie funkcji
obsugi sygnau przebiega asynchronicznie w stosunku do wykonania procesu, przetwarzanie tych
33
samych zmiennych mo ze prowadzi c do b edu. Aby temu zapobiec, wprowadzono specjalny typ ca-
kowity sig_atomic_t, w ktrym podstawowe operacje, np. zwi ekszania i zmniejszania warto sci, s a
niepodzielne.
Sposoby powrotu z funkcji obsugi:
1. powrt do punktu przerwania
2. skok do zaznaczonego wcze sniej miejsca programu
sigsetjmp() zapami etanie adresu powrotu i aktualnej maski sygnaw
siglongjmp() powrt z odtworzeniem maski sygnaw
Maskowanie sygnaw:
inicjowanie zbioru, dodawanie, usuwanie sygnaw:
sigempty(SS) zainicjowanie pustego zbioru sygnaw SS
sigllset(SS) zainicjowanie zbioru sygnaw SS, zawieraj acego wszystkie sygnay
sigaddset(SS,S) dodanie sygnau S do zbioru SS
sigdelset(SS,S) usuni ecie sygnau S ze zbioru SS
ustalanie i podmienianie maski:
sigprocmask(SS,S) ustalenie maski rwnej zbiorowi sygnaw SS
sigsuspend(SS) podmienia mask e sygnaow a procesu na SS i zawiesza proces a z do
otrzymania sygnau.
funkcje pomocnicze:
sigismember(SS,S) sprawdzenie, czy sygna S nale zy do zbioru SS
sigpending(SS) ustalenie i zapisanie w zbiorze SS zgoszonych, a zamaskowanych sy-
gnaw, oczekuj acych na dostarczenie procesu
Aby zamaskowa c sygna nale zy:
1. zdeniowa c zbir sygnaw
utworzy c zbioru
wprowadzi c sygnay
2. ustawi c mask e
6.5 Przegl ad sygnaw
B edy sprz etowe:
SIGFPE [--] b ad operacji arytmetycznej (np. dzielenie przez zero lub nadmiar)
SIGSEGV [--] naruszenie ochrony pami eci
SIGILL [--] prba wykonania niepoprawnej instrukcji
B edy programowe:
34
SIGALRM [-] przeterminowanie (np. funkcja alarm)
SIGPIPE [-] prba zapisu do potoku (pipe), ktry nie zosta nigdzie otwarty do odczytu
Zako nczenie porcesu:
SIGTERM [-] normalne zako nczenie procesu
SIGABRT [-] nienormalne zako nczenie procesu (np. przez wywoanie funkcji abort)
SIGQUIT [-] zako nczenie procesu przez operatora
SIGKILL [-!] awaryjne zako nczenie procesu
Zdarzenia:
SIGINT [-] przerwanie z klawiatury (klawisz Brake)
SIGHUP [-] zako nczenie procesu wiod acego sesji (z reguy sh) lub brak komunikacji z
terminalem sesji
SIGCHLD [ ] zako nczenie procesu potomnego
Sterowanie procesem:
SIGSTOP [!] zawieszenie procesu w oczekiwaniu na sygna SIGCONT
SIGCONT [!] wznowienie procesu zawieszonego przez sygna SIGSTOP
Dowolna sygnalizacja:
SIGUSR1 [-] do zdeniowania przez u zytkownika
SIGUSR2 [-] do zdeniowania przez u zytkownika
QNX niestandardowe:
SIGBUS [--] b ad parzysto sci pami eci
SIGPWR [-] zadanie restartu systemu wywoane przez naci sni ecie klawiszy Ctrl-Alt-
Shift-Del lub wywoany proces shutdown
Wyja snienie przyj etych symboli:
[--] pierwsze wyst apienie to b ad, natomiast kolejne ko nczy proces
[-] domy sla akcja usuni ecie procesu
[-!] bezwzgl edne usuni ecie z systemu
[!] te sygnay nie mog a by c przechwytywane przez normalne procesy
35
7 Wykad 7 [16.04.2004]
7.1 Synchronizacja i komunikacja zada n
Wsystemie wielozadaniowymwsppracuj ace zadania wykonuj a si e wspbie znie, czyli wchodz a
w interakcj e. W takiej sytuacji mo zemy mie c do czynienia z nast epuj acymi problemami:
1. konkurencja o dost ep do wsplnych zasobw (synchronizacja)
2. wsppraca procesw wspbie znych (komunikacja + synchronizacja)
ZAD 1 ZAD 2 ZAD 3 ZAD 4
zasob wiadomosc
W S P O L B I E Z N I E W Y K O N Y W A N E Z A D A N I A
Rysunek 24: Problemy synchronizacji i komunikacji zada n
Przymijmy, ze znacznik x przyjmuje nast epuj ace warto sci:
x =

1 wolny
0 zaj ety
ZADANIE 1 ZADANIE 2
aa: if(x==0) goto aa;
x=0;
bb: if(x==0) goto bb;
x=0;
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
x=1; x=1;
.
.
.
.
korzystanie
z
zasobu
1 2
2
3
3
Rysunek 25: B edna synchronizacja zada n
36
Zadanie C Zadanie M
DELAY ( t)
Czytaj zmienne
procesu
Wartosc
bledna?
Porownaj z
ograniczeniami
S > 0 ?
Wpisz komunikat
do bufora
S = S + 1
RESUME (C)
SUSPEND (C)
S = S - 1
Wez komunikat
z bufora
Nadaj komunikat
BUFOR
NIE
TAK
NIE
TAK
*
Wartosc poczatkowa S = 0
Rysunek 26: B edna synchronizacja zada n w systemie rejestracji
W przykadzie podanym na rysunku nr 26 pokazany jest przykad b ednego rozwi azania problemu
wsppracy przy pomocy instrukcji Suspend (zawie s zadanie) i Resume (wznw zadanie). Je zeli
nast epna warto s c nieprawidowa pojawi si e i spowoduje wykonanie instrukcji Resume po nadaniu
ostatniego komunikatu i sprawdzeniu licznika, a przed wykonaniem instrukcji Suspend, to operacja
Resume zawiesi zadanie wykonanie zadania nadaj acego pomimo obecno sci komunikacji w buforze.
7.1.1 Semafory
S =

> 0 zezwolenie na kontynuacj e


= 0 brak zgody na kontynuacj e
Semafor (semaphore) S jest zmienn a systemow a, ktrej warto s c mo ze by c sprawdzana i zmie-
niana przez wszystkie zadania za pomoc a jednej z dwch instrukcji:
37
operacje
niepodzielne

wait (S) : if S > 0 then S = S 1


else zawie s wykonywanie zadania
post (S) : if zadanie zawieszone then wznw jedno zadanie
else S = S + 1
S > 0 ?
Zawies wykonywane
zadanie RT, tzn.:
SUSPEND (RT)
Wpisz zadanie RT
na liste QS zadan
zawieszonych na S
S = S - 1
RETURN
TAK
NIE
WAIT (S)
do programu szeregujacego
QS pusta ?
Usun pierwsze
zadanie T
z QS
Wznow zadanie T,
tzn.:
RESUMA (T)
S = S + 1
RETURN
TAK
NIE
POST (S)
do programu szeregujacego
Rysunek 27: Operacje semaforowe
Dopiero standard POSIX wprowadzi nazwy operacji semaforowych jako wait oraz post. We
wcze sniejszych publikacjach mo zna spotka c inne ich oznaczenia. Odpowiednio P (wait) i V (post),
wait i signal oraz wait i event.
Sposb implementacji operacji semaforowych przedstawia rysunek 27. Lista zada n zawieszonych
na semaforze mo ze by c obsugiwana zgodnie z algorytmem FIFO lub te z mog a by c brane pod uwag e
priorytety zada n. Zalet a tego pierwszego sposobu jest prostota i uczciwo s c tzn. zadne zadanie za-
wieszone nie b edzie w niesko nczono s c czeka c na wznowienie, ust epuj ac miejsca innym wznawianym
zadaniom. Wad a jest mo zliwo s c wstrzymywania zadania o wy zszych priorytetach przez wcze sniej
zawieszone zadania o ni zszych priorytetach. Cechy algorytmu priorytetowego s a przeciwstawne.
W praktyce, za najwa zniejsz a cech e jest uznawana uczciwo s c i najcz e sciej stosowany jest algorytm
FIFO.
Niepodzielno s c operacji wait oraz post oznacza niemo zliwo s c jednoczesnego wykonywania dwch
dowolnych operacji na tym samym semaforze przez wi ecej ni z jedno zadanie. Rozwi azanie rozwa-
zanych poprzednio problemw wsppracy zada n przy pomocy semafora przedstawiaj a rysunki nr 28
oraz 29. Pocz atkowa warto s c semafora S wynosi 0.
38
ZADANIE 1 ZADANIE 2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
korzystanie
z
zasobu
1
2
3
wait (S)
post (S)
wznowienie
konkurenta
zad. 2
wait (S)
post (S)
4
2
zawies
4
5
Rysunek 28: Poprawna synchronizacja zada n
Zadanie C Zadanie M
DELAY ( t)
Czytaj zmienne
procesu
Wartosc
bledna?
Porownaj z
ograniczeniami
Wpisz komunikat
do bufora
SIGNAL (S)
WAIT (S)
Wez komunikat
z bufora
Nadaj komunikat
BUFOR
NIE
TAK
TAK
Wartosc poczatkowa S = 0
Rysunek 29: Poprawna synchronizacja zada n w systemie rejestracji
39
Implementacja semaforw w systemie QNX jest w peni zgodna z opisanym schematem. Wszyst-
kie operacje na semaforach s a realizowane przez nast epuj ace funkcje systemowe:
sem_init (S,V) utworzenie semafora S z pust a kolejk a procesw zawieszonych i warto sci a
pocz atkow a V
sem_destroy (S) usuni ecie semafora S
sem_post (S) wykonanie operacji post na semaforze S
sem_wait (S) wykonanie operacji wait na semaforze S
sem_trywait (S) wykonanie operacji wait bez zawieszania procesu; je zeli warto s c semafora S
nie jest wi eksza od zera, funkcja wraca natychmiast zwracaj ac kod b edu
Wykonanie funkcji sem_wait mo ze by c przerwane przez dostarczenie sygnau, tzn. dostarcze-
nie sygnau do procesu zawieszonego po wykonaniu funkcji sem_wait powoduje wznowienie tego
procesu i zako nczenie funkcji ze zwrceniem odpowiedniego kodu b edu.
7.1.2 Anomalia synchronizacji
Zakleszczenie (deadlock) jest sytuacj a w ktrej zawieszone zadania oczekuj a na wznowienie
przez inne zadania, ktre z kolei s a zawieszone w oczekiwaniu na wznowienie przez zadania pierw-
szej grupy.
ZADANIE 1 ZADANIE 2
.
.
.
wait (S)
.
.
wait (T)
.
.
.
.
.
post (T)
.
.
post (S)
1
S = T = 1
.
.
.
wait (T)
.
.
wait (S)
.
.
.
.
.
post (T)
.
.
post (S)
2
4
S = 0
zawieszenie
2
T = 0
3
zawieszenie
ZAKLESZCZENIE
Rysunek 30: Zakleszczenie
Antidotum
1. Numerowanie semaforw zajmowanie w kolejno sci rosn acej
2. Analiza projektu (graf zada n procesu + strzaki okre slaj ace kolejno s c czekania kto na kogo
czeka je sli w grae istnieje p etla to mo ze wyst api c zakleszczenie)
3. Je sli System Operacyjny podejrzewa mo zliwo s c wyst apienia zakleszczenia usuwa jeden z
procesw (metoda bardzo brutalna, mog aca doprowadzi c do b edw w obliczeniach)
40
8 Wykad 8 [23.04.2004]
8.1 Synchronizacja i komunikacja zada n - cd
8.1.1 Anomalia synchronizacji
Inwersja priorytetw (priority inversion) sytuacja, gdy zadanie o ni zszym priorytecie wstrzy-
muje wykonywanie zadania o priorytecie wy zszym.
Dla przykadu rozwa zmy problem wykluczania zada n (rysunek nr 31) i przypu scimy, ze rwnolegle
z zadaniem Z1 o priorytecie wysokim i zadaniem Z2 o priorytecie niskim wykonuje si e zadanie Z3
o priorytecie srednim. W takiej sytuacji mo zliwa jest nast epuj aca sekwencja zdarze n:
1. Wykonywane zadanie Z2 dochodzi do instrukcji wait i wchodzi do regionu krytycznego.
2. Startuje zadanie Z1, dochodzi do instrukcji wait i zostaje zawieszone w oczekiwaniu na zwol-
nienie regionu.
3. Startuje zadanie Z3 i ze wzgl edu na wy zszy priorytet powoduje wstrzymanie zadania Z2
Z1 Z2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
korzystanie
z zasobu
(region krytyczny)
1 wait (S)
post (S)
wait (S)
post (S)
Z3
.
.
.
.
.
.
.
.
.
.
.
.
.
wysoki priorytet niski priorytet sredni priorytet
2
2
Rysunek 31: Inwersja priorytetw
W tym stanie zadanie Z3 uniemo zliwia wykonywanie zadania Z2, ktre zajmuje region i wstrzymuje
zadanie Z1. W konsekwencji zadanie Z1 o wysokim priorytecie jest wstrzymywane przez zadanie
Z3 o priorytecie ni zszym.
Nie ma na to oglnego rozwi azania. Jednym ze sposobw unikni ecia opisanej sytuacji jest sposb
wykorzystany w systemie iRMX86, polegaj acy na wykorzystaniu regionw wzajemnego wyklucza-
nia zada n.
Ka zdy region krytyczny powinien zaczyna c si e instrukcj a receive-control i ko nczy c instrukcj a send-
control o nast epuj acej interpretacji:
receive-control(R) sprawd z stan regionu i kontynuuj wykonanie, je zeli region jest wolny, lub za-
wie s zadanie, je zeli region jest zaj ety (tzn. inne zadanie wykonao wcze sniej instrukcj e receive-
control(R). Priorytet zadania znajduj acego si e wewn atrz regionu jest podnoszony do poziomu
priorytetu zadania zawieszonego.
send-control(R) zwolnij region i wznw jedno z zada n oczekuj acych na wej scie do regionu (je zeli
takie zadania istniej a).
41
Semantyka instrukcji receive-control i send-control jest analogiczna do semantyki instrukcji wait
i post w przypadku semaforw. Zmiana priorytetu zadania znajduj acego si e wewn atrz regionu wyklu-
cza jednak mo zliwo s c powstania inwersji priorytetw. Rozwa zana wcze sniej sytuacja b edzie miaa
teraz posta c:
1. Wykonanie zadania Z2 dochodzi do instrukcji receive-control i zajmuje region.
2. Startuje zadanie Z1, dochodzi do instrukcji receive-control i zostaje zawieszone w oczekiwaniu
na zwolnienie regionu. Priorytet zadania Z2 zostaje podniesiony do poziomu priorytetu zadania
Z1
3. Startuje zadanie Z3, lecz ze wzgl edu na wy zszy priorytet zadania Z2 oczekuje na wykonywanie
w stanie gotowo sci.
Zadanie Z2 biegnie dalej, a z do opuszczenia regionu. Wykonywanie instrukcji send-control
zwalnia region, powoduje obni zenie poziomu priorytetu zadania Z2 do pocz atkowego, niskiego
poziomu i wznawia zadanie Z1. Wszystkie trzy zadania s a w stanie Gotowe i do wykonania
jest wybierane zadanie Z1.
8.1.2 Kolejki wiadomo sci
Wwielu zastosowaniach dane przekazywane mi edzy procesami poprzez zbir po srednicz acy maj a
posta c wiadomo sci o ustalonej i znanej obydwu procesom dugo sci i strukturze wewn erznej. Zbir
po srednicz acy staje si e w takim wypadku kolejk a wiadomo sci (message queue), operacje zapisania
i odebrania danych przybieraj a posta c operacji nadania i odebrania wiadomo sci. Cz esto spotykan a
form a wsppracy procesw jest wymiana danych poprzez zbir po srednicz acy, ktry magazynuje
nadane wiadomo sci, zwalniaj ac nadawc e od obowi azku oczekiwania na ich odebranie. Podstawowe
operacje, zwi azane z takim schematem komunikacji, obejmuj a utworzenie zbioru przechowuj acego
kolejk e wiadomo sci, nadanie wiadomo sci i odebranie wiadomo sci. Operacja nadania powoduje
umieszczenie wiadomo sci w kolejce i nie zatrzymuje wykonywania procesu nadaj acego. Operacja
odebrania wiadomo sci powoduje pobranie wiadomo sci z kolejki lub zawieszenie procesu odbieraj a-
cego, je zeli kolejka jest pusta. Po zniejsze nadanie wiadomo sci do kolejki powoduje automatyczne
wznowienie zatrzymanego procesu.
Dokadna denicja kolejki wiadomo sci, wprowadzona w standardzie POSIX, obejmuje rwnie z
sprawdzenie mo zliwo sci przepenienia kolejki. Podstawowe denicje operacji nadania i odbioru wia-
domo sci w do i z kolejki K mo zna zapisa c nast epuj aco:
send(K,w) :
je zeli kolejka K jest pena, to zawie s wykonywanie procesu,
w przeciwnym razie wpisz wiadomo s c w do kolejki K oraz je zeli istniej a procesy oczekuj ace
na wiadomo s c,
to wznw wykonywanie jednego z nich
receive(K,W) :
je zeli kolejka K jest pusta, to zawie s wykonywanie procesu,
w przeciwnym razie pobierz wiadomo s c w z kolejki K oraz
je zeli istniej a procesy oczekuj ace na miejsce w kolejce,
to wznw wykonywanie jednego z nich
Wiadomo sci zgromadzone w kolejce i oczekuj ace na odebranie mog a zawiera c r zne tre sci, o
mniejszej lub wi ekszej wa zno sci dla dziaania aplikacji. Miar a wa zno sci jest priorytet, nadawany
jej przez nadawc e, podczas operacji nadawania. Podczas odbierania wiadomo sci z kolejki najpierw
42
przekazywana jest zawsze wiadomo s c o najwy zszym priorytecie.
Ta sama kolejka mo ze by c wykorzystywana przez wiele r znych procesw. Je sli wiele procesw
wykona operacj e mq_send, prbuj ac nada c wiadomo s c do penej kolejki, to wszystkie zostan a zawie-
szone w stanie Z w oczekiwaniu na zwolnienie miejsca w kolejce. Podobnie, je zeli wiele procesw
wykona operacj e mq_receive, prbuj ac odebra c wiadomo sci z kolejki pustej, to wszystkie zostan a
zawieszone w stanie Z w oczekiwaniu na pojawienie si e wiadomo sci. W ten sposb, z ka zd a kolejk a
wiadomo sci mo ze by c zwi azana kolejka procesw zawieszonych w oczekiwaniu na zmian e stanu tej
kolejki.
Obsuga kolejek [POSIX]:
Kolejka wiadomo sci:
wiadomo sci maj a priorytety
z kolejki odbierana jest najstarsza wiadomo s c o najwy zszym priorytecie, a przy rwnych
priorytetach proces, ktry najdu zej oczekuje na wznowienie.
Kolejka procesw zawieszonych:
zmienna POSIX_PRIORITY_SCHEDULING jest ustawiona kolejno s c wznawiania
zgodna jest z priorytetem zada n
zmienna POSIX_PRIORITY_SCHEDULING nie jest ustawiona kolejno s c wznawia-
nia jest nieustalona
Rozmiar kolejki oraz maksymalna dugo s c przekazywanych wiadomo sci s a ustalane podczas ope-
racji utworzenia kolejki i nie mog a ulega c zmianom podczas jej istnienia.
Organizacja kolejek wiadomo sci jest podobna do organizacji plikw i podlega takim samym me-
chanizmom ochrony. Ka zda kolejka ma swoj a nazw e, zbudowan a wedug regu semantyki nazw
scie zkowych, a w operacjach nadania i odbierania wiadomo sci jest reprezentowana przez deskryptor
okre slony podczas operacji otwarcia. Z ka zd a kolejk a wiadomo sci s a zwi azane atrybuty, okre slaj ace
prawa dost epu do tej kolejki, identyczne z atrybutami plikw.
Podstawowe atrybuty kolejek:
mq_maxmsg maksymalna liczba komunikatw w kolejce
mq_msgsize maksymalna wielko s c pojedynczego komunikatu
mq_ags agi:
O_RDONLY tylko odczyt z kolejki
O_WRONLY tylko zapis do kolejki
O_RDWR odczyt i zapis
O_CREAT utwrz kolejk e o ile nie istnieje
O_NONBLCK domy slnie aga jest wyzerowana co powoduje, ze opercje odczytu (mq_receive)
i zapisu (mq_send) mog a by c blokuj ace; gdy aga jest ustawiona operacje te nie s a blo-
kuj ace i ko ncz a si e b edem
mq_curmsg aktualna liczba komunikatw w kolejce
43
Podstawowe operacje na kolejkach wiadomo sci s a realizowane przez nast epuj ace funkcje:
mq_open otwarcie kolejki wiadomo sci
mqd_t mq_open ( c ha r name , i n t of l a g , i n t mode , mq_a t t r a t t r )
gdzie:
name nazwa kolejki
oag tryb tworzenia kolejki
mode atrybuty dost epu (analogicznie jak w przypadku plikw)
attr atrybuty kolejki wiadomo sci
mq_send nadanie wiadomo sci do kolejki
i n t mq_send ( mqdt _t mq, c ha r msg , s i z e _ t l en , uns i gned i n t mpr i o )
gdzie:
mq identykator kolejki komunikatw
*msg adres bufora wysanego komunikatu
len dugo s c wysanego komunikatu
mprio priorytet komunikatu
mq_receive odebranie wiadomo sci z kolejki
i n t mq_recei ve ( mqdt _t mq, c ha r msg , s i z e _ t l en , uns i gned i n t mpr i o )
gdzie:
mq identykator kolejki komunikatw
*msg adres bufora na odebrany komunikat
len maksymalna dugo s c odebranego komunikatu
mprio priorytet odebranego komunikatu
mq_close zamkni ecie kolejki
i n t mq_cl ose ( mqdt _t mq)
mq_unlink usuni ecie kolejki
i n t mq_unlink ( c ha r name )
mq_getattr odczytanie atrybutw kolejki
i n t mq_get at t r ( mqdt _t mq, s t r u c t mq_a t t r a t t r )
gdzie:
mq identykator kolejki komunikatw
*attr adres bufora ze struktur a zawieraj ac a atrybuty kolejki komunikatw
mq_setattr zmiana atrybutw kolejki
i n t mq_s et at t r ( mqd_t mqdes , c ons t s t r u c t mq_a t t r mqs t at , s t r u c t mq_a t t r omqs t at ) ;
44
mq_notify z adanie zgoszenia sygnau w chwili zapisania wiadomo sci do pustej kolejki
i n t mq_not i f y ( mqd_t mqdes , c ons t s t r u c t s i g e v e n t n o t i f ) ;
gdzie:
mq identykator kolejki komunikatw
*notif adres struktury specykuj acej sposb zawiadomienia
8.1.3 Spotkanie (rendez-vous)
Spotkanie jest typowym sposobem synchronizacji w j ezyku Ada (programowanie wspbie zne).
send
receive
reply
msg
resp
Zad 1 Zad 2
1
2
3
1
2
3
Rysunek 32: Spotkanie (rendez-vous)
Schemat operacji spotkania pokazuje rysunek 32. W chwili czasowej 1 oba zadania wykonuj a si e
wspbie znie. W chwili 2 nast epuje synchronizacja procesw. Zadanie wywouj ace (Zad 1) pozo-
staje zawieszone, natomiast zadanie przyjmuj ace (Zad 2) wykonuje zaprogramowane operacje. Po
zako nczeniu operacji zadanie wywouj ace jest wznawiane i obydwa zadania biegn a dalej wspbie z-
nie.
45
9 Wykad 9 [07.05.2004]
9.1 Synchronizacja i komunikacja zada n - cd
9.1.1 Komunikacja przez obszary pami eci wsplnej (shared memory object)
pamiec
zad A
zad B
wspolne dane
Rysunek 33: Obszary pami eci wsplnej (shared memory object)
Udost epnienie segmentu danych wymaga wykonania przez proces dwch operacji: otwarcia seg-
mentu i alokowania go w przestrzeni pami eci procesu. Operacja otwarcia powoduje otwarcie pliku,
w ktrym ten segment rezyduje lub utworzenie takiego pliku, je zeli segment wcze sniej nie istani.
Jednocze snie z utworzeniem segmentu mo zna okre sli c dla niego wska zniki praw dost epu, podob-
nie jak dla innych plikw. Operacja alokowania segmentu danych powoduje umieszczenie segmentu
(lub jego wskazanego fragmentu) w przestrzeni pami eci procesu i okre slenie dla niego wymaganych
znacznikw ochrony. Wszystkie operacje na segmentach danych s a wykonywane przez nast epuj ace
funkcje systemowe:
shm_open (N) otwarcie segmentu danych o nazwie N; funkcja zwraca deskryptor pliku FD,
u zywany jako parametr innych funkcji
ltrunc (FD,L) okre slenie dugo sci nowo utworzonego segmentu danych
mmap (FD) alokowanie otwartego segmentu danych w przestrzeni pami eci; funkcja zwraca
wska znik A na pocz atek segmentu
mprotect (A,P) zmiana znacznikw ochrony segmentu pami eci
munmap (A) usuni ecie segmentu z przestrzeni pami eci procesu
close (FD) zamkni ecie pliku segmentu danych
Operacja usuni ecie procesu segmentu jest op zniana do chwili zamkni ecia segmentu we wszystkich
procesach, ktre z tego segmentu korzystaj a.
46
Przykadowa implementacja komunikacji przez obszary pami eci wsplnej:
f d = shm_open ( " nazwa " , O_RDWR | O_CREAT, 0777) ;
/ / " name " o b i e k t pami eci owy
/ / 0777 prawa ( t a k i e j a k w chmod )
s i z e = l t r unc ( fd , s i z e , SEEK_SET ) ;
addr = mmap ( s t a r t , l e nght , PROT_READ | PROT_WRITE, MAP_SHARED, fd , o f f s e t ) ;
/ Adr es s t a r t j e s t j e dnak t y l k o pr opoz yj c a i zazwyczaj j e s t
pr zekazywany j a ko 0. Rzeczywi s t e mi e j s c e zmapowani a obi e kt u
j e s t zwr acane pr z e z mmap i ni gdy ni e j e s t zerem . /
/ / l e n g h t wi e l kos c p l i k u l ub i nnego obi e kt u (w b a j t a c h )
/ / PROT_READ, PROT_WRITE o k r e s l a j a sposoby ochr ony pami eci
/ MAP_SHARED p o l e c e n i e ws p o l d z i e l e n i a mapowania ze ws zys t ki mi
i nnymi pr oces ami , k t o r e mapuj a t e n o b i e k t . /
/ / f d d e k r y p t o r p l i k u
sem = ( sem_t ) addr ; / / u s t a wi e n i e na poczat ku obs z a r u
s em_i ni t ( sem , 1 , va l ue ) ;
/ / 1 s emaf or d z i e l o n y pr z e z wi e l e pr ocesow
/ / va l ue u s t a wi e n i e poczat kowe s emaf or a
. . .
sem_wai t ( sem ) ;
. . .
sem_post ( sem ) ;
. . .
sem_dest roy ( sem ) ;
munmap ( addr , l e n g h t ) ;
c l o s e ( f d ) ;
shm_unl i nk ( " nazwa " ) ;
Inny proces:
mo zliwo s c pierwsza (fork):
proces dziedziczy:
obszar pami eci
semafor
. . .
sem_post ( sem ) ;
/ / moze odwi e s i c pr oc e s
mo zliwo s c druga:
47
f d = shm_open ( " nazwa " , . . . ) ;
addr = mmap ( fd , . . . ) ;
sem = ( sem_t ) addr ;
. . .
sem_post ( sem ) ;
9.2 Rozszerzenia czasu rzeczywistego
9.2.1 Problemy
Uzale znienie wykonywania zada n od czasu wi a ze si e z nast epuj acymi problemami:
op znienia
sleep (t) gdzie t to struktura long tv_sec okre slaj aca liczb e sekund
nanosleep (t) gdzie t to struktura long tv_nsec okre slaj aca liczb e nanosekund
delay (t) czas w mikrosekunach
cykliczno s c
Fukncje nie mog a czeka c w niesko nczono s c (dost ep do zasobw, synchronizacja)
przeterminowanie
whi l e ( 1 )
{
s l e e p ( $ \ De l t a $ t ) ;
. . .
. . .
}
9.2.2 Programowe liczniki czasu
Rysunek 34: Programowalny licznik czasu (timer)
Operacje dost epne na programowych licznikach czasu (timer)
timer_create(tim, sig) utworzenie licznika o identykatorze timi numerowi licznika sig, z kt-
rym chcemy po aczy c licznik
timer_settime (tim, t
d
, t
c
) uruchomienie licznika z zadanymczasemzwoki t
d
o dugo sci
cyklu t
c
lub zatrzymanie dziaaj acego licznika
48
timer_gettime () odczytanie zawarto sci licznika
timer_delete () usuni ecie licznika
Przypadki szczeglne:
t
d
= 0
brak pocz atkowego op znienia
t
c
= 0
tylkr op znienie
brak akcji
9.3 System QNX
QNX jest wielozadaniowym systemem operacyjnym czasu rzeczywistego, opracowanym przez
rm e Quantum Software dla lokalnych sieci komputerw zgodnych programowo z komputerami ro-
dziny IBM PC.
System skada si e z j adra, peni acego rol e egzekutora wielozadaniowego i zespou zada n syste-
mowych, wsppracuj acych ze sob a i z zadaniami u zytkowymi zgodnie z modelem wymiany usug
(rysunek 15).
Zakres funkcji j adra obejmuje tylko:
szeregowanie zada n,
implementacj e komunikacji mi edzy zadaniami
przyjmowanie zgosze n przerwa n
Pozostae funkcje wypeniaj a zadania systemowe:
1. Administator zada n (Process Manager) odpowiedzialny za tworzenie innych zada n oraz ini-
cjowanie funkcji odmierzania czasu.
2. Administator sieci (Network Manager) obsuguj acy acza sieciowe i komunikacj e w ezw
sieci.
3. Administator zbiorw (Filesystem Manager) organizuj acy system zbiorw w pami eciach dys-
kowych i ta smowych.
4. Administator urz adze n (Device Manager) formatuj acy strumienie danych przekazywane mi e-
dzy zadaniami i urz adzeniami zewn etrznymi.
5. Zadania steruj ace urz adzeniami (Device Drivers) inicjuj ace i ko ncz ace ich dziaanie i obsu-
guj ace zgaszane przerwania.
poziomy priorytetu numerowany od 0 (min) do 31 (max)
zadanie o wy zszym priorytecie zawsze wywaszcza zadanie o priorytecie ni zszym
priorytety mog a by c zmieniane dynamicznie
szeregowanie zada n na tym samym poziomie priorytetw:
49
M
G
W
Z
Zr
Zs
Send
Reply
Rysunek 35: Graf stanw zada n w systemie QNX
algorytm FIFO
algorytm karuzelowy (time sharing)
algorytm adaptacyjny - dyskryminacja zada n o dugich priorytetach
50
10 Wykad 10 [21.05.2004]
10.1 System QNX - cd
10.1.1 Komunikacja i synchronizacja w systemie QNX
W systemie QNX dost epne s a nast epuj ace mechanizmy do komunikacji i synchronizacji zada n:
1. Spotkanie (rendez-vous)
Proces T1 Proces T2
Send (T2,M,Mr)
Receive (M)
Reply (M)
M
Mr
Rysunek 36: Implementacja spotkania w systemie QNX
Podstawowe etapy wymiany wiadomo sci s a realizowane przez trzy funkcje systemowe:
Send (T2,M,Mr) wysanie wiadomo sci M do procesu T2 i zawieszenie procesu nadaj a-
cego do czasu otrzymania odpowiedzi Mr; proces nadaj acy wchodzi w stan Zs;
Receive (T1,M) odebranie wiadomo sci M od procesu T1; proces, ktry nada wiado-
mo s c, jest przenoszony do stanu Zr;
Reply (T1,Mr) przekazanie odpowiedzi Mr do procesu T1 i wznowienie tego procesu
Dodatkowo istnieje funkcja, ktra przy wywoaniu nie zawiesza zadania:
Creceive (T,M) je sli przy prbie odebrania wiadomo sci okazuje si e, ze nie zostaa ona
nadana, funkcja zwraca kod b edu.
Je sli przesyane wiadomo sci s a za dugie mo zna wysya c je porcjami, a su z a do tego nast epu-
j ace funckje systemowe:
Readmsg () pobranie fragmentu oczekuj acej wiadomo sci; wykonanie tej funkcji nie
zmienia stanu zadnego procesu;
Writemsg () dopisanie fragmentu odpowiedzi; wykonanie tej funkcji nie zmienia stanu
zadnego procesu.
W systemie QNX problem inwersji priorytetw rozwi azany jest w ten sposb, ze operacja
send-receive podnosi priorytet serwera do priorytetu klienta.
2. Depozyty (proxy)
Depozyty mo zna uwa za c za rozszerzenie tradycyjnego mechanizmu semaforw, su z acych do
przekazywania impulsw synchronicznych mi edzy wsppracuj acymi procesami. Rozszerze-
nie polega na stworzeniu implusw z pewn a sta a i niezmienn a warto sci a, przekazywan a do
odbiorcy od normalnej akcji synchronicznej. Podstawowe operacje zwi azane z wykorzysta-
niem tego mechanizmu realizuje funkcja Receive i trzy dalsze funkcje systemowe:
51
qnx_proxy_attach (T,M) utworzenie procesu depozytowego, przechowuj acego wiado-
mo sci M i stanowi acego wasno s c procesu T
qnx_proxy_detach (P) usuni ecie procesu depozytowego P
Trigger (P) pobudzenie procesu depozytowego P i wysanie zdeponowanej wiadomo sci
do procesu wa sciciela.
Wywoanie funkcji Trigger:
przez zadanie
przez funkcj e obsugi przerwania
Depozyty w aplikacjach sieciowych:
(a) Utworzenie zadania depozytowego w w e zle wa sciciela
(b) Utworzenie reprezentanta w innym w e zle
(c) Funkcje utworzenia i usuni ecia lokalnego reprezentanta procesu depozytowego s a reali-
zowane przez dwie funkcje systemowe:
qnx_proxy_rem_attach (N,P) utworzenie reprezentanta procesu depozytowego P
w w e zle N;
qnx_proxy_rem_detach (N,V) usuni ecie reprezenta V odlegego procesu depozyto-
wego w w e zle N.
KLIENCI
SERWERY
Send
Send
Receive
Receive
Trigger
Reply
Rysunek 37: Architektura klient-serwer i spotkanie
Zadania wirtualne
Automatyczne przekazanie
wiadomosci przez polaczenie
T1 V2
Zadanie
SEND (V2)
Komputer 1
V1 T2
Zadanie
RECEIVE (V1)
Komputer 2
Rysunek 38: Przekazywanie wiadomo sci przez po aczenie
3. Sygnay (signal) [POSIX] obsuga zgodna ze standardem POSIX
4. Kolejki wiadomo sci (message queue) [POSIX] obsuga zgodna ze standardem POSIX
5. Potoki (pipe) [POSIX] obsuga zgodna ze standardem POSIX
6. Semafory (semaphore) [POSIX] obsuga zgodna ze standardem POSIX
52
Automatyczne przekazanie
pobudzenia
T1 V
Proces
TRIGGER (V)
Komputer 1
V1 T2
Proces
depozytowy
RECEIVE (P)
Komputer 2
Proces
wlasciciela
Oddalony
reprezentant
Rysunek 39: Przekazywanie depozytw mi edzy w ezami sieci
10.1.2 Komunikacja ze sprz etem
Komunikacja z rejestrami urz adze n:
inp (port) odczytanie jednego bajtu danych z rejestru o numerze port
inpw (port) odczytanie sowa z rejestru o numerze port
inpd (port) odczytanie drugiego sowa z rejestru o numerze port
outp (port,data) zapisanie bajtu danych data do rejestru o numerze port
outpw (port,data) zapisanie sowa data do rejestru o numerze port
outpd (port,data) zapisanie drugiego sowa data do rejestru port
Wszystkie wymienione funkcje zawieraj a maszynowe instrukcje wej scia-wyj scia, ktre mog a by c
wykonane tylko przez programy uprzywilejowane, zapisane w plikach stanowi acych wasno s c admi-
nistratora systemu. Nadanie statusu uprzywilejowanego mo ze nast api c podczas konsolidacji pro-
gramu (parametr -T1).
10.1.3 Przerwania
SystemQNXumo zliwia procesomdeniowanie wasnych funkcji obsugi przerwa n zewn erznych,
dziaaj acych podobnie jak funkcje obsugi sygnaw. Dodatkowo, zako nczenie funkcji obsugi mo ze
powodowa c wzbudzenie procesu depozytowego i przekazanie wiadomo sci o wyst apieniu przerwania
do procesu u zytkowego.
Podstawowe operacje , zwi azane z instalowaniem funkcji obsugi i maskowaniem przerwa n, s a
realizowane przez nast epuj ace funkcje systemowe:
qnx_hint_attach (I,H) zainstalowane funkcji H obsuguj ace przerwanie numer I
qnx_hint_detach (I) usuni ecie funkcji obsugi przerwania I
qnx_hint_mask (I,M) okre slenie maski M przerwania I
10.2 Przemysowe sieci miejscowe
10.2.1 Wprowadzenie
Probus jest jedn a z najbardziej popularnych sieci przemysowych na caym swiecie (zostaa za-
projektowana przez SIEMENS).
Warstwy funkcji systemu:
53
PROCES TECHNOLOGICZNY NR 1 PROCES TECHNOLOGICZNY NR 2
Smart
IO
Smart
IO
PLC
PLC
Sterownik
lokalny
Sterownik
lokalny
PROFIBUS PROFIBUS
lokalne sprzegi
procesowe
sieci
miejscowe
Sterownik
nadrzedny
Sterownik
nadrzedny
Stacja
operatora
Archiwizacja
sieci
lokalne
ETHERNET
Komputer Komputer Komputer
siec rozlegla
Host
TCP/IP
ARCNET
Rysunek 40: Struktura funkcjonalna systemu steruj acego
sterowania (bezpo srednio po aczona z procesem)
nadrz edna (sterowania operacyjnego)
zarz adzania (planowania, harmonogramowania)
Struktura komunikacyjna systemu struj acego:
sprz eg procesowy, acz acy czujniki i elementy wykonawcze z urz adzeniami warstwy sterowa-
nia:
sygnay analogowe:
sygna pr adowy 4 20mA najbardziej popularny zakres
sygna pr adowy 0 20mA prostszy w realizacji, ale gorszy bo czasem pynie pr ad
sygna napi eciowy 0 10V rzadko, bo sygna napi eciowy atwo zakci c
rezystancyjne (pomiar temperatury) zmiana rezystancji wraz ze zmian a temperatury
sygnay dwustanowe
dominuje 0 / 24V
sieci miejscowe, acz ace sterowniki warstwy nadrz ednej i inteligentne czujniki
sieci lokalne i rozlege, acz ace komputery warstwy nadrz ednej i warstwy zarz adzania
Warunki pracy przez sie c:
Sieci miejscowe:
ostre ograniczenia czasu rzeczywistego (determinizm przekazywania komunikatw)
54
efektywne przenosznie krtkich wiadomo sci
mo zliwo s c do aczenia prostych urz adze n
praca na poziomie hali fabrycznej
Sieci lokalne
agodne ograniczenia czasowe
55
11 Wykad 11 [28.05.2004]
11.1 Przemysowe sieci miejscowe - cd
11.1.1 Warstwa linowa ( acza danych)
Podwarstwa dost epu do acza
Warunkiem poprawnego przekazania komuniktu od nadawcy do odbiorcy jest unikni ecie ko-
lizji, ktra powstaaby w razie jednoczesnego nadawania przez co najmniej dwa w ezly sieci.
Zadaniem podwarstwy dost epu do kabla jest unikni ecie lub rozwi azanie kolizji i umo zliwienie
w ezowi uzyskania wy acznego prawa nadawania. Informacje z wykadw i skryptw do wy-
kadu [1, 2] wzbogacone zostay o informacje z ksi a zki prof. nzw. dr hab. Krzysztofa Sachy
Sieci miejscowe PROFIBUS [3].
1. Algorytm losowy CSMA/CD (carrier sense multiple access with collision detection)
dopuszcza mo zliwo s c kolizji i przewiduje procedur e jej rowi azania. Proces nadania ko-
munikatu dzieli si e na dwie fazy. W pierwszej fazie w eze obserwuje stan kabla i po-
wstrzymuje transmisj e a z do stwierdzenia, ze kabel jest wolny. Nie zabezpiecza to przed
kolizj a z innym w ezem, ktry rwnie z mg obserwowa c stan kabla i rozpocz a c nadanie
w tym samym czasie. Dlatego w drugiej fazie (po rozpocz eciu nadawania) w eze nadal
obserwuje stan kabla i wykrywa ewentualn a kolizj e. W razie kolizji przerywa nadawa-
nie, odczekuje pewnien losowo wybrany czas, po czym ponawia prb e nadawania. Dla
obni zenia prawdopodobie nstwa ponownej kolizji ka zdy w eze losuje czas oczekiwania z
przedziau 0...t. W razie kolizji post epowanie w ezw jest podobne, ale warto s c czasu
oczekiwania jest wybierana losowo z dwukrotnie du zszego przedziau 0...2t, itd.
Warunkiem dziaania algorytmu jest mo zliwo s c wykrywania kolizji przez w ezy nada-
j ace. Narzuca to ograniczenie na minimaln a dugo s c przekazywanych komunikatw
czas nadawania musi by c zawsze du zszy od podwjnego czasu propagacji sygnau przez
najwi eksz a dopuszczaln a odlego s c w sieci. Krtsze wiadomo sci mog a by c przekazane
dopiero po dopenieniu komunikatu nieistotnymi bitami.
Zalety algorytmu CSMA/CD:
prostota realizacji
bardzo wysoka srednia przepustowo s c sieci
Wady algorytmu:
niedeterministyczny czas nadania wiadomo sci
narzucona minimalna dugo s c komunikatu
nieefektwne przekazywanie krtkich komunikatw
Zastosowanie:
powszechnie stosowany w sieciach biurowych (np. Ethernet)
nie nadaje si e dla sieci przemysowych
2. Algorytm z przekazywanie znacznika (token passing) d a zy do unikni ecia kolizji w nor-
malnymstanie sieci. Wka zdej chwili prawo nadawania uto zsamiane z umownymznacz-
nikiem ma tylko jeden w eze. W eze ten mo ze dowolnie wykorzystywa c magistral e
przez pewnien czas t, po upywie ktrego specjalnym komunikatem przekazuje znacz-
nik do nast epnego w eza. Kolejno s c przekazywania znacznika nast epuje przez wysanie
do nast epcy specjalnego komunikatu steruj acego, o okre slonej zawarto sci.
56
Prosty schemat przekazywania znacznika ulega zakceniu w stanach awaryjnych, w kt-
rych znacznik ulegnie nieoczekiwanemu rozmno zeniu, np. na skutek odebrania znacznika
przez dwa w ezy w wyniku przekamania adresu, lub zostanie zgubiony, np. na skutek
awarii w eza, ktry go w danej chwili posiada. W obudwu przypadkach konieczne jest
wykonanie akcji korekcyjnej, ktra znacznie podnosi zo zono s c algorytmu.
Zalety algorytmu z przekazywaniem znacznika:
deterministyczny czas przekazywania komunikatu, rwny co najwy zej czasowi obiegu
znacznika w sieci
brak ogranicze n na minimaln a dugo s c komunikatu
bardzo mae wahania przepustowo sci sieci w zale zno sci od obci a zenia
Wady algorytmu:
narzut czasowy wynikaj acy z konieczno sci cz estego przekazywania komunikatw
zawieraj acych znacznik
skomplikowany algorytm odtwarzania zgubionego znacznika
narzucona maksymalna dugo s c komunikatu
Zastosowanie:
rzadko u zywany w sieciach biurowych
jest dominuj acym sposobem organizacji pracy sieci przemysowych
3. Algorytm podziau czasu TDMA(time division multiple access) nie dopuszcza ani mo z-
liwo sci wyst apienia kolizji ani wahania nat e zenia ruchu w sieci. Caa sie c pracuje w sta-
ym cyklu czasowym o dokadnie okre slonej dugo sci. W ramach cyklu ka zdy w eze ma
na stae przydzielony odcinek czasu, w ktrym musi nada c swj komunikat. Brak komu-
nikatu swiadczy o awarii w eza.
Zalety algorytmu TDMA:
prostota
deterministyczny czas nadania komunikatu
wysoka efektywno s c
Wady algorytmu:
algorytm mo ze dziaa c tylko w sieciach o staej liczbie w ezw i staym powtarzal-
nym rytmie pracy
Zastosowanie:
Sieci o ostrych ograniczeniach czasowych, o staej liczbie w ezw (np. sieci w no-
woczesnych samochodach)
4. Priorytetowe algorytmy CSMA (carrier sense multiple access) zostay opracowane z
my sl a o sieciach stosunkowo wolnych, w ktrych czas nadawania bitu jest du zszy od
podwjnego czasu propagacji sygnau przez sie c. Rozstrzygni ecie kolizji w takiej sieci
mo ze nast api c podczas transmisji komunikatu. Pierwszym elementem komunikatu jest
adres nadawcy. Je zeli w tym samym czasie rozpoczn a nadawanie dwa w ezy, to adresy
obudwu w ezw nao z a si e na siebie. W przypadku niezgodno sci bitw (0 i 1) w sieci
ustali si e warto s c 0. Dzi eki temu w eze, ktry nada 1 (a wi ec w eze o wy zszym adresie),
mo ze wykry c kolizj e i przerwa c nadawanie. W eze o ni zszym adresie mo ze nada c reszt e
komunikatu bez przeszkd.
Zastosowanie:
57
sieci stosunkowo wolne, w ktrych czas nadawania bitu jest du zszy od podwjnego
czasu propagacji sygnau przez sie c
5. Odpytywanie (polling) jest stosowane w systemach o scentralizowanym przetwarzaniu.
W eze nadrz edny (master) regularnie wysya do wszystkich w ezw podporz adkowanych
(slave) komunikaty z zapytaniem o dane. Po otrzymaniu zapytania w eze podporz ad-
kowany wysya odpowied z zawieraj ac a dane lub informacj e o ich braku. Komunikacja
odbywa si e tylko mi edzy w ezem nadrz ednym a w ezami podporz adkowanymi i zawsze
ma charakter transakcji: zapytanie odpowied z.
Zalety algorytmu odpytywania:
prostota sprz egu sieciowego po stronie w ezw podporz adkowanych
Wady algorytmu:
brak mo zliwo sci komunikowania si e w ezw podporz adkowanych
rozpad sieci po awarii w eza nadrz ednego co nie ma jednak du zego znaczenia, gdy z
w eze ten jest i tak niezb edny do pracy systemu
Zastosowanie:
systemy o scentralizowanym przetwarzaniu, np. w sieci acz acej komputer lub ste-
rownik PLC z czujnikami
sieci o topologii magistralowej i gwia zdzistej
6. Pier scie n znacznikowy (token ring) jest stosowany w sieci pier scieniowej, po ktrej
kr a zy umowny znacznik, z ktrym zwi azane jest prawo nadawania. Po otrzymaniu znacz-
nika w eze mo ze zatrzyma c go i rozpocz a c nadawanie. Po zako nczeniu komunikatu prze-
kazuje znacznik do kolejnego w eza. Nadany komunikat przechodzi kolejno przez wszyst-
kie w ezy pier scienia, m.in. przez w eze odbiorcy, po czym wraca do w eza nadaj acego,
ktry nie przesya go dalej.
Wady:
realizacja pier scienia znacznikowego wymaga skomplikowanego ukadu nadawania i
odbioru komunikatw oraz zo zonego algorytmu odzyskiwania znacznika i kongu-
rowania sieci.
Podwarstwa acza logicznego
Denicja podwarstwy acza logicznego nie zale zy od rodzaju kabla i algorytmu dost epu. Je-
dynym wymaganiem stawianym ni zszym warstwom sieci jest mo zliwo s c wysyania komuni-
katu do okre slonego w eza-odbiorcy, przy czym nie wymaga si e niezawodnego dziaania sieci.
Funkcje podwarstwy acza logicznego obejmuj a zapewnienie bezb ednego przekazywania wia-
domo sci oraz organizacj e systemu adresowania komunikatw przeznaczonych dla r znych pro-
gramw wykonywanych w tym samym w e zle sieci. Standard dopuszcza dwa rodzaje protoko-
w tej podwarstwy: zawodn a komunikacj e bezpo aczeniow a i niezawodn a komunikacj e po a-
czeniow a.
Protok bezpo aczeniowy (datagram) okre sla najprostszy rodzaj komunikacji. Przeka-
zywana wiadomo s c jest opatrywana odpowiednim nagwkiem i zako nczeniem i wysy-
ana w postaci komunikatu do odbiorcy. Nadawca wiadomo sci nie podejmuje zadnych
dziaa n dla sprawdzenia, czy przesyka dotara do odbiorcy i czy nie zostaa po drodze
przekamana. B edy transmisji lub brak gotowo sci odbiorcy do odebrania komunikatu
prowadz a nieuchronnie do utraty wiadomo sci.
58
Zalety:
prostota realizacji
du za szybko s c komunikacji
atwo s c rozgaszania (broadcast)
Wady:
zawodno s c przekazu brakuj ace funkcje konrolne musz a by c realizowane przez wy z-
sze warstwy, najcz e sciej warstw e transportow a (je zeli istnieje) lub aplikacyjn a.
Protok po aczeniowy (connection-orientred) zapewnia niezawodny przekaz komuni-
katw mi edzy dwoma dowolnymi w ezami sieci. Komunikacja ma posta c sesji, w trakcie
ktrych w ezy przekazuj a komunikaty zawieraj ace dane oraz informacje steruj ace. Sesja
komunikacji w ezw przebiega w trzech fazach. W pierwszej fazie nast epuje nawi azanie
po aczenia, w wyniku czego wsppracuj ace w ezy mog a przygotowa c si e do wymiany
danych. W ostatniej fazie sesji po aczenie jest zamykane. W fazie srodkowej w ezy mog a
wymienia c dowolne komunikaty danych.
Kolejne komunikaty s a numerowane liczbami naturalnymi modulo 128. Odbiornik kon-
troluje poprawno s c odbioru i przesya potwierdzenia, nie rzadziej ni z co n odebranych ko-
munikatw. Liczba N < 128 jest uzgodnionym parametrem po aczenia. Nadajnik mo ze
wysa c bez potwierdzenia co najwy zej n komunikatw, po czym musi przerwa c nadawa-
nie i oczekiwa c na potwierdzenia. Potwierdzenie zawiera numer komunikatu i oznacza
potwierdzenie wszystkich wcze sniejszych komunikatw, a z do tego numeru w acznie.
Otrzymanie potwierdzenia zezwala nadawcy na wznowienie nadawania. W razie b edu
odbiornik przesya, zamiast potwierdzenia, z adanie retransmisji komunikatw przeka-
manych. W razie dugotrwaego braku odpowiedzi nadajnik powtarza ostatni komunikat.
Brak odpowiedzi po kilku prbach oznacza awari e odbiorcy.
Adresowanie nadawcw i odbiorcw komunikatw za pomoc a w ezw sieci jest zbyt mao
selektywne. Ka zdy w eze mo ze wykonywa c wiele r znych programw i rzeczywistymi partne-
rami komunikacji s a nie w ezy lecz wykonywane programy. Z tego powodu konieczny jest do-
datkowy mechanizm adresowy, umo zliwiaj acy logiczne podzielenie sieci na odr ebne kanay a-
cz ace wsppracuj ace programy. Taki mechanizm tworz a porty (SAP Service Access Point),
czyli indywidualnie adresowane skrzynki pocztowe, poprzez ktre programy mog a nadawa c
i odbiera c komunikaty poprzez r zne porty. Numery portw nadawcy i odbiorcy s a zapisane w
tre sci przekazywanych komunikatw.
Zalecenia do sieci miejscowych:
Protok znacznikowy
deterministyczny czas przekazu
efektywny przekaz krtkich wiadomo sci
zdecentraliowane sterwanie sieci
Odpytywanie w ezw podporz adkowanych
prosty sprz eg w ezw podporz adkowanych
Protok komunikacyjny po aczeniowy
du za pewno s c przekazu
59
11.2 Sie c PROFIBUS
PROFIBUS (Process Field Bus) jest popularn a sieci a miejscow a, przeznaczon a do wykorzysta-
nia w rozproszonych systemach sterowania i nadzoru.
przeznaczenie: systemy sterowania i nadzoru
typowe w ezy sieci:
inteligentne czujniki i elementy wykonacze
regulatory
sterowniki programowalne i numeryczne
lokalne stacje operatorskie
Warstwa fizyczna
(PHY)
Warstwa liniowa
(FDL)
Warstwa zarzadzania
(FMA 1/2)
Warstwa aplikacyjna
(FMS)
Warstwa zarzadzania
(FMA 7)
Sprzeg aplikacji
(ALI)
Warstwa sprzegajaca
(LLI)
Warstwa 1
Warstwa 2
Warstwa 7
Uslugi warstwy 2
Uslugi warstwy 7
Rysunek 41: Warstwy modelu sieci PROFIBUS
Protokoy komunikacyjne sieci PROFIBUS deniuje norma DIN 19245. Denicja obejmuje:
warstw e zyczn a sprz eg RS 485
warstw e liniow a ( acza danych)
Warstaw liniowa implementuje dwa rodzaje usug: niezawodne przekazywanie komunikatu z
odpowiedzi a lub potwierdzaniem odbioru oraz przekazanie komunikatu bez potwierdzenia, w
tym rozgaszanie (broadcast).
warstw e aplikacyjn a
Warstwa aplikacyjna jest opcjonalna: u zytkownicy, tzn. wykonywane programy, mog a korzy-
sta c z sieci wywouj ac albo usugi warstwy aplikacyjnej, albo warstwy liniowej
11.2.1 Warstwa zyczna: sprz eg RS-485
Denicja warstwy zycznej opiera si e na specykacji sprz egu RS-485. Podstawow a struktur a
sieci jest liniowy segment kabla skr etki, zako nczony na obydwu kra ncach terminatorami. Mak-
symalna dugo s c segmentu zale zy od szybko sci transmisji i jako sci kabla. Zalecane warto sci tych
parametrw podaje tabela poni zej. Norma dopuszcza jednak zwi ekszenie dugo sci segmentu, pod
warunkiem, ze jego tumienie nie przekroczy 6dB. W praktyce podan a w tabeli dugo s c segmentu
60
mo zna podwoi c stosuj ac skr etk e o przekroju przewodnika nie mniejszym ni z 0.5mm
2
.
Maksymalna liczba w ezw sieci, ktre mog a by c do aczone, do tego samego segmentu kabla
wynika z elektrycznych specykacji sprz egu RS-485, przytoczonych w tabeli poni zej. Liczba ta nie
mo ze przekracza c 32 standardowych w ezw, wznosz acych maksymalnie obci a zenie okre slone przez
dopuszczalne warto sci rezystancji nadajnika i odbiornika. Przy napi eciu 12V jeden nadajnik mo ze
obci a zy c lini e pr adem co najwy zej 0.1mA, a odbiornik pr adem co najwy zej 1mA. Je zeli zastosowane
zostan a ukady nadajnikw i odbiornikw wnosz ace mniejsze obci a zenie, to mo zliwe jest do aczenie
do segmentu sieci wi ekszej liczby w ezw. Obecnie dost epne ukady nadajnikw i odbiornikw
wnosz a obci a zenie czterokrotnie mniejsze od maksymalnego, co umo zliwia do aczenie do segmentu
sieci nawet 128 w ezw. Ukady nadajnikw i odbiornikw mog a, lecz nie musz a gwarantowa c
galwaniczn a izolacj e w ezw i kabla.
Rodzaj kabla ekranowana skr etka o impedancji falowej 100...130, pojemno s c mi edzy
przewodami nie przekraczaj aca 60pF/m i przekroju przewodnika co naj-
mniej 0.22mm
2
Topologia magistralowa, dugo s c doprowadze n w ezw 0.3m
Szybko s c transmisji 9.6; 19.2; 93.75; 187.5; 500 lub 1500 Kbit/s
Dugo s c segmentu zale zy od szybko sci transmisji i wynosi:
1200m dla szybko sci 93.75 Kbit/s
600m dla szybko sci 187.5 Kbit/s
200m dla szybko sci 1500 Kbit/s
Liczba w ezw co najwy zej 32 w ezy (lub powtarzacze) w obr ebie segmentu
Sie c mo zna budowa c z wielu oddzielnych segmentw, acz ac je ze sob a za pomoc a powtarza-
czy. Liczb e po aczonych segmentw ogranicza warunek, ze pomi edzy dwoma dowolnymi w ezami
nie mog a znajdowa c si e wi ecej ni z trzy powtarzacze. Maksymalnie sie c mo ze si e wi ec skada c z
czterech segmentw po aczonych w a ncuch albo z wi ekszej liczby segmentw po aczonych gwia z-
dzi scie. Niezale znie od liczby segmentw sie c mo ze zawiera c co najwy zej 127 w ezw. Ogranicze-
nie to wynika z liczby bitw przeznaczonych na adres w eza sieci w polu adresowym komunikatu.
Norma DIN 19245 przewiduje co prawda mo zliwo s c rozszerzenia systemu adresowania i wprowa-
dzenie adresw segmentowych, jednak komplikuje to budow e sprz egu sieciowego i w praktyce jest
wykorzystane bardzo rzadko.
11.2.2 Warstwa liniowa ( acza danych)
W ezy dziel a si e na:
nadrz edne (master) ktre mog a nadawa c komunikaty z wasnej inicjatywy
podrz edne (slave) ktre mog a tylko odpowiada c na zapytania w ezw nadrz ednych.
W ka zdej chwili sie c jest nadzorowana przez jeden z w ezw nadrz ednych, ktry mo ze w tym czasie
wymienia c dane z innymi w ezami. Prawo nadzorowania sieci, uto zsamiane z umownym znaczni-
kiem, jest przekazywane cyklicznie mi edzy wszystkimi w ezami nadrz ednymi. Ka zdy w eze mo ze
61
przetrzymywa c znacznik tylko przez ograniczony odcinek czasu.
Wymiana danych w sieci jest zorganizowana w formie transakcji rozpoczynaj acych si e komuni-
katem akcji, wysanym przez w eze nadrz edny posiadaj acy znacznik, a ko ncz acych si e komunikatem
odpowiedzi, wysyanym przez w eze, ktry odebra komunikat akcji. Rytm wykonywania transakcji
nie jest zwi azany z rytmem pracy przetwarzania danych przez w eze odpowiadaj acy. Odpowied z na
komunikat akcji musi by c natychmiastowa. Je sli komunikat odpowiedzi ma zawiera c dane, to s a one
pobierane i wysyane z bufora komunikacyjnego, wypenionego wcze sniej przez program u zytkowa-
nika. Dane zawarte w komunikacie akcji nie mog a by c wi ec traktowane jako odpowied z na zapytanie
zawarte w komunikacie akcji taka odpowied z mo ze pojawi c si e dopiero w nast epnej transakcji.
Protok dost epu do kabla
wszystkie w ezy sieci s a identykowane adresami z zakresu 0...126
adres 127 jest zarezerwowany jako adres rozgaszania
umowny znacznik jest przekazywany pomi edzy w ezami nadrz ednymi w kolejno sci rosn acych
adresw (tylko w eze o najwy zszym adresie przekazuje znacznik w ezowi o adresie najni z-
szym)
62
12 Wykad 12 [04.06.2004]
12.1 Sie c PROFIBUS - cd
12.1.1 Warstwa liniowa ( acza danych) - cd
Protok dost epu do kabla
Wszystkie w ezy sieci s a identykowane numerycznymi adresami z zakresu 0...126. Adres 127
jest zarezerwowany jako adres rozgaszania. W ezy nadrz edne przekazuj a sobie znacznik w kolejno-
sci rosn acych adresw.
Pier scie n obiegu znacznika. Podstaw a realizacji algorytmu przekazywania znacznika w ka zdym
w e zle jest zesp trzech parametrw:
TS adres wasny w eza (ten parametr, jako jedyny jest okre slany w czasie konguracji sieci,
reszt e w eze sam sobie okre sla)
PS adres poprzednika, tzn. w eza, od ktrego jest otrzymywany znacznik
NS adres nast epnika, tzn. w eza, do ktrego jest przekazywany znacznik
Przekazanie znacznika polega na nadaniu specjalnego komunikatu steruj acego, zawieraj acego ad-
resy TS i NS. W eze odbieraj acy znacznik porwnuje adres nadawcy z adresem poprzednika PS i
je sli adresy te s a rwne, to przyjmuje znacznik i rozpoczyna wykonywanie transakcji. Je sli znacznik
zosta nadany przez innego nadawc e, to za pierwszym razem w eze odbieraj acy nie przyjmuje go.
Je zeli nadawca ponowi transmisj e i w eze otrzyma znacznik po raz drugi, to przymuje go, uznaj ac, ze
nast apia rekonguracja sieci.
W eze, ktry przekaza znacznik, oczekuje teraz przez pewnien czas na pojawienie si e transmisji w
sieci. Je sli transmisja nast api, to uznaje, ze znacznik zosta przekazany i inny w eze przej a nad-
zr nad prac a sieci. W przeciwnym wypadku powtarza prb e i ponownie oczekuje na rozpocz ecie
transmisji. Prba przekazania znacznika jest powtarzana 3-krotnie. Je zeli w tym czasie znacznik nie
zostanie odebrany, to w eze nadaj acy prbuje przekaza c go do w eza nast epnego po NS. Procedura
poszukiwania nast epnika jest kontynuowana, a z do pomy slnego przekazania znacznika lub do wy-
czerpania w ezw sieci. W pierwszym przypadku w eze modykuje adres swojego nast epnika NS.
W drugim zatrzymuje znacznik i zachowuje si e, jakby otrzyma go od poprzenika.
Wykonanie transmisji. Dotrzymanie zadanego czasu oczekiwania w eza nadrz ednego na prawo
nadawania wymaga staej kontroli dugo sci cyklu obiegu znacznika i ograniczenia przedziau czasu,
przez ktry w eze mo ze zatrzyma c znacznik wswoimposiadaniu. Wtymcelu ka zdy w eze nadrz edny
mierzy czas, jaki upyn a od chwili ostatniego otrzymania znacznika, i dostosowuje dziaanie do
obci a zenia sieci. Procesem tym steruj a warto sci dwu parametrw czasowych:
T
TR
(target rotation) staa okre slaj aca zadan a dugo s c cyklu obiegu znacznika w sieci (warto s c
ustalana podczas konguracji sieci taka sama dla wszystkich w ezw)
T
RR
(real rotation) zmierzona dugo s c rzeczywistego obiegu znacznika w sieci (warto s c ta jest
mierzona przez w eze w ka zdym cyklu obiegu znacznika)
R znica tych dwch parametrw:
T
TH
= T
TR
T
RR
63
okre sla przedzia czasu, ktry w eze mo ze wykorzysta c na realizacj e transakcji bez naruszenia zada-
nej dugo sci cyklu obiegu znacznika.
Po otrzymaniu znacznika w eze oblicza czas T
TH
. Niezale znie od wyniku ma prawo do nada-
nia jednej transakcji priorytetowej. Dalsze transakcje mo ze wykonywa c tylko w obr ebie czasu T
TH
.
Ka zda transakcja rozpoczyna si e komunikatem akcji, po wysaniu ktrego w eze oczekuje pewnien
czas na pojawienie si e odpowiedzi. Odebranie odpowiedzi oznacza zako nczenie transkacji. Brak
odpowiedzi powoduje powtrzenie komunikatu akcji i ponowne oczekiwanie na odpowied z. Liczba
powtrze n jest parametrem konguracji sieci. Ponadto je sli w czasie wykonywania transakcji zosta-
nie przekroczony czas T
TH
, to pomimo op znienia w eze kontynuuje wykonywanie transkacji, a z do
jej penego zako nczenia, wliczaj ac w to ewentualne powtarzanie komunikatw, ktre pozostay bez
odpowiedzi.
Rodzaje transkacji. Podstawowym trybem pracy ka zdego w eza nadrz ednego jest cykliczne od-
pytywanie wsppracuj acych z nim w ezw podrz ednych i nadrz ednych. Steruje tym zdeniowana
przez u zytkownika lista odpytywania (poll list) zawieraj aca adresy w ezw i numery portw podle-
gaj acych odpytywaniu. Ka zda pozycja listy okre sla jedn a transakcj e. Wszystkie transakcje zwi azane
z odpytywaniem s a transakcjami niskiego priorytetu. Oprcz odpytywania, w eze posiadaj acy znacz-
nik mo ze wykonywa c zlecane przez u zytkownika transakcje sporadyczne, ktre mog a mie c priorytet
wysoki lub niski.
Dodawanie i usuwanie w ezw. Dodawanie w eza nadrz ednego do pracuj acej sieci sprowadza
si e do w aczenia go do pier scienia obiegu znacznika. Procedura w aczania nowych w ezw polega na
wysyaniu w kolejnych obiegach znacznika zapyta n pod kolejne niewykorzystane adresy sieci. Za-
pytanie jest transakcj a niepriorytetow a, wykonywan a w miar e wolnego czasu. Pozytywna odpowied z
na zapytanie oznacza pojawienie si e nowego w eza. W eze posiadaj acy znacznik przyjmuje adres
nowego w eza jako adres nast epnika NS.
Usuni ecie w eza nie wymaga zadnych specjalnych dziaa n. W eze, ktry nie przyjmuje znacznika jest
automatycznie usuwany z pier scienia obiegu.
Odzyskiwanie znacznika. Podczas normalnej pracy w sieci nieustannie kr a zy znacznik. Stan
bezczynno sci mo ze wyst api c w przypadku znikni ecia znacznika na skutek awarii lub przekama-
nia komunikatu. Wznowienie pracy wymaga odzyskania znacznika i ustalenia w eza sprawuj acego
nadzr nad sieci a. W tym celu ka zdy w eze nadrz edny obserwuje stan sieci i mierzy czas jej bezczyn-
no sci. Je sli dugo s c tego czasu osi agnie pewn a warto s c, proporcjonaln a do adresu w eza, to w eze
uznaje si e za posiadacza znacznika i rozpoczyna normalne wykonywanie transakcji.
Planowanie obci a zenia sieci. Realna dugo s c cyklu obiegu znacznika zale zy od szybko sci sieci
i od obj eto sci danych, ktre powinny by c przekazane w ka zdym cyklu. Parametry te nale zy okre sli c
podczas projektowania sieci, wyznaczaj ac odpowiednia warto sci:
n liczba w ezw nadrz ednych
k przewidywalna liczba transakcji niepriorytetowych w ka zdym cyklu
m przewidywalna liczba powtrze n w ka zdym cyklu
T
TC
czas przekazania znacznika
T
MC
czas transakcji priorytetowej (h), niepriorytetowej (l) i powtrzenia (r)
64
Po okre sleniu tych warto sci mo zemy wyliczy c minimaln a dugo s c cyklu obiegu znacznika, mo zliw a
do utrzymania w sieci, korzystaj ac z nast epuj acego wzoru:
T
TR
= n(T
TC
+ T
MCh
) + kT
MCl
+ mT
MCr
Warto sci czasw T
TC
i T
MC
zale z a od szybko sci transmisji i dugo sci przekazywanych komunikatw.
Przewidywana liczba powtrze n zale zy od stoy b edw. Prawidowe oszacowanie tych parametrw
i obliczenie okresu czasu T
TR
stwarzaj a gwarancj e przekazania zaplanowanych danych w ka zdym
obiegu znacznika.
Protok komunikacyjny
Warstwa liniowa przekazuje komunikaty nadawane i odbierane przez u zytkownikw r znych w ezw
za po srednictwem portw, czyli odr ebnych skrzynek pocztowych okre slonych w poszczeglnych
w ezach sieci.
Adresowanie: numery w ezw numery portw
Usugi:
1. Wysyanie danych z potwierdzeniem (SDA Send Data with Acknowledge)
Wykonanie tej usugi polega na wysaniu komunikatu akcji zawieraj acemu dane i ode-
braniu potwierdzenia odbioru. Potwierdzenie wysya warstwa liniowa w eza adresata po
odebraniu komunikatu akcji. Brak potwierdzenia lub b ad w jego odbiorze powoduj a re-
transmisj e komunikatu akcji przez wartw e liniow a w eza inicjuj acego.
Usuga mo ze mie c priorytet wysoki lub niski.
2. Wysyanie danych bez potwierdzenia (SDN Send Data with No acknowledge)
Wykonanie tej usugi polega na wysaniu komunikatu akcji zawieraj acego dane do jednego
lub wielu u zytkownikw sieci. Transakcja nie zawiera komunikatu odpowiedzi.
Usuga mo ze mie c priorytet wysoki lub niski.
3. Wysyanie danych i odebranie odpowiedzi (SRD Send and Request Data with reply)
Wykonanie usugi polega na wysaniu komunikatu akcji i odebraniu komunikatu odpo-
wiedzi. Komunikat akcji mo ze zawiera c dane i z adanie odpowiedzi, albo tylko z adanie
odpowiedzi. Komunikat odpowiedzi mo ze zawiera c albo dane odczytane z bufora portu,
albo potwierdzenie negatywne, informuj ace o braku danych w buforze. Brak odpowiedzi
lub b ad w odbiorze odpowiedzi powoduj a retransmisj e komunikatu akcji przez warstw e
liniow a w eza inicjuj acego.
Usuga mo ze mie c priorytet wysoki lub niski.
4. Cykliczne wysyanie danych i odbieranie odpowiedzi (CSRD Cyclic Send and Re-
quest Data with reply)
Usuga umo zliwia u zytkownikowi inicjuj acemu cykliczne odpytywanie jednego lub wielu
u zytkownikw docelowych, ktrych adresy w ezw i numery portw zostan a umiesz-
czone na tzw. li scie odpytywania (poll list). Proces odpytywania polega na wysaniu ko-
munikatw akcji do kolejnych u zytkownikw wymienionych na tej li scie i odebraniu od
nich komunikatw odpowiedzi. Po wyczerpaniu listy proces odpytywania powtarza si e od
pocz atku. Dla zwi ekszenia cz estotliwo sci odpytywania, czyli pewnego uprzywilejowania
wybranych u zytkownikw docelowych, ten sam u zytkownik mo ze by c wymieniony na
li scie wielokrotnie. Zarwno budowa komunikatw, jak i sposb ich wymiany z ka zdym
u zytkownikiem docelowym s a takie same, jak podczas realizacji usugi SRD.
Wszystkie transakcje maj a niski priorytet.
65
Sprz eg programu (API)
Standard sieci Probus deniuje abstrakcyjne usugi sieciowe, natomiast nie okre sla sposobu wy-
woywania tych usug przez programy u zytkowe. Sprz eg programu z usugami sieciowymi (API
Application Program Interface) zale zy od wytwrcy oprogramowania i charakteru systemu operacyj-
nego i mo ze by c w r znych systemach r zny.
Sprz eg komputera z sieci a skada si e z nast epuj acych elementw:
ukady nadajnikw i odbiornikw sprz egu RS-485 sterownika sieciowego (karty sieciowej),
realizuj ace funkcje warstwy zycznej;
oprogramowanie mikrokomputera wbudowanego w sterownik sieciowy, realizuj ace protok
warstwy liniowej (FDL);
proces serwera komunikacyjnego, realizuj acy protok warstwy aplikacyjnej (FMS) i po sred-
nicz acy w komunikacji programu ze sterownikiem sieciowym;
biblioteka funkcji j ezyka C, realizuj aca funkcje sprz egu programu (API) i umo zliwiaj aca wy-
woywanie usug sieciowych warstw FDL i FMS;
program konguratora, realizuj acy interakcyjne usugi warstw zarz adzania.
12.1.2 Warstwa aplikacyjna
Usugi warsty liniowej umo zliwiaj a przekazywanie komunikatw o nieokre slonej strukturze we-
wn etrznej, nie rozpoznawanej przez oprogramowanie komunikacyjne. Ogranicza to automatyczn a
kontrol e poprawno sci komunikatw i utrudnia wspoprac e w ezw sieci, posuguj acych si e r znymi
formatami danych. Usugi warstwy aplikacyjnej zdeniowane s a w specykacji FMS (Fieldbus Mes-
sage Specication) umo zliwiaj a dost ep do obiektw programowych, takich jak: zmienne, tablice lub
rekordy, istniej acych w innych w ezach sieci. Udost epnione do komunikacji obiekty mog a przyjmo-
wa c warto sci nale z ace do sci sle okre slonych typw, a format transmisji warto sci typw jest szczeg-
owo okre slony.
Wezel a
Programy
uzytkowe
OD
Wezel b
Program
serwera
OD
Wywolanie uslugi
Potwierdzenie
Usluga niepotwierdzana
Obiekt programowy Opis obiektu
Relacja komunikacyjna i porty
VFD VFD
Rysunek 42: Wirtualne urz adzenia sieciowe, relacja kounikacyjna i wywaoanie usug
66
Model komunikacyjny przyj ety w warstwie aplikacyjnej jest zgodny ze schematem klient-serwer,
w ktrym serwer udost epnia swoje obiekty dla dziaa n klientw (rys. 42). Wszystkie obiekty, zde-
niowane w danym w e zle i przeznaczone do udost epnienia w sieci, musz a by c opisane w sowniku
obiektw (OD object directory), utrzymywanym przez wartw e aplikacyjn a tego w eza. Wi ek-
szo s c usug warstwy aplikacyjnej stanowi a usugi potwierdzane, ktrych wywoanie przez klineta
przekazuje do serwera komunikat zawieraj acy z adanie wykonania operacji, np. odczytu lub zapisu
wskazanego obiektu, a potwierdzenie wysane przez serwer przenosi do klienta rezultat wykonania
tej operacji. Nieliczn a grup e stanowi a usugi niepotwierdzane, ktrych wykonanie przenosi komuni-
kat informuj acy o stanie lub warto sci jakiego s obiektu. Te same programy mog a wywoywa c r zne
usugi, peni ac zarwno rol e klienta, jak i serwera.
Relacje komunikacyjne i po aczenia
Denicja warstwy aplikacyjnej nie uwzgl ednia struktury oprogramowania narzuconej przez sys-
tem operacyjny w eza i nie rozr znia ani procesw, ani u zytkownikw zarejestrowanych w systemie.
Ka zdy wykonywany program ma te same prawa dost epu do obiektw udost epnianych w sieci.
Warstwa liniowa implementuje w w e zle sieci pewien zestaw portw, przez ktre przepywaj a
wszystkie komunikaty wysyane lub odbierane przez ten w eze. Para portw po jednym w ka zdym
z dwch wsppracuj acych w ezw tworzy relacj e komunikacyjn a dost epn a dla wykonywanych
w tych w ezach programw. Denicja relacji komunikacyjnej obejmuje: numer portu wasnego w e-
za, adres i numer portu w eza docelowego oraz list e usug, ktre mog a by c w tej relacji realizowane.
Poszczeglne relacje mo zna traktowa c jako odr ebne kanay komunikacyjne, poprzez ktre programy
mog a wywoywa c usugi adresowanie do innych w ezw. Wykonanie usugi warstwy aplikacyjnej
polega na przesaniu lub wymianie pojedynczych komunikatw w sieci.
Relacje komunikacyjne deniuje si e w ka zdym w e zle oddzielnie podczas kongurowania w eza.
Zestaw wszystkich relacji zdeniowanych w danym w e zle tworzy list e relacji komunikacyjnych
tego w eza. Numer na tej li scie (communication reference CREF) jest identykatorem relacji u zy-
wanym jako parametr adresowy w wywoaniach usug warstwy aplikacyjnej.
Niemal wszystkie relacje komunikacyjne s a relacjami po aczeniowymi. Raz nawi azanie po a-
czenie jest symetryczne i dwukierunkowe, tzn. ka zdy ze wsppracuj acych programw mo ze peni c
rol e klienta lub serwera usug wywoywanych w tym po aczeniu. Relacje bezpo aczeniowe (connec-
tionless) wykorzystuje si e wy acznie do przekazywania danych skierowanych do odbiorcw w wielu
w ezach sieci.
Obiekty
Warstwa aplikacyjna separuje u zytkownikw od techniki komunikacji sieciowej i nie odwouje si e
do poj ecia komunikatu, lecz okre sla dziaania na obiektach w dziedzinie programu. Podstawowymi
obiektami s a:
zmienna: prosta, tablica lub rekord
zdarzenie sygnalizuj ace stan szczeglny we wsppracuj acym programie
domena (domain) segment pami eci, do ktrego mo zna zaadowa c np. nowy program lub
zestaw parametrw konguracyjnych
program (zaadowany do domeny), ktry mo zna uruchomi c, zatrzyma c, itp.
67
obiekt zyczny (physical access object), charakteryzowany przez adres i dugo s c, natomiast o
nieznanej strukturze wewn etrznej.
Opis obiektu, przechowywany jest w sowniku obiektw, obejmuje nast epuj ace elementy:
rodzaj obiektu
typ danych zwi azanych z tym obiektem
adres miejsca zapisania danych
dugo s c danych
atrybuty praw dost epu
Obiekty mo zna wskazywa c poprzez podanie indeksu w sowniku obiektw lub przez podanie nazwy.
Typy danych. Specykacja FMS deniuje 14 standardowych typwdanych wyliczonych wtabeli
poni zej.
Nazwa Indeks Dugo s c Nazwa Indeks Dugo s c
Boolean 1 1 Floating Point 8 4
Integer8 2 1 Visible String 9 1, 2, 3, . . .
Integer16 3 2 Octet String 10 1, 2, 3, . . .
Integer32 4 4 Date 11 7
Unsigned8 5 1 Time Of Day 12 4 lub 6
Unsigned16 6 2 Time Difference 13 4 lub 6
Unsigned32 7 4 Bit String 14 1, 2, 3, . . .
Usugi warstwy aplikacyjnej
Usugi warstwy aplikacyjnej udost epniaj a obiekty zdeniowane w dowolnym w e zle sieci progra-
mom wykonywanym w innych w ezach. Wykonywanie wi ekszo sci usug sprowadza si e do przesya-
nia warto sci przypisanych do obiektw lub polece n zmieniaj acych stan tych obiektw. Specykacja
FMS deniuje ka zd a usug e za pomoc a czterech operacji, ktrych wykonywanie przez programy war-
stwy aplikacyjnej skada si e na wykonywanie usugi.
Operacje:
request wywoanie usugi przez klienta
indication sygnalizacja odebrania wywoania
response udzielenie odpowiedzi
conrm sygnalizacja odebrania potwierdzenia
68
Klient Serwer Rodzaj usugi
request indication usuga potwierdzana
conrm response
indication request usuga niepotwierdzana
Lista wszystkich usug warstwy aplikacyjnej jest do s c duga. W praktycznych realizacjach jest na
og tylko pewien podzbir usug, obejmuj acy wszystkie usugi zarz adzaj ace, usugi umo zliwiaj ace
przekazywanie danych Read i Write oraz usugi zwi azane z sygnalizowaniem zdarze n.
Usugi zarz adzaj ace
Usugi tej grupy umo zliwiaj a nawi azywanie i usuwanie po acze n oraz identykacj e w ezwwsp-
pracuj acych w ramach po aczenia.
Initiate nawi azanie po aczenia
Wywoanie usugi powoduje nawi azanie po aczenia we wskazanej relacji komunikacyjnej oraz
uzgodnienie warunkw wsppracy: zestawu usug opcjonalnych, atrybutw identykuj acych
prawa dost epu do obiektw i maksymalnej dugo sci komunikaw sieciowych.
Abort usuni ecie po aczenia
Wywoanie usugi powoduje natychmiastowe usuni ecie po aczenia. Usuga mo ze by c wywo-
ana przez jeden z programw uczestnicz acych w po aczeniu lub przez oprogramowanie komu-
nikacyjne.
Reject odrzucenie usugi
Usuga Reject jest wywoywana przez warstw e FMS w celu odrzucenia b ednego komunikatu.
Identify identykacja wsppracuj acego w eza
Wywoanie usugi powoduje odczytanie i przekazania do klienta parametrw identykuj acych
rodzaj urz adzenia znajduj acego si e po stronie serwera. Wywoanie usugi nie wymaga zadnych
argumentw, a jej wykonanie przekazuje klientowi nast epuj ace dane: nazwa producenta, nazwa
modelu i numer wersji urz adzenia.
Status odczytanie stanu wsppracuj acego w eza
Wywoanie usugi powoduje przekazanie do klienta opisu stanu urz adzenia znajduj acego si e po
stronie serwera. Wywoanie usugi nie wymaga zadnych argumentw.
UnsolicitedStatus raport stanu urz adzenia. Wywoanie usugi powoduje wysanie raportu zawiera-
j acego opis stanu wasnego urz adzenia. Tre s c opisu jest identyczna z tre sci a opisu przekazywa-
nego za pomoc a usugi Status. Usuga niepotwierdzana, wywoywana z priorytetem wysokim
lub niskim.
Obsuga sownika obiektw (OD)
Obiekty udost epniane w sieci s a opisane w sowniku obiektw serwera. Usugi tej grupy umo zli-
wiaj a klientom odczytywanie opisw obiektw ze sownika, a tak ze zapisywanie ich w sowniku.
69
Indeks Rodzaj Typ Adres . . .
20 zmienna 2 2300fa34
21 zmienna 10 2300fa36 15-bajtw
23 tablica 8 23010000 6
30 rekord 16 23010018
GetOD odczytanie opisu sownika
Wywoanie usugi powoduje odczytanie ze sownika obiektw serwera opisu obiektu wskaza-
nego przez indeks lub nazw e. Usuga mo zliwa rwnie z odczytanie ze sownika serii kolejnych
opisw obiektw, okre slonych przez indeks pierwszego obiektu, od ktrego ma si e rozpocz a c
odczytywanie. Liczba odczytanych opisw zale zy od ich dugo sci i od maksymalnej dugo sci
komunikatw przekazywanych w danym po aczeniu.
InitiatePutOD otwarcie sesji modykacji sownika obiektw
Wywoanie usugi przygotowuje serwer na przyj ecie i zapisanie w sowniku OD sekwencji
opisw obiektw nadesanych przez program klienta za pomoc a usugi PutOD. Zamkni ecie
sesji modykacji nast epuje po wykonaniu usugi TerminatePutOD.
PutOD zapisanie opisu obiektu lub zestawu opisw obiektw
Wykonanie usugi zapisauje w sowniku obiektw serwera sekwencj e opisw obiektw nade-
sanych przez program klienta. Obiekty, ktrych opis skada si e wy acznie z indeksu s a ze
sownika usuwane. Wykonanie usugi nie wymaga zadnych argumentw, a jej poprawne wy-
konanie przkazuje klientowi kod powierdzenia.
TerminatePutOD zamkni eci sesji modykacji sownika obiektw
Wykonanie usugi zamyka sesj e modykacji sownika OD i powoduje utworzenie wszystkich
nowych obiektw. Je zeli utworzenie jakiego s obiektu jest niemo zliwe, to zostaje odtworzony
poprzedni stan sownika.
70
13 Wykad 13 [15.06.2004]
13.1 Sie c PROFIBUS - cd
13.1.1 Warstwa aplikacyjna - cd
Dost ep do zmiennych
Usugi dziaaj ace na zmiennych umo zliwiaj a odczytywanie i zapisywanie warto sci zmiennych
zdeniowanych w innych w ezach sieci oraz komunikowanie warto sci wasnych zmiennych innym
programom. Dost ep do obiektw zo zonych (tablic lub rekordw) mo ze dotyczy c zarwno caych
obiektw adresowanych przez podanie indeksu (lub nazwy), jak i poszczeglnych elementw.
Read odczytanie warto sci zmiennej prostej lub zo zonej
Wykonanie usugi powoduje odczytanie przez program klienta warto sci zmiennej prostej lub
zo zonej, albo warto sci elementu zmiennej zo zonej, zdeniowanych po stronie serwera w od-
legym w e zle sieci. Argumentami wywoania usugi s a: indeks (lub nazwa) zmiennej oraz
podindeks elementu zmiennej zo zonej.
Write podstawienie warto sci na zmienn a prost a lub zo zon a
Wykonanie usugi powoduje zapisanie przez program klienta nowej warto sci zmiennej prostej
lub zo zonej, albo warto sci elementu zmiennej zo zonej, zdeniowanych po stronie serwera w
odlegym w e zle sieci. Argumentami wywoania usugi s a: indeks (lub nazwa) zmiennej oraz
podindeks elementu zmiennej zo zonej.
InformationReport wysanie warto sci zmiennej prostej lub zo zonej
Wykonanie usugi powoduje wysanie raportu zawieraj acego warto s c zmiennej prostej lub zo-
zonej, albo warto s c elementu zmiennej zo zonej. Usuga niepotwierdzana, wywoywana z prio-
rytetem wysokim lib niskim.
ReadWithType odczytanie warto sci i opisu typu zmiennej
Wykonanie usugi powoduje odczytanie przez program klienta warto sci zmiennej prostej lub
zo zonej, albo warto sci elementu zmiennej zo zonej, zdeniowanych po stronie serwera w od-
legym w e zle sieci. Wraz z warto sci a zmiennej do klienta jest przekazywany tak ze opis typu
odczytanej warto sci. Argumentami wywoania usugi s a: indeks (lub nazwa) zmiennej oraz
podindeks elementu zmiennej zo zonej.
WriteWithType podstawienie warto sci i opisu typu zmiennej
Wykonanie usugi powoduje zapisanie przez program klienta nowej warto sci zmiennej prostej
lub zo zonej, albo warto sci elementu zmiennej zo zonej, zdeniowanych po stronie serwera w
odlegym w e zle sieci. Zapisywana warto s c jest przekazywana przez program klienta wraz z
opisem typu. Argumentami wywoania usugi s a: indeks (lub nazwa) zmiennej oraz podindeks
elementu zmiennej zo zonej, warto s c oraz opis typu danych przekazywanej warto sci
InformationReportWithType wysanie warto sci zmiennej prostej lub zo zonej
Wykonanie usugi powoduje wysanie raportu zawieraj acego warto s c zmiennej prostej lub zo-
zonej, albo warto s c elementu zmiennej zo zonej, oraz opis typu wysanej warto sci. Usuga nie
jest potwierdzana.
PhysRead odczytanie obiektu zycznego
Wykonanie usugi powoduje odczytanie przez program klienta warto sci obiektu zycznego,
zdeniowanego po stronie serwera w odlegym w e zle sieci. Warto sci a obiektu jest ci ag bajtw,
nie interpretowany przez oprogramowanie komunikacyjne. Argumentami wywoania usugi s a
adres i dugo s c obiektu w pami eci serwera.
71
PhysWrite zapisanie obiektu zycznego
Wykonanie usugi powoduje zapisanie przez program klienta nowej warto sci obiektu zycz-
nego, zdeniowanego przez program serwera w odlegym w e zle sieci. Warto sci a obiektu jest
ci ag bajtw, nie interpretowany przez oprogramowanie komunikacyjne. Argumentami wywo-
ania usugi s a adres i dugo s c obiektu w pami eci serwera oraz warto s c obiektu (ci ag bajtw).
DeneVariableList utworzenie listy zmiennych
Wykonanie usugi powoduje utworzenie listy zawieraj acej wskazane zmienne i zapisanie opisu
tej listy, jako nowego obiektu, w sowniku OD serwera. Wszystkie zmienne aczone w list e
musz a by c wcze sniej zdeniowane i opisane w sowniku OD.
DeleteVariableList usuni ecie listy zmiennych
Wykonanie usugi powoduje usuni ecie opisu listy zmiennych za sownika obiektw serwera.
Usuni ecie opisu listy zmiennych nie wpywa na istnienie i warto s c samych zmiennych.
Dost ep do zmiennych
Zdarzenie jest sytuacj a szczegln a, o ktrej musz a by c powiadomione programy wykonywane
w innych w ezach sieci. Lista zdarze n jest ustalona, a zdarzenia s a obiektami opisanymi w sowniku
OD. Ze zdarzeniem mog a by c zwi azane dane, a kolejne wyst apienia zdarzenia mog a by c numerowane
liczbami naturalnymi. Powiadomienie o zdarzeniu polega na wysaniu raportu zawieraj acego indeks
zdarzenia, warto s c danych zwi azanych ze zdarzeniem oraz numer identykuj acy wyst apienie zdarze-
nia. Odbiorca zawiadomienia mo ze potwierdzi c zwrotnie fakt jego otrzymania. Odbiorca mo ze te z na
bie z aco w acza c i wy acza c mo zliwo s c wysyania zawiadomie n. Sposb obsugi zdarze n odpowiada
koncepcyjnie sieciowej implementacji przerwa n, obejmuj acej mo zliwo s c zgoszenia, potwierdzania
odbioru zgoszenia oraz maskowania zgosze n.
EventNotication zawiadomienie o zdarzeniu
Wykonanie usugi powoduje wysanie raportu zawieraj acego zawiadomienie o wyst apieniu zda-
rzenia. Usuga niepotwierdzana, wywoywana z priorytetem wysokim lub niskim.
AcknowledgeEventNotication potwierdzenie zawiadomienia
Wykonanie usugi potwierdza odebranie zawiadomienia o wyst apieniu zdarzenia. Potwierdze-
nie dotyczy konkretnego wyst apienia zdarzenia o podanym numerze.
AlterEventConditionMonitoring w aczenie zawiadomie n
Wykonanie usugi powoduje ustawienie lub wyzerowanie znacznika zezwalaj acego na wysanie
zawiadomie n o wyst apieniu zdarzenia.
EventNoticationWithType wysanie zawiadomienia o zdarzeniu
Wykonanie usugi powoduje wysanie do partnera komunikacyjnego zawiadomienia o wyst a-
pieniu zdarzenia, zawieraj acego dane zwi azane ze zdarzeniem oraz opis typu danych. Usuga
nie jest potwierdzana.
Obsuga domen
Wiele systemw rozproszonych zawiera centraln a stacj e nadzoruj ac a zdalnie prac e wielu stacji
podporz adkowanych. Elementem tego nadzoru mo ze by c odczytywanie lub zapisywanie pami eci
stacji podporz adkowanej przez stacj e nadzoruj ac a (np. zapis nowej konguracji lub programu). Do-
st epny dla stacji nadzoruj acej obszar pami eci stacji podporz adkowanej nazywa si e domen a. Usugi
dziaaj ace na domenach umo zliwiaj a odczyt, zapis i przygotowanie stacji podporz adkowanej do ope-
racji dost epu do domeny.
72
InitiateDownloadSequence rozpocz ecie zapisywania domeny
Wykonanie usugi przygotowuje serwer na przyj ecie od klienta zawarto sci domeny (adowanie
pami eci serwera przez program klienta).
DownloadSegment zapisanie danych do domeny
Wykonanie usugi zapisuje do domeny serwera segment danych nadesany przez programklienta.
TerminateDownloadSequence zako nczenie zapisywania domeny
Wykonanie usugi informuje serwer o zako nczeniu zapisywania domeny przez program klienta.
RequestDomainDownload z adanie zapisu domeny
Wykonanie usugi przekazuje partnerowi z adanie przysania nowego segmentu danych do do-
meny.
InitiateUploadSequence rozpocz ecie odczytywania domeny
Wykonanie usugi przygotowuje serwer na odczytanie przez klienta zawarto sci domeny.
UploadSegment odczytanie danych z domeny
Wykonanie usugi odczytuje segment danych z domeny serwera i przekazuje go do programu
klienta.
TerminateUploadSequence zako nczenie odczytywania domeny
Usuga informuje serwer o zako nczeniu odczytywania domeny przez program klienta.
RequestDomainUpload z adanie odczytu domeny
Wykonanie usugi przekazuje partnerowi z adanie odczytania segmentu danych z domeny.
Obsuga programw
Zawarto sci a domeny, lub klilku domen, mo ze by c program. Ka zdy program jest traktowany
jako odr ebny obiekt, ktry musi by c opisany w sowniku obiektw OD. Usugi warstwy aplikacyjnej
umo zliwiaj a zdalne deniowanie programu, uruchamianie, zawieszanie, wznawianie i ko nczenie tego
wykonania.
CreateProgramInvocation utworzenie programu
Wykonanie usugi deniuje nowy program i zapisuje opis tego obiektu w sowniku OD serwera.
DeleteProgramInvocation usuni ecie programu
Wykonanie usugi usuwa opis programu ze sownika obiektw po stronie serwera.
Start uruchomienie programu
Wykonanie usugi powoduje rozpocz ecie wykonania programu od pocz atku.
Stop zawieszenie programu
Wykonanie usugi powoduje zapami etanie stanu programu i zawieszenie jego wykonywania (z
mo zliwo sci a wznowienia).
Resume wznowienie programu
Wykonanie usugi powoduje odtworzenie zapami etanego stanu programu i wznowienie jego
wykonywania.
Reset wyzerowanie stanu programu
Wykonanie usugi powoduje skasowanie stanu zawieszonego programu i ustawienie stanu po-
cz atkowego.
73
Kill zablokowanie programu
Wykonanie usugi powoduje zatrzymanie programu i trwae zablokowanie mo zliwo sci ponow-
nego uruchomienia. Zablokowany program mo zna usun a c za pomoc a usugi DeleteProgramI-
nvocation.
Wykonywanie usug
Domunuj acym trybem pracy urz adze n wchodz acych w skad rozproszonego systemu steruj acego
jest cykliczne, powtarzalne wykonywanie stale tych samych zada n, takich jak pomiar stanu insta-
lacji, obliczenie nowych warto sci steruj acych i przekazanie sterowa n do urz adze n wykonawczych.
W ka zdym cyklu pracy zmierzone warto sci parametrw procesu oraz obliczone warto sci sterowa n
mog a by c przekazywane do innych, wsppracuj acych, urz adze n systemu. Oprcz zada n cyklicznych
urz adzenia wykonuj a rwnie z pewne dziaania okazjonalne (sporadyczne), ktrych wykonanie mo ze
rwnie z wymaga c wymiany danych z urz adzeniami wsppracuj acymi.
R zne tryby pracy i komunikowania si e w ezw sieci cykliczny lub niecykliczny stwarza
r zne wymagania na sposb zorganizowania komunikacji, co znajduje wyraz w wyst epowaniu r z-
nych typwrelacji komunikacyjnych. Wrelacjach tych mog a by c wywoywane te same usugi, jednak
sposb ich wykonywania mo ze by c w r znych realizacjach r zny.
Specykacja FMS deniuje nast epuj ace typy realizacji komunikacyjnych:
MSCY, MSCY_SI relacje cykliczne, acz ace w eze nadrz edny z podrz ednym
MSAC, MSAC_SI relacje niecykliczne, acz ace w eze nadrz edny z podrz ednym
MMAC relacje niecykliczne, acz ace dwa w ezy nadrz edne
MULT, BRCT relacje niecykliczne, u zywane do rozgaszania w sieci
W relacjach typu MS. . . wszystkie usugi potwierdzae oraz usugi niepotwierdzane o niskim prio-
rytecie s a realizowane za pomoc a usugi CSRD warstwy liniowej. Usugi niepotwierdzane o wysokim
priorytecie s a realizowane za pomoc a usugi SRD. Adresy w ezw podrz ednych i numery portw wy-
korzystywanych w tych w ezach we wszystkich relacjach tego typu musz a by c umieszczone na li scie
odpytywania w eza nadrz ednego. Caa lista odpytywania musi by c zdeniowana w jednym porcie
w eza, ktry musi by c wykorzystywany przez wszystkie relacje tego typu w danym w e zle.
W relacjach typu MMAC wszystkie usugi FMS, zarwno potwierdzane, jak niepotwierdzane,
realizuje si e za pomoc a usugi SDA warstwy liniowej. Warto zauwa zy c, ze dzi eki temu wykonanie
usug niepotwierdzanych odbywa si e ze zwrotnym potwierdzeniem poprawno sci odebrania komuni-
katu sieciowego przez warstw e liniow a.
W relacjach typu MULT i BRCT dozwolone s a tylko niepotwierdzane usugi FMS, ktre realizuje
si e za pomoc a usugi SDN warstwy liniowej.
Relacje cyklicze MSCY i MSCY_SI
Relacje MSCY (Master Slave Cyclic) i MSCY_SI (Master Slave Cyclic with Slave Initiative) s a
relacjami po aczeniowymi. Wymiana danych mi edzy wsppracuj acymi w ezami jest mo zliwa w ta-
kiej relacji dopiero po nawi azaniu po aczenia za pomoc a usugi Initiate. Po nawi azaniu po aczenia
program wykonywany w w e zle nadrz ednym mo ze wywoa c usugi potwierdzane Read i Write oraz
wszystkie usugi niepotwierdzane. Kolejna usuga potwierdzana mo ze by c wywoana dopiero po za-
ko nczeniu wykonywania usugi poprzedniej. Program wykonywany w w e zle podrz ednym mo ze w
74
realcji MSCY jedynie usun a c po aczenie za pomoc a usugi Abort, w e relacji MSCY_SI mo ze po-
nadto wywoywa c wszystkie usugi niepotwierdzane.
Usug e Initiate mo ze wywoa c tylko program wykonywany w w e zle nadrz ednym. Wykonanie tej
usugi uruchamia proces odpytywania wsppracuj acego w eza podrz ednego (usuga CSRD warstwy
liniowej), kontynuowany a z do chwili usuni ecia po aczenia. Dzi eki ci agemu odpytywaniu w eze
podrz edny mo ze w relacji MSCY_SI przekazywa c do w eza nadrz ednego komunikaty przenosz ace
dane usug niepotwierdzanych. W relacji MSCY wywoanie usug niepotwierdzanych w w e zle pod-
porz adkowanym jest zabronione.
W eze nadrz edny (master) W eze podrz edny (slave)
FMS FDL
Read.req
Fdl_Send_Update.req
Fdl_Cyc_Data_Reply.con
Read.con
Read.req
Read.con
Fdl_Cyc_Data_Reply.con
Read.req
Read.con
sie c
SRD (dane)
SRD ()
SRD ()
SRD (dane)
SRD ()
SRD (dane)
SRD ()
SRD ()
FDL FMS
Fdl_Data_Reply.ind
Read.ind
Read.res
Fdl_Reply_Update.req
Fdl_Data_Reply.ind
Read.ind
Read.res
Fdl_Reply_Update.req
Fdl_Data_Reply.ind
Read.ind
Harmonogram realizacji usugi Read w relacji cyklicznej MSCY jest pokazany w tablicy powy-
zej. Pierwsze wywoanie operacji Read.req przez program klienta przenosi do w eza podrz ednego
indeks z adanego obiektu. Odpowied z w eza podrz ednego, przekazana w tym samym cyklu odpy-
tywania, nie zawiera zadnych danych. Oprogramowanie w eza podrz ednego zapami etuje indeks w
obszarze buforowym (Image Data Memory IDM) i za pomoc a operacji Read.ind zawiadamia pro-
gram u zytkownika o wywoaniu usugi. Warto s c odczytywanego obiektu, przekazana przez program
u zytkownika za pomoc a operacji Read.res, jest zapisywana w buforze wyj sciowym portu (operacja
Fdl_Reply_Update.req) i przenoszona w sieci w nast epnym cyklu odpytywania. Oprogramowanie
w eza nadrz ednego zapami etuje odebran a warto s c w obszarze buforowym IDM i przekazuje j a do
programu klienta za pomoc a operacji Read.con.
Wysanie do w eza nadrz ednego danych, przekazanych przez operacj e Read.res, ponownie ini-
cjuje w w e zle podrz ednym operajc e Read.ind, w odpowiedzi na ktr a program u zytkownika mo ze
za pomoc a operacji Read.res przekaza c now a warto s c obiektu. Tak jak poprzednio, nowe dane s a
75
przenoszone w sieci w najbli zszym cyklu odpytywania i zapisywane w obszarze IDM w eza nadrz ed-
nego. Proces ten jest powtarzany permanentnie bez wzgl edu na dziaania programu klienta.
Kolejne wywoania operacji Read.req przez program klienta nie s a ju z bezpo srednio zwi azane z
przesyaniem jakichkolwiek komunikatw sieciowych. Ka zde nast epne wywoanie powoduje odczy-
tanie danych zapisanych w obszarze IDM wasnego w eza i przekazanie ich do programu za pomoc a
operacji Read.con.
Sposb wykonania usug niepotwierdzanych wywoanych w w e zle nadrz ednym jest analogiczny
do sposobu wykonania operacji .req i .ind pierwszego wywoania usugi Read. Oczywi scie, nie wyst e-
puj a tu operacje .res i .con. Ka zde wywoanie usugi powoduje przekazanie danych w sieci i zapisanie
ich w buforze wej sciowym portu w eza odbieraj acego. Priorytet transakcji odpytywania realizuj acej
usug e niepotwierdzan a jest rwny priorytetowi wywoania usugi.
Sposb wykonania usugi niepotwierdzanych wywoanych w w e zle podrz ednym jest analogiczny
do sposobu wykonania operacji .res lub .con pierwszego wywoania usugi Read. To znaczy, wywo-
anie usugi powoduje zapisanie danych w odpowiednim buforze wyj sciowym portu. Dane te b ed a
przesane do w eza nadrz ednego w jednym z nast epnych cykli odpytywania. Zgodnie z reguami
odpytywania dane zapisane w buforze wyj sciowym o wysokim priorytecie (zwi azane z usugami o
wysokim priorytecie) s a przekazywane przed danymi zapisanymi w buforze o priorytecie niskim.
Sposb wykonania usug potwierdzanych w relacjach cyklicznych odpowiada koncepcyjnie sie-
ciowej implementacji pami eci wsplnej, w ktrej proces odpytywania zapewnia spjno s c kopii, prze-
chowywanej ww e zle nadrz ednym, z warto sciami zmiennych istniej acych ww e zle podrz ednym. De-
nicja usug stwarza jednak niebezpiecze nstwo niewykywalnej dezaktualizacji kopii w wypadku prze-
rwania komunikacji. Dla unikni ecia tego niebezpiecze nstwa standard narzuca obowi azek monitoro-
wania po acze n w relacjach cyklicznych, z zadanym okresem kontroli (Control Interval ci). W tym
celu oprogramowanie w eza nadrz ednego musi zagwarantowa c wykonywanie co najmniej jednego
odpytania w ka zdym okresie ci. Niedotrzymanie tego warunku jest wykrywalne przez obydwa w ezy
i powoduje usuni ecie po aczenia. Czas ci jest jednym z parametrw konguracyjnych relacji komu-
nikacyjnej. Warto s c tego parametru musi by c na obu ko ncach relacji taka sama.
Relacje MSAC i MSAC_SI
Relacje MSAC (Master Slave Acyclic) i MSAC_SI (Master Slave Acyclic with Slave Initiative)
sa relacjami po aczeniowymi. Wymiana danych mi edzy wsppracuj acymi w ezami musi by c w ta-
kiej relacji poprzedzona nawi azaniem po aczenia za pomoc a usugi Initiate. Po nawi azaniu po acze-
nia program wykonywany w w e zle nadrz ednym mo ze wywoywa c wszystkie usugi potwierdzane
i niepotwierdzane. Usugi mog a by c wykonywane rwnolegle, tzn. program mo ze wywoa c na-
st epn a usug e zanim otrzyma potwierdzenie wykonania poprzedniej. Program wykonywany w w e zle
podrz ednym mo ze w relacji MSAC jedynie usun a c po aczenie za pomoc a usugi Abort, w relacji
MSAC_SI mo ze ponadto wywoywa c usugi niepotwierdzane.
Usug e Initiate mo ze wywoa c tylko program wykonywany w w e zle nadrz ednym. Wykonywanie
tej usugi w relacji MSAC_SI uruchamia proces odpytywania wsppracuj acego w eza podrz ednego
(usuga CSRD warstwy liniowej), ktry mo ze dzi eki temu przekazywa c do w eza nadrz ednego ko-
munikaty przenosz ace dane usug niepotwierdzanych. W relacji MSAC proces odpytywania jest uru-
chamiany w chwili wywoania dowolnej usugi potwierdzanej (w tym rwnie z usugi Initiate) i jest
kontynuowany tylko przez czas niezb edny do wykonania tej usugi.
76
Wykonanie usug potwierdzanych przebiega podobnie do wykonania pierwszego wywoania usugi
Read wrealcji MSCY, tzn. ka zemu wywoaniu usugi odpowiada wsieci odr ebna para przesa n: zada-
nie potwierdzenie. Z ka zdym wywoaniem usugi potwierdzanej jest zwi azany indywidualny iden-
tykator (Invoke ID), przekazywany w ka zdym komunikacie sieciowym. Identykator ten umo zliwia
jednoznaczne przyporz adkowanie komunikatw do rwnolegle realizowanych usug potwierdzanych.
W eze nadrz edny (master) W eze podrz edny (slave)
FMS FDL
Fdl_Cyc_Data_Reply.con
InfoR.ind
Fdl_Send_Update.req
Fdl_Send_Update.con
Fdl_Data_Reply.con
sie c
SRD ()
SRD (dane)
SRD (ack)
SRD ()
FDL FMS
InfoR.req
Fdl_Reply_Update.req
Fdl_Data_Reply
Usugi niepotwierdzane s a realizowane tak samo jak usugi niepotwierdzane w relacjach MSCY
i MSCY_SI. Harmonogram realizacji usugi InformationReport (relacja MSAC_SI) wywoanej w
w e zle podrz ednym jest pokazana w tabeli powy zej. Wywoanie usugi powoduje zapisanie danych,
ktre maj a by c przekazane do partnera, wbuforze wyj sciowymportu (operacja Fdl_Reply_Update.req
warstwy liniowej). Najbli zszy cykl odpytywania przenosi dane do w eza docelowego, zapisuje je w
buforze wej sciowym portu i za pomoc a operacji InformationReport.ind zawiadamia program u zyt-
kownika o odebraniu wywoania usugi. Po odczytaniu przez u zytkownika danych z bufora wej scio-
wego portu oprogramowanie komunikacyjne przekazuje do w eza nadawcy komunikat, ktry zwalnia
bufor wyj sciowy portu w tym w e zle. Operacja przekazania potwierdzenia jest wykonywana automa-
tycznie i w zaden sposb nie anga zuje u zytkownika.
Relacja MMAC
Relacja MMAC (Master Master Acyclic) jest relacj a po aczeniow a, acz ac a dwa w ezy nadrz edne.
Wymiana danych mi edzy wsppracuj acymi w ezami jest mo zliwa dopiero po nazwi azaniu w danej
relacji po aczenia za pomoc a usugi Initiate. Po nawi azaniu po aczenia programy wykonywane w
obydwu w ezach mog a by c wykonywane rwnolegle, tzn. program mo ze wywoa c nast epn a usug e
zanim otrzyma potwierdzenie wykonywania poprzedniej.
Wykonanie usugi potwierdzanej sprowadza si e do wymiany w sieci pary komunikatw, przeka-
zywanych za pomoc a usugi SDA warstwy liniowej. Z ka zdym wywoaniem usugi potwierdzanej
jest zwi azany indywidualny identykator (Invoke ID), przekazywany w ka zdym komunikacie siecio-
wym. Identykator ten umo zliwia jednoznacznie przyporz adkowanie komunikatw do rwnolegle
realizowanych usug potwierdzanych. Harmonogram realizacji usugi Read w relacji MMAC jest
przedstawiony w poni zszej tabeli.
Usugi niepotwierdzane s a wykonywane rwnie z za pomoc a usugi SDA warstwy liniowej. Wy-
konanie usugi wywoanej w w e zle nadrz ednym przebiega podobnie do wykonania pary operacji .req
i .ind w tabeli poni zej, a wykonanie usugi wywoanej w w e zle podrz ednym podobnie do wyko-
nania pary operacji .res i .con. Pomimo braku komunikatu usugi niepotwierdzanej jest zwi azane ze
77
W eze nadrz edny (master) W eze podrz edny (slave)
FMS FDL
Read.req
Fdl_Data_Ack.req
Fdl_Data_Ack.req
Fdl_Data_Ack.req
Read.con
sie c
SDA (dane)
SDA (ack)
SRD (data)
SRD (ack)
FDL FMS
Fdl_Data_Ack.ind
Read.ind
Read.res
Fdl_Data_Ack.req
Fdl_Data_Ack.con
zwrotnym potwierdzeniem odbioru na poziomie warstwy liniowej.
Relacje MULT i BRCT
Relacje MULT i BRCT s a relacjami bezpo aczeniowymi, z ktrych ka zda mo ze aczy c wiele
w ezw nadrz ednych. W ezy te mog a wywoywa c tylko usugi niepotwierdzane. Wykonanie usugi
sprowadza si e do wysania komunikatu rozgaszanego w sieci za pomoc a usugi SDN warstwy linio-
wej.
78
14 Wykad 14 [18.06.2004]
14.1 Rozproszony system steruj acy w praktyce
Przykad: Automatyzacja budynku (BMS)
1. Instalacje klimatyzacyjne budynku:
centrale nawiewne (Air Handler Unit AHU)
w eze cieplny:
lokalne piece gazowe/olejowe
wymienniki ciepa z sieci miejskiej
agregaty chodz ace (chiller)
wentylatory wyci agowe
2. Funkcje systemu:
sterowanie bie z ace
realizacje harmonogramu:
dzienny
swi ateczny
wakacyjny
alarmy
zobrazowanie sytuacji
kontrola dyspozytorw
wsppraca z innymi systemami (po zarowe, itp.)
3. Architektura systemu (Bacnet)
4. Usugi sieciowe
odpytywanie i monitorowanie instalacji
zdarzenia i przekazywanie alarmw
odczyt/zapis danych i komendy operatorskie
download programu i programowanie
upload odczyt trendlogw
79
Indeks
Abort, 69
abort, 35
AcknowledgeEventNotication, 72
administrator sieci, 49
administrator urz adze n, 49
administrator zada n, 49
administrator zbiorw, 49
adresowanie, 59
AHU, 79
alarm, 35
algorytm adaptacyjny, 32, 50
algorytm FIFO, 32, 50
algorytm karuzelowy, 32, 50
AlterEventConditionMonitoring, 72
API, 66
atrybuty kolejek, 43
Background System, 17
BMS, 79
BRCT, 74, 78
broadcast, 59, 60
Bus Lock, 28
Bus Unock, 28
Buttazzo, 12
ci, 76
close, 46
communication reference, 67
conrm, 68
connection-orientred, 59
connectionless, 67
CreateProgramInvocation, 73
Creceive, 51
CREF, 67
CSMA, 57
CSMA/CD, 56
CSRD, 65
cycle, 10
cykliczno s c, 48
Cykliczny program sekwencyjny, 13
datagram, 58
deadline, 10
deadlock, 40
DeneVariableList, 72
delay, 48
DeleteProgramInvocation, 73
DeleteVariableList, 72
depozyty, 51
Device Drivers, 49
Device Manager, 49
domain, 67
domena, 67, 72
DownloadSegment, 73
Earliest Deadline First, 10
EDF, 10, 11
event, 38
event-triggered system, 8
EventNotication, 72
EventNoticationWithType, 72
excharge, 28
exec, 31
execl, 31
execle, 31
execlp, 31
execlpe, 31
execv, 31
execve, 31
execvp, 31
execvpe, 31
Fieldbus Message Specication, 66
FIFO, 32, 38, 50
Filesystem Manager, 49
First In First Out, 32
FMS, 66
Foreground System, 17
fork, 30
funkcje j adra, 23
GetOD, 69
gotowy, 21
Hard Real-Time System, 5
Identify, 69
IDM, 75
indication, 68
InformationReport, 71
InformationReportWithType, 71
Initiate, 69
InitiateDownloadSequence, 73
InitiatePutOD, 70
InitiateUploadSequence, 73
inp, 53
inpd, 53
80
inpw, 53
Intel, 28
Invoke ID, 77
inwersja priorytetw, 41, 51
iRMX86, 41
Kill, 74
kill, 33
kolejki wiadomo sci, 42, 52
komunikacja zada n, 36
Layland, 10
Liu, 10
Liu&Layland, 10
ltrunc, 46
martwy, 21
maskowanie sygnaw, 34
master, 23, 58
message queue, 42, 52
MMAC, 74, 77
mmap, 46
Motorola, 28
mprotect, 46
mq_close, 44
mq_curmsg, 43
mq_ags, 43
mq_getattr, 44
mq_maxmsg, 43
mq_msgsize, 43
mq_notify, 45
mq_open, 44
mq_receive, 43, 44
mq_send, 43, 44
mq_setattr, 44
mq_unlink, 44
MSAC, 74, 76
MSAC_SI, 74, 76
MSCY, 74
MSCY_SI, 74
MULT, 74, 78
multitasking, 18
munmap, 46
nanosleep, 48
Network Manager, 49
O_CREAT, 43
O_NONBLCK, 43
O_RDONLY, 43
O_RDWR, 43
O_WRONLY, 43
obiekt zyczny, 68
object directory, 67
obsuga sygnaw, 33
OD, 67
odpytywanie, 58
Ograniczenia czasowe - agodne, 6
ograniczenia czasowe - agodne, 19
ograniczenia czasowe - ostre, 5, 19
op znienia, 48
outp, 53
outpd, 53
outpw, 53
pami e c wsplna, 46
pause, 33
physical access object, 68
PhysRead, 71
PhysWrite, 72
PID, 26, 30
pier scie n znacznikowy, 58
pipe, 35, 52
podwarstwa acza logicznego, 58
podwarstwa dost epu do kabla, 56
poll list, 64, 65
polling, 58
porty, 59, 65
POSIX, 32, 38
POSIX_PRIORITY_SCHEDULING, 43
post, 38
potoki, 52
pre-scheduling, 15
priority inversion, 41
proces, 21, 26
Proces identier, 30
proces macierzysty, 30, 31
proces potomny, 30, 31
process, 21, 26
Process Field Bus, 60
Process identier, 26
Process Manager, 49
PROFIBUS, 60
program, 21
Program Staus World, 26
protok bezpo aczeniowy, 58
proxy, 51
przerwania, 53
przeterminowanie, 48
PSW, 26
pthread, 31
pthread_create, 31
pthread_detach, 31
81
pthread_exit, 31
pthread_join, 31
PutOD, 70
QNX, 49
qnx_hint_attach, 53
qnx_hint_detach, 53
qnx_hint_mask, 53
qnx_proxy_attach, 52
qnx_proxy_detach, 52
qnx_proxy_rem_attach, 52
qnx_proxy_rem_detach, 52
raise, 33
Rate Monotonic Scheduling, 10, 11
reactive systems, 8
Read, 71
Readmsg, 51
ReadWithType, 71
Ready List, 26
real rotation, 63
Real Time System, 5
Receive, 51
receive-control, 41
region, 41
Reject, 69
relacja komunikacyjna, 67
rendez-vous, 45, 51
Reply, 51
request, 68
RequestDomainDownload, 73
RequestDomainUpload, 73
Reset, 73
response, 68
Resume, 73
resume, 37
RL, 26
RMS, 10, 11
Round Robin, 32
rozgaszanie, 59
RR, 32
RT, 26
Running Task, 26
sownik obiektw, 67
SAP, 59
SDA, 65
SDN, 65
sem_destroy, 40
sem_init, 40
sem_post, 40
sem_trywait, 40
sem_wait, 40
semafor, 37, 52
semaphore, 37, 52
Send, 51
send-control, 41
Sensini, 12
Service Access Point, 59
shared memory object, 46
shell, 33
shm_open, 46
shutdown, 35
sieci miejscowe, 53
sig_atomic_t, 34
SIGABRT, 35
sigaddset, 34
SIGALRM, 35
SIGBUS, 35
SIGCHLD, 35
SIGCONT, 35
sigdelset, 34
sigempty, 34
sigllset, 34
SIGFPE, 34
SIGHUP, 35
SIGILL, 34
SIGINT, 35
sigismember, 34
SIGKILL, 35
siglongjmp, 34
signal, 38, 52
sigpending, 34
SIGPIPE, 35
sigprocmask, 34
SIGPWR, 35
SIGQUIT, 35
SIGSEGV, 34
sigsetjmp, 34
SIGSTOP, 35
sigsuspend, 34
SIGTERM, 35
SIGUSR1, 35
SIGUSR2, 35
slave, 58
sleep, 48
Soft Real-Time System, 6
spotkanie, 45, 51
sprz eg RS-485, 60
Spuri, 12
SRD, 65
82
standard POSIX, 21
stany procesu, 21
Start, 73
Status, 69
stimulus response path, 8
Stop, 73
suspend, 37
sygnay, 33, 52
synchronizacja zada n, 36
System Czasu Rzeczywistego, 5
system czasu rzeczywistego, 49
system dwuplanowy, 17
system plikw, 21
system wielozadaniowy, 21
systemy wielozadaniowe, 18
szeregowanie priorytetowe, 10
szeregowanie procesw, 32
szeregowanie wg terminw wykonywania, 10
tablice systemowe, 26
target rotation, 63
task, 26
Task Control Block, 26
Task descriptor, 26
Task identier, 26
task priority, 26
Task state table, 26
TCN, 26
TD, 26
TDMA, 57
terminal, 21
TerminateDownloadSequence, 73
TerminatePutOD, 70
TerminateUploadSequence, 73
thread, 26
TID, 26
time sharing, 50
time-triggered system, 8
timer, 48
timer_create, 48
timer_delete, 49
timer_gettime, 49
timer_settime, 48
token passing, 56
token ring, 58
Trigger, 52
tryb master, 23
tryb user, 23
TST, 26
tv_nsec, 48
tv_sec, 48
Twierdzenie Liu&Laylanda, 10
twierdzenie Spuri, Buttazzo, Sensini, 12
tworzenie w atkw, 31
UnsolicitedStatus, 69
UploadSegment, 73
user, 23
w atek, 26, 31
wait, 38
warstwa acza danych, 56, 61
warstwa zyczna, 60
warstwa liniowa, 56, 61
wielodost ep, 21
wielozadaniowo s c, 21
Write, 71
Writemsg, 51
WriteWithType, 71
wykonywany, 21
zadania steruj ace urz adzeniami, 49
zakleszczenie, 40
zawieszony, 21
zdarzenia, 21
zdarzenia czasowe, 22
zdarzenia zewn etrzne, 22
83
Spis rysunkw
1 Przejazd kolejowy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Regulacja Temperatury . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 Transmisja pakietw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4 Sterowanie zdarzeniami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5 Szeregownia algorytmem RMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6 Szeregownia algorytmem EDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7 Cykliczny program sekwencyjny . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
8 Cykliczny program sekwencyjny (2 wersja) . . . . . . . . . . . . . . . . . . . . . . 16
9 Obsuga zdarzenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
10 System Dwuplanowy - Foreground . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
11 System Dwuplanowy - Background . . . . . . . . . . . . . . . . . . . . . . . . . . 18
12 Wsprz edne wykonywanie zada n przez podzia czasu procesora . . . . . . . . . . . 18
13 Graf stanw zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
14 Tryby pracy SO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
15 Model budowy systemu operacyjnego opartego na mikroj adrze . . . . . . . . . . . . 23
16 Model budowy systemu operacyjnego opartego na mikroj adrze . . . . . . . . . . . . 24
17 Model budowy egzekutora wielozadaniowego . . . . . . . . . . . . . . . . . . . . . 24
18 Model budowy systemu operacyjnego opartego na j adrze monolitycznym . . . . . . 25
19 Graf stanw zadania w systemie opartym na j adrze monolitycznym . . . . . . . . . . 25
20 Tworzenie, zaka nczanie, zawieszanie, wznawianie i usuwanie procesu . . . . . . . . 27
21 Schemat programu szereguj acego . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
22 Schemat semafora aktywnego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
23 Tworzenie procesu - FORK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
24 Problemy synchronizacji i komunikacji zada n . . . . . . . . . . . . . . . . . . . . . 36
25 B edna synchronizacja zada n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
26 B edna synchronizacja zada n w systemie rejestracji . . . . . . . . . . . . . . . . . . 37
27 Operacje semaforowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
28 Poprawna synchronizacja zada n . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
29 Poprawna synchronizacja zada n w systemie rejestracji . . . . . . . . . . . . . . . . 39
30 Zakleszczenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
31 Inwersja priorytetw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
32 Spotkanie (rendez-vous) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
33 Obszary pami eci wsplnej (shared memory object) . . . . . . . . . . . . . . . . . . 46
34 Programowalny licznik czasu (timer) . . . . . . . . . . . . . . . . . . . . . . . . . . 48
35 Graf stanw zada n w systemie QNX . . . . . . . . . . . . . . . . . . . . . . . . . . 50
36 Implementacja spotkania w systemie QNX . . . . . . . . . . . . . . . . . . . . . . . 51
37 Architektura klient-serwer i spotkanie . . . . . . . . . . . . . . . . . . . . . . . . . 52
38 Przekazywanie wiadomo sci przez po aczenie . . . . . . . . . . . . . . . . . . . . . 52
39 Przekazywanie depozytw mi edzy w ezami sieci . . . . . . . . . . . . . . . . . . . 53
40 Struktura funkcjonalna systemu steruj acego . . . . . . . . . . . . . . . . . . . . . . 54
41 Warstwy modelu sieci PROFIBUS . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
42 Wirtualne urz adzenia sieciowe, relacja kounikacyjna i wywaoanie usug . . . . . . . 66
84
Literatura
[1] Krzysztof Sacha. Systemy Czasu Rzeczywistego. Ocyna wydawnicza Politechniki Warszaw-
skiej, Warszawa, 1999.
[2] Krzysztof Sacha. Laboratorium systemu QNX. Ocyna wydawnicza Politechniki Warszaw-
skiej, Warszawa, 2001.
[3] Krzysztof Sacha. Sieci miejscowe PROFIBUS. Wydawnictwo MIKOM, Warszawa, 1998.
85

You might also like