background image

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

background image

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 

pracaproces 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 wykonawczeblok kontrolny 

procesu (PCB, deskryptor) – opis bie cego stanu procesu..

Procesy wykonuj  si  współbie nie (niekoniecznie równolegle).

background image

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

background image

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.

background image

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).

background image

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.

background image

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

background image

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

background image

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

background image

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

background image

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

background image

12

Budowa bezpiecznych usług internetowych

na bazie certyfikatu klucza publicznego

23

Przedstawienie szeregowania procesów

24

Kontekst procesu/w tku

background image

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

background image

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

background image

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

background image

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.

background image

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: exitabortkill
Windows: ExitProcessTerminateProcess

background image

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: waitwaitpid
Windows: brak bezpo redniego wsparcia, nale y u y  odpowiednich 

mechanizmów synchronizacji

36

Procesy w systemie Unix/Linux 

background image

19

Budowa bezpiecznych usług internetowych

na bazie certyfikatu klucza publicznego

37

Jak działa funkcja fork?

38

Jak działa funkcja fork?

background image

20

Budowa bezpiecznych usług internetowych

na bazie certyfikatu klucza publicznego

39

Jak działa funkcja fork?

40

Jak działa funkcja fork?

background image

21

Budowa bezpiecznych usług internetowych

na bazie certyfikatu klucza publicznego

41

Jak działa funkcja fork?

42

Jak działa funkcja fork?

background image

22

Budowa bezpiecznych usług internetowych

na bazie certyfikatu klucza publicznego

43

Jak działa funkcja fork?

44

Jak działa funkcja fork?

background image

23

Budowa bezpiecznych usług internetowych

na bazie certyfikatu klucza publicznego

45

Jak działa funkcja fork?

46

Jak działa funkcja fork?

background image

24

Budowa bezpiecznych usług internetowych

na bazie certyfikatu klucza publicznego

47

Jak działa funkcja fork?

48

Jak działa funkcja fork?

background image

25

Budowa bezpiecznych usług internetowych

na bazie certyfikatu klucza publicznego

49

Jak działa funkcja fork?

50

Jak działa funkcja exec?

background image

26

Budowa bezpiecznych usług internetowych

na bazie certyfikatu klucza publicznego

51

Jak działa funkcja exec?

52

Jak działa funkcja exec?

background image

27

Budowa bezpiecznych usług internetowych

na bazie certyfikatu klucza publicznego

53

Jak działa funkcja exec?

54

Jak działa funkcja exec?

background image

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

background image

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

background image

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 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.

background image

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

background image

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. 

background image

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

background image

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.

background image

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.

background image

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. fiberlightweight thread), które odpowiada

w tkowi trybu u ytkownika, podczas gdy termin w tek odnosi si

do w tku trybu j dra.

background image

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

background image

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: CreateThreadCreateRomoteThread

Usuwanie w tku

POSI X: pthread_exit, pthread_cancel
Windows: ExitThread, TerminateThread

background image

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: SuspendThreadResumeThread

Zmiana priorytetu w tku

POSIX: pthread_setschedpriopthread_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 .

background image

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

background image

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.

background image

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

background image

43

Budowa bezpiecznych usług internetowych

na bazie certyfikatu klucza publicznego

DZI KUJ  ZA UWAG !

DZI KUJ  ZA UWAG !

Pytania?

Pytania?