1
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
PROCESY W
PROCESY W
SYSTEMACH
SYSTEMACH
OPERACYJNYCH
OPERACYJNYCH
Jerzy Peja
Politechnika Szczeci ska
Wydział Informatyki
ul. ołnierska 49, 71-210 Szczecin
2
Agenda
Koncepcja procesu i zasobu
Obsługa procesów i zasobów
Cykl zmian stanów procesu i szeregowanie procesów
Operacje na procesach
W tki
Procesy i w tki we współczesnych systemach operacyjnych
2
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
3
Deklaracja
Przy opracowywaniu niniejszego wykładu korzystano
z ogólnodost pnych slajdów do ksi ki
Podstawy
systemów operacyjnych (A. Silberschatz, P.B. Galvin,
G. Gagne) oraz do wykładów
Systemy operacyjne
(Jerzy Brzezi ski i Dariusz Wawrzyniak),
udost pnionych w ramach
Uczelni On-line
4
Poj cie procesu
System operacyjny wykonuje ró ne programy:
System wsadowy –
prace (ang. jobs)
Systemy z podziałem czasu – programy u ytkownika lub
zadania (ang.
tasks)
Proces - program w czasie wykonania;
wykonanie musi przebiega
sekwencyjnie
; proces jest elementarn jednostk pracy (aktywno ci)
zarz dzan przez system operacyjny, która ubiega si o zasoby systemu
komputerowego w celu wykonania programu
Terminy
praca, proces i zadanie mo na u ywa zamiennie.
W skład procesu wchodzi:
kod programu (text section), licznik rozkazów (program counter), stos
procesu (process stack); sekcja danych (data section);
oraz
zbiór zasobów tworz cych rodowisko wykonawcze, blok kontrolny
procesu (PCB, deskryptor) – opis bie cego stanu procesu..
Procesy wykonuj si współbie nie (niekoniecznie równolegle).
3
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
5
Koncepcja zasobu
Zasobem jest element sprz towy lub programowy systemu
komputerowego, którego brak mo e potencjalnie zablokowa
wykonywanie programu (przetwarzanie).
Przykłady zasobów: procesor, pami , plik (dane), itp.
Typowe zasoby kojarzone s z elementami sprz towymi systemu
komputerowego. Nale y jednak podkre li , e to dopiero system
operacyjny definiuje taki element jako zasób, gdy w j drze systemu
istniej struktury do zarz dzania i procedury realizacji przydziału,
odzyskiwania itd.
Cz
zasobów tworzona jest przez j dro systemu operacyjnego.
Zasoby takie cz sto okre la si jako wirtualne. Przykładem
wirtualnego urz dzenia wej cia-wyj cia jest plik. Pliki udost pnia
system operacyjny.
6
Podział operacji j dra systemu w zarz dzaniu
procesami i zasobami
Zarz dzanie procesami: operacje tworzenia i usuwania procesów
oraz elementarna komunikacja mi dzyprocesowa
Operacje przydziału i zwalniania jednostek zasobów obejmuj
m.in.:
zarz dzanie pami ci operacyjn ,
zarz dzanie plikami,
zarz dzanie pami ci pomocnicz (podrz dn )
Elementarne operacje wej cia-wyj cia
Procedury obsługi przerwa
4
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
7
Zarz dzanie procesami
System operacyjny jest odpowiedzialny jest za nast puj ce
czynno ci zwi zane z
zarz dzaniem procesami:
Tworzenie i usuwanie procesów
Zawieszanie i wznawianie procesów
Dostarcza mechanizmów do:
•
Synchronizacji procesów
•
Komunikacji pomi dzy procesami
(mi dzyprocesowej)
•
Obsługi blokad.
8
Zarz dzanie pami ci operacyjn
Pami operacyjna - du a tablica słów lub bajtów; ka dy element
tablicy posiada dokładnie okre lony adres. Jest to repozytorium z
szybko dost pnymi danymi, współdzielonymi przez CPU i
urz dzenia I/O.
Pami główna jest ulotnym no nikiem danych. W momencie
wyst pienia awarii, wył czenia systemu dane s tracone.
System operacyjny jest odpowiedzialny nast puj ce czynno ci
zwi zane z zarz dzaniem pami ci :
Przechowuje informacje o tym, która cz
pami ci jest aktualnie
zaj ta i przez kogo.
Decyduje, który z procesów załadowa w momencie, gdy pewien
obszar pami ci staje si dost pny.
W razie potrzeby, przydziela i zwalnia okre lony obszar pami ci.
5
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
9
Zarz dzanie plikami
Plik jest zbiorem powi zanych ze sob informacji,
definiowanej przez twórc . Pliki zawieraj zwykle programy
(zarówno ich posta ródłow , jak te posta skompilowan )
oraz dane.
System operacyjny jest odpowiedzialny nast puj ce
czynno ci zwi zane z zarz dzaniem plikami:
Tworzenie i usuwanie plików.
Tworzenie i usuwanie katalogów.
Dostarcza podstawowych operacji wykonywanych na
plikach i katalogach.
Odwzorowuje pliki w drugorz dne no niki danych.
Kopie plików na stabilnych (nieulotnych) no nikach
danych.
10
Zarz dzanie pami ci pomocnicz (podrz dn )
Poniewa pami główna (pami nadrz dna) jest ulotna i zbyt
mała do ci głego przechowywania wszystkich danych i
programów, st d system komputerowy musi dostarcza pami
pomocnicz jako zaplecze dla pami ci operacyjnej.
Współczesne systemy komputerowe u ywaj dysków jako
głównego medium do przechowywania zarówno danych, jak te
programów w trybie on-line.
System operacyjny jest odpowiedzialny nast puj ce czynno ci
zwi zane z zarz dzaniem dyskiem:
Zarz dzanie wolnymi obszarami
Przydzielanie obszaru do przechowywania informacji
Planowanie dost pu do dysku.
Wydajno pami ci pomocniczej mo e mie znaczny wpływ na
wydajno całego systemu komputerowego (na ogół pami ta jest
cz sto u ywana podczas pracy komputera).
6
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
11
Elementarne operacje wej cia-wyj cia - system
zarz dzania I/O
Jednym z celów systemu operacyjnego jest ukrywanie przed
u ytkownikiem (czasem te przed wi kszo ci samego systemu
operacyjnego) szczegółów dotycz cych sprz tu, m.in. I/O.
Wiele systemów ma specjalne podsystemy I/O.
System I/O składa si z:
Systemowego, szybkiego bufora przechowywania informacji (ang.
ang. buffer-caching system)
Ogólnego interfejsu do modułów steruj cych urz dze
Modułów steruj cych (programów obsługi) dla poszczególnych
urz dze sprz towych.
•
Wła ciwo ci danego urz dzenia zna tylko odpowiadaj cy mu moduł
steruj cy.
12
Procedury obsługi przerwa
Procedury obsługi przerwa s reakcj na zdarzenia zewn trzne
lub pewne szczególne stany wewn trzne, mog by zatem
skutkiem ubocznym realizacji dost pu do zasobów.
Reakcja na przerwanie mo e prowadzi do zmiany stanu procesu
lub zasobu, nie zawsze jednak taka zmiana jest bezpo rednio
spowodowana wykonaniem procedury obsługi.
Procedury obsługi przerwa wykonywane musz by szybko,
dlatego ich bezpo rednim skutkiem jest czasami tylko
odnotowanie faktu zaj cia zdarzenia, natomiast wła ciwa reakcja
systemu, w konsekwencji której nast pi zmiana stanu procesu lub
zasobu, wykonywana jest pó niej.
7
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
13
Zarz dcy
Zarz dcy to fragmenty kodu j dra zwi zane z obsług procesów
i zasobów
Zarz dca procesów (ang. process manager) – kontroluje stany
procesów w celu efektywnego i bezpiecznego wykorzystania
współdzielonych zasobów systemu.
Zarz dca zasobów (ang. resource manager) – realizuje przydział
zasobów stosownie do da procesów, aktualnego stanu systemu
oraz ogólnosystemowej polityki przydziału
14
Struktury danych systemu operacyjnego
Deskryptor procesu (blok kontrolny procesu, PCB) - u ywany
przez zarz dc procesów w celu rejestrowania stanu procesu w
czasie jego monitorowania i kontroli.
Zbiór takich informacji dla wszystkich procesów okre la si jako
tablic procesów
Współcze nie na potrzeby deskryptorów rzadko wykorzystywana jest
rzeczywi cie statyczna tablica
Deskryptor zasobu - przechowuje informacje o dost pno ci
i zaj to ci danego typu zasobu.
W zale no ci od rodzaju zasobu struktura opisu deskryptora zasobu
mo e by bardzo ró na. Cz sto jest ona narzucona przez rozwi zanie
przyj te na poziomie architektury procesora (np. w przypadku
pami ci), a czasami wynika z decyzji projektowych
8
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
15
Deskryptor procesu
Deskryptor procesu zawiera informacje:
Identyfikator (numer) procesu: unikalny numer przydzielony procesowi
przez system operacyjny w fazie jego tworzenia
Stan procesu: nowy, gotowy, aktywny, itd.
Licznik rozkazów: adres nast pnego rozkazu do wykonania w procesie.
Rejestry procesora: akumulatory, rejestry indeksowe, wska niki stosu,
rejestry ogólnego przeznaczenia, rejestry przerwa ,
Lista przydzielonych zasobów – zasoby systemu znajduj ce si aktualnie w
posiadaniu procesu,
Informacje o planowaniu przydziału procesora: priorytet procesu,
wska niki do kolejek porz dkuj cych zamówienia, itp.
Informacje o zarz dzaniu pami ci : zawarto ci rejestrów granicznych,
tablice stron lub segmentów.
Informacje do rozlicze : ilo zu ytego czasu procesora i czasu
rzeczywistego, numery kont, numery procesów itd.
Informacje o stanie WE/WY: informacje o urz dzeniach WE/WY
przydzielonych do procesu, wykaz otwartych plików itd.
16
Deskryptor procesu
9
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
17
Stan procesu
Proces podczas wykonania zmienia stan
nowy (ang. new): proces został utworzony
wykonywany (ang. running): s wykonywane instrukcje procesu
oczekuj cy (ang. waiting): proces czeka na zaj cie jakiego
zdarzenia, synchronizuje si z innymi procesami
gotowy (ang. ready): proces czeka na przydzielenie procesora
zako czony (ang. terminated): proces zako czył wykonanie
W ka dej chwili w procesorze tylko
jeden proces mo e by
aktywny, ale wiele procesów mo e by gotowych do działania
lub
czekaj cych.
18
Diagram stanów procesu
10
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
19
Deskryptor zasobu
Identyfikator zasobu
Rodzaj zasobu
Identyfikator twórcy/wła ciciela zasobu
Lista i liczba dost pnych jednostek zasobu
Lista (kolejka) procesów oczekuj cych na jednostki danego
zasobu
Procedura przydziału
Informacje o przydzielonych zasobach umieszczone s w
deskryptorze procesu, a informacje o oczekiwaniu na przydział
umieszczone s w deskryptorze zasobu
Zało enie takie ma jednak raczej charakter pogl dowy, ni
implementacyjny. W rzeczywisto ci informacje o powi zaniach
mog by jednocze nie w obu strukturach, je li jest to wymagane na
potrzeby zarz dzania
20
Klasyfikacja zasobów
Ze wzgl du na sposób wykorzystania
zasoby odzyskiwalne (reu ywalne, zwrotne, ang. reusable),
zasoby nieodzyskiwalne (niezwrotne, zu ywalne, ang. consumable).
Ze wzgl du na sposób odzyskiwania
zasoby wywłaszczalne,
zasoby niewywłaszczalne.
Ze wzgl du na tryb dost pu
współdzielone
wył czne
11
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
21
Kolejki procesów
Kolejka zada - zbiór wszystkich procesów w systemie
Kolejka procesów gotowych - zbiór wszystkich procesów
umieszczonych w pami ci głównej, gotowych i czekaj cych
na wykonanie
Kolejki do urz dze - zbiór procesów czekaj cych na
okre lone urz dzenie wej cia-wyj cia
Kolejka procesów oczekuj cych na sygnał synchronizacji
od innych procesami (np. kolejka procesów na semaforze).
Procesy migruj pomi dzy ró nymi kolejkami.
22
Przykład: kolejka gotowych i ró ne kolejki do
urz dze wej cia-wyj cia
12
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
23
Przedstawienie szeregowania procesów
24
Kontekst procesu/w tku
13
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
25
Przeł czanie kontekstu
Przeł czanie procesora do innego procesu wymaga przechowania
stanu starego procesu i załadowanie przechowanego stanu nowego
procesu
Czas przeł czenia kontekstu jest narzutem na działanie systemu;
system nie wykonuje podczas przeł czania adnej u ytecznej
pracy
Czas przeł czenia kontekstu zale y od wsparcia ze strony sprz tu
(rz d wielko ci: 1 - 100 mikrosekund)
Niektóre procesory maj po kilka zbiorów rejestrów: przeł czanie
kontekstu - zmiana warto ci wska nika do bie cego zbioru
rejestrów.
Przeł czanie kontekstu jest nierzadko „w skim gardłem” w
systemach operacyjnych - rozwi zanie:
w tki.
26
Przeł czanie kontekstu
14
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
27
Przeł czanie kontekstu procesu/w tku
28
Planowanie
Planista długoterminowy (PD) - wybór procesów, które przejd
do kolejki gotowych; wykonywane rzadko (sekundy, minuty);
mo e by wolne; okre la poziom wieloprogramowo ci
Planista krótkoterminowy (PK) - wybór nast pnego procesu do
wykonania i przydział CPU; wykonywany cz sto (milisekundy);
musi by szybkie
15
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
29
Dodatkowy planista rednioterminowy
Czasami dochodzi
planista rednioterminowy (PS):
wymiana (swapping) czyli czasowe usuwanie zadania w
cało ci z pami ci głównej do pomocniczej.
30
Planowanie (c.d.)
Procesy mo na okre li jako:
zorientowane na wej cie-wyj cie - sp dzaj wi cej czasu
wykonuj c operacje wej ciae-wyj cia ni obliczenia; wiele
krótkich odcinków czasu zapotrzebowania na CPU
zorientowane na obliczenia - sp dzaj wi cej czasu
wykonuj c obliczenia; kilka bardzo długich odcinków czasu
zapotrzebowania na CPU
16
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
31
Cykl zmian stanów procesu z uwzgl dnieniem
wymiany
32
Tworzenie procesów
Proces macierzysty tworzy procesy potomne, które z kolei
tworz inne procesy; powstaje w ten sposób drzewo
procesów
Współdzielenie zasobów:
proces potomny i macierzysty
współdziel wszystkie
zasoby
potomkowie dziel
cz zasobów przodka
przodek i potomkowie
nie dziel adnych zasobów.
Wykonywanie:
przodek i potomek wykonuj si
współbie nie
przodek
czeka na zako czenie potomków.
17
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
33
Tworzenie procesów (c.d.)
Przestrze adresowa:
potomek jest
kopi przodka
potomek ładuje
nowy program (na siebie).
Przykład UNIX
systemowe wywołanie
fork tworzy nowy proces
systemowe wywołanie
exec stosowane jest po fork do
zast pienia pami ci procesu nowym programem.
34
Obsługa procesów (1)
Tworzenie procesu
POSIX: fork
Windows: CreateProcess, CreateProcessAsUser,
CreateProcessWithLogonW lub CreateProcessWithTokenW
Usuwanie procesu
POSIX: exit, abort, kill
Windows: ExitProcess, TerminateProcess
18
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
35
Obsługa procesów (2)
Zawieszanie i aktywacja procesu
Wstrzymywanie i wznawianie procesu
Zmiana priorytetu procesu
POSIX: nice (setpriority )
•
Funkcja nice w systemach standardu POSIX zmienia np.tylko pewn
składow priorytetu procesu, podczas gdy wła ciwa warto priorytetu
zale y od kilku innych czynników. Zostanie to omówiony przy okazji
szeregowania procesów.
Windows: SetPriorityClass
Oczekiwanie na zako czenie procesu
POSIX: wait, waitpid
Windows: brak bezpo redniego wsparcia, nale y u y odpowiednich
mechanizmów synchronizacji
36
Procesy w systemie Unix/Linux
19
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
37
Jak działa funkcja fork?
38
Jak działa funkcja fork?
20
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
39
Jak działa funkcja fork?
40
Jak działa funkcja fork?
21
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
41
Jak działa funkcja fork?
42
Jak działa funkcja fork?
22
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
43
Jak działa funkcja fork?
44
Jak działa funkcja fork?
23
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
45
Jak działa funkcja fork?
46
Jak działa funkcja fork?
24
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
47
Jak działa funkcja fork?
48
Jak działa funkcja fork?
25
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
49
Jak działa funkcja fork?
50
Jak działa funkcja exec?
26
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
51
Jak działa funkcja exec?
52
Jak działa funkcja exec?
27
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
53
Jak działa funkcja exec?
54
Jak działa funkcja exec?
28
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
55
Jak działa funkcja exec?
56
U ycie funkcji fork i exec
! " #
$
# %
"
&! '
( %
)
(
)
#
% *+ , - + . /
0
#
12
3
4
"
"
50
2 1 12
3
4 6 7
8
8
9
7 7
:; ! 7 7 7< 7 7 7 = > 99 8
7 7
" 5?
1@
6 7
'
8
29
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
57
Inny przykład: proces forktest
4
4
" 7A
"
6 7
! " #
" 7+
B 6 7
8
(
CD
E " #
A
"
+
FGH IJ
+
'
E
(
KD
E " #
E
A
"
+
IHG 'J
A
"
+
'
E
W drugim te cie (przy przekierowaniu)
printf jest buforowany i z tego powodu
kopiowany na rzecz procesu potomnego.
58
Elementarne operacje na zasobach
Tworzenie deskryptora zasobu
Usuwanie deskryptora zasobu
Realizacja dania przydziału jednostek zasobu
Zwolnienie i odzyskiwanie jednostek zasobu odzyskiwalnego
Uwolnienie (wyprodukowanie) jednostki zasobu
nieodzyskiwalnego
30
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
59
Ko czenie procesów
Proces wykonuje ostatni instrukcj i prosi system operacyjny o
usuni cie (exit).
Przekazanie danych z procesu potomnego do macierzystego (poprzez
wykonanie
wait).
Zasoby przydzielone procesowi s zwalniane przez system
operacyjny.
Przodek mo e przerwa wykonanie potomka:
Potomek przekroczył przydzielone zasoby.
Zlecone potomkowi zadanie nie jest dłu ej potrzebne.
Przodek ko czy działanie.
•
Je li przodek ko czy si , to system operacyjny nie pozwala na
kontynuowanie wykonywania.
•
Ko czenie kaskadowe.
Obsług procesów zajmuje si j dro systemu operacyjnego.
60
Ko czenie procesu – wait (Linux)
Przedstawiony poprzednio przykład u ycia
fork i exec
pokazuje, e wyj cie programu ls pojawia si zwykle po
zako czeniu procesu macierzystego (wynika to z
niezale nego szeregowania procesu macierzystego i
potomnego).
Aby zmusi rodzica do czekania na zako czenie jednego lub
wi cej procesów potomnych, nale y u y jednego z
wywoła systemowych
wait.
31
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
61
Ko czenie procesu – wait (Linux)
9
7 7
:; ! 7 7 7< 7 7 7 = > 99 8
7 7
L) #
) # M )
#
N
" 0 OPQ R O( Q $
" 5*
) # M ) 1 S
)
@ 1#
B 6 T
0 Q R O( A ( . ( > A
" 5*
) # M ) 1 S
1
6 T
'
8
62
Procesy zombie
Proces, zombie to taki
proces który zako czył
działanie, ale nie został
jeszcze rozliczony
(wyczyszczony).
! " #
>
@ )
"
'
*
U %
) )
S
H '
8
*
% V
3
'
'
8
32
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
63
Procesy kooperuj ce (współpracuj ce)
Procesy niezale ne nie mog wpływa na inne procesy lub
podlega wpływom innego procesu.
Procesy kooperuj ce mog wpływa na inne procesy lub
podlega wpływom innego procesu.
Zalety procesów kooperuj cych
Współdzielenie informacji
Przyspieszenie oblicze
Modularno
Wygoda.
64
Problem producenta-konsumenta
Paradygmat procesów kooperuj cych.
Proces producenta produkuje informacj , która jest
wykorzystywana (konsumowana) przez proces konsumenta.
Bufor nieograniczony nie nakłada adnych praktycznych
ogranicze na wielko bufora.
W przypadku bufora ograniczonego przyjmuje si , e
wielko bufora jest stała.
33
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
65
W tki
W tki (lekki proces, ang. lightweight process - LWP) jest
obiektem w obr bie procesu ci kiego (ang. heavyweight),
posiadaj cym własne sterowanie i współdziel cym z innymi
w tkami tego procesu przydzielone (procesowi) zasoby:
przestrze kodu oraz przestrze danych i stosu w pami ci
tablic otwartych plików
tablic sygnałów
W tek jest podstawow jednostk wykorzystania CPU; posiada:
własny licznik rozkazów,
zbiór rejestrów,
stos,
stan, w tki potomne, etc.
Tradycyjny proces (ci ki) jest równowa ny zadaniu z jednym
w tkiem
66
Wiele w tków wewn trz procesu
34
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
67
Zastosowanie: w tki a model klient-serwer
68
W tki (c.d.)
Je li proces składa si z wielu w tków, to w czasie gdy jeden
w tek jest zablokowany, to wykonywa mo e si inny w tek
tego procesu.
współpraca wielu w tków w jednym zadaniu pozwala
zwi kszy przepustowo i poprawi wydajno
W zastosowaniach, w których wymagane jest
współdzielenie wspólnych buforów (np. producent-
konsument) u ycie w tków ma wiele zalet.
W tki dostarczaj mechanizmu, który umo liwia procesom
sekwencyjnym realizacj wywoła systemowych z
blokowaniem (z zajmowaniem zasobu), jak równie
uzyskanie zrównoleglenia operacji.
35
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
69
Realizacja w tków
Realizacja w tków na poziomie j dra systemu operacyjnego - j dro
tworzy odpowiednie struktury (blok kontrolny) do utrzymywania stanu
w tku.
W tki w trybie systemowym s zarz dzane przez j dro, które utrzymuje
deskryptory i odpowiada za przeł czanie kontekstu pomi dzy w tkami.
Realizacja w tków na poziomie u ytkownika – struktury zwi zane ze
stanami w tków tworzone s w przestrzeni adresowej procesu.
W tki s tak zorganizowane, e j dro nie jest wiadome ich istnienia.
Deskryptory w tków utrzymywane s w pami ci procesu (a nie j dra) i cała
obsługa wykonywana jest w trybie u ytkownika.
Istotne w obsłudze wielow tkowo ci, niezale nie od sposobu realizacji,
jest dostarczenie odpowiednich
mechanizmów synchronizacji w tków
wewn trz procesu. Potrzeba synchronizacji wynika z faktu
współdzielenia wi kszo ci zasobów procesu.
70
Realizacja w tków na poziomie j dra systemu
operacyjnego
W tek posiada własny blok kontrolny w j drze systemu
operacyjnego, obejmuj cy:
stan licznika rozkazów,
stan rejestrów procesora,
stan rejestrów zwi zanych z organizacj stosu.
Własno ci realizacji w tków na poziomie j dra:
przeł czanie kontekstu pomi dzy w tkami przez j dro,
wi kszy koszt przeł czania kontekstu,
bardziej sprawiedliwy przydział czasu procesora.
36
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
71
Realizacja w tków w trybie u ytkownika
Deskryptor w tku znajduje si w tablicy w tków w pami ci
danego procesu (j dro nie wie nic o w tkach).
Własno ci realizacji na poziomie u ytkownika:
przydział czasu procesora dla procesu (nie dla w tku)
przeł czanie kontekstu pomi dzy w tkami przez jawne odwołania do
mechanizmu obsługi w tków
mniejszy koszt przeł czania kontekstu (bez anga owania j dra
systemu operacyjnego)
mo liwo „głodzenia” w tków tego samego procesu, gdy jeden z
nich spowoduje przej cie procesu w stan oczekiwania
72
Przykłady realizacji w tków
W tki na poziomie u ytkownika; wspierane powy ej j dra za
po rednictwem zbioru wywoła bibliotecznych na poziomie
u ytkownika (projekt Andrew z CMU).
wolne: gdy jeden w tek blokuje si (np. na operacjach I/O), to
blokowane jest całe zadanie (tj. wszystkie w tki).
W podej ciu hybrydowym zaimplementowano wsparcie w tków
zarówno na poziomie j dra jak i na poziomie u ytkownika (np.
Solaris 2).
W systemie Solaris terminem w tek okre la si w tek istniej cy w
trybie u ytkownika, a w tek trybu j dra okre la si jako lekki
proces (w rzeczywisto ci jest to w tek po redni pomi dzy trybem
j dra a trybem u ytkowanika – patrz dalej).
W systemie Windows wprowadza si poj cie włókna, zwanego te
lekkim w tkiem (ang. fiber, lightweight thread), które odpowiada
w tkowi trybu u ytkownika, podczas gdy termin w tek odnosi si
do w tku trybu j dra.
37
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
73
Wsparcie w tków w systemie Solaris 2
Solaris 2 jest odmian systemu UNIX, wspieraj c w tki na poziomie
j dra i u ytkownika, wieloprzetwarzanie symetryczne i planowanie w
czasie rzeczywistym.
Procesy lekkie (ang. lightweight processes, LWP) – po redni poziom
pomi dzy w tkami poziomu u ytkownika, a w tkami poziomu j dra.
Wymagane zasoby w zale no ci od typu w tku:
W tek na poziomie j dra – niewielka ilo struktur danych i stos;
przeł czanie w tku nie wymaga zmiany informacji o dost pie do pami ci –
wzgl dnie szybkie.
LWP - blok opisu procesu (PCB) z zawarto ci rejestrów, informacje
rozliczeniowe i o zaj tej pami ci; przeł czanie pomi dzy w tkami typu LPW
jest wzgl dnie wolne.
W tki na poziomie u ytkownika – wymagany jedynie stos i licznik
rozkazów; nie s anga owane szybkie rodki przeł czania na poziomie j dra.
J dro ledzi jedynie w tki LWP, które wspomagaj procesy na poziomie
u ytkownika.
74
W tki w systemie Solaris 2
38
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
75
Przeł czanie kontekstu w tków
Kontekst pomi dzy dwoma lekkimi procesami przeł czany jest przez j dro.
Ka dy z lekkich procesów wykonuje jaki w tek trybu u ytkownika (włókno), co
obrazuje ci gła linia ze strzałk . Dla ka dego lekkiego procesu istnieje zatem
bie ce włókno.
W ramach wykonywanego kodu takiego włókna mo e nast pi wywołanie
funkcji zachowania bie cego kontekstu, a nast pnie funkcji odtworzenia innego
(wcze niej zachowanego) kontekstu, o ile tylko w miejscu wywołania dost pny
jest odpowiedni deskryptor, opisuj cy odtwarzany kontekst.
Potencjalnie wi c ka dy z lekkich procesów mo e wykonywa dowolne z
włókien, co symbolizuje przerywana linia.
76
Obsługa w tków (1)
Tworzenie w tku
POSI X: pthread_create
Windows: CreateThread, CreateRomoteThread
Usuwanie w tku
POSI X: pthread_exit, pthread_cancel
Windows: ExitThread, TerminateThread
39
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
77
Obsługa w tków (2)
Wstrzymywanie i wznawianie w tku
POSIX: brak
Windows: SuspendThread, ResumeThread
Zmiana priorytetu w tku
POSIX: pthread_setschedprio, pthread_setschedparam
Windows: SetThreadPriority
Oczekiwanie na zako czenie w tku
POSIX: pthread_join
Windows: brak bezpo redniego wsparcia, nale y u y odpowiednich
mechanizmów synchronizacji
78
Realizacja procesów/w tków w systemie Linux
W j drze systemu Linux nie odró nia si poj cia w tku od
procesu.
Proces potomny tworzony jest w systemie Linux poprzez wywołanie
funkcji
clone
Tworz c nowy proces z u yciem funkcji
clone mo na okre li ,które
zasoby procesu macierzystego maj by współdzielone z potomkiem.
W zale no ci od zakresu współdzielonych zasobów, nowoutworzony
proces mo e by uznawany za
w tek lub za ci ki proces.
Procesy mog współdzieli takie zasoby, jak:
przestrze adresowa,
otwarte pliki,
informacje o systemie plików,
procedury obsługi sygnałów.
Deskryptory procesów (o strukturze
struct task_struct)
przechowywane s na dwukierunkowej, cyklicznej li cie zada .
40
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
79
Stany procesu (w tku)w systemie Linux
TASK_RUNNING - wykonywanie lub gotowo (do wykonania)
TASK_INTERRUPTIBLE - oczekiwanie na zaj cie zdarzenia
lub sygnału
TASK_UNINTERRUPTIBLE - oczekiwanie na zaj cie
zdarzenia, przy czym sygnały s ignorowane
TASK_ZOMBI - stan zako czenia utrzymywany w celu
przechowania deskryptora procesu
TASK_STOP - zatrzymanie w wyniku otrzymania sygnału
(np.SIGSTOP)
80
Cykl zmian stanów procesu (w tku) w systemie
Linux
41
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
81
Proces w systemie Windows 2000/XP
Proces stanowi rodowisko do wykonywania w tków.
Struktury opisu procesu obejmuj :
EPROCESS - blok centrum wykonawczego, opisuj cy proces,
KPROCESS - blok kontrolny procesu, cz
struktury EPROCESS,
PEB - blok rodowiska procesu, dost pny w trybie u ytkownika.
82
W tki w systemie Windows 2000/XP
W tki korzystaj z zasobów przydzielonych procesom.
W tki (nie procesy) ubiegaj si o przydział procesora i s
szeregowane przez planist krótkoterminowego.
Struktury opisu w tku obejmuj :
ETHREAD - blok centrum wykonawczego, opisuj cy w tek,
KTHREAD - blok kontrolny procesu, cz
struktury ETHREAD,
TEB - blok rodowiska procesu, dost pny w trybie u ytkownika.
42
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
83
Stany w tku w systemie Windows 2000/XP
Inicjalizowany (initialized, warto 0) - stan wewn trzny w trakcie
tworzenia w tku,
Gotowy (ready, warto 1) - oczekuje na przydział procesora,
Wykonywany (running, warto 2),
Czuwaj cy (standby, warto 3) - wybrany do wykonania jako nast pny,
Zako czony (terminated, warto 4),
Oczekuj cy (waiting,wart.5)—oczekuje na zdarzenie,
Przej cie (transition, warto 6) - oczekuje na sprowadzenie swojego stosu
j dra z pliku wymiany,
Unknown (wart.7)
W rzeczywisto ci stan gotowo ci obejmuje trzy stany:
Odroczona gotowo (ang. DeferredReady) – kolejkowanie na dowolnym
procesorze
Czuwaj cy (ang. standby) – bezpo rednio przed stanem wykonywany.
Gotowy (ang. ready) – kolejka priorytetowa zwi zana z procesorem
84
Cykl zmian stanów w tku w systemie Windows
2000/XP
Initialized
Ready
Terminated
Running
Standby
Deferred
Ready
Waiting
KeInitThread
KeTerminateThread
Transition
k stack
swapped
KiUnwaitThread
KiReadyThread
KiQuantumEnd
KiIdleSchedule
KiSwapThread
KiExitDispatcher
NtYieldExecution
Idle
processor
or
preemption
KiInsertDeferredReadyList
preemption
preemption
KiRetireDpcList/KiSwapThread/
KiExitDispatcher
KiProcessDeferredReadyList
KiDeferredReadyThread
no avail.
processor
KiSelectNextThread
PspCreateThread
KiReadyThread
KiInsertDeferredReadyList
Affinity
ok
Affinity
not ok
KiSetAffinityThread
KiSetpriorityThread
Ready
process
swapped
KiReadyThread
43
Budowa bezpiecznych usług internetowych
na bazie certyfikatu klucza publicznego
DZI KUJ ZA UWAG !
DZI KUJ ZA UWAG !
Pytania?
Pytania?