Professional Documents
Culture Documents
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 =
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 =