SO W2 Procesy i wątki w systemach operacyjnych

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

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

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: exit, abort, kill
Windows: ExitProcess, TerminateProcess

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: wait, waitpid
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 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.

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. fiber, lightweight 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: CreateThread, CreateRomoteThread

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

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?


Wyszukiwarka

Podobne podstrony:
SO pytania z egzaminu 2012, Systemy operacyjne
SO, Materiały, III semestr, Systemy operacyjne- materiały, egzamin, egzamin SO, egzamin SO
Procesor, Szkoła, Systemy Operacyjnie i sieci komputerowe, utk, semestr II
SO W1 Wstęp do systemów operacyjnych
z1 SO na 28.05.11 w2 ze skryptami, Informatyka, SEMESTR IV, Systemu Operacujne
lewandowski,systemy operacyjne, Procesy i wątki
5 Systemy Operacyjne 23 11 2010 Zarządzanie procesami
so, Akademia Morska, IV semestr, systemy operacyjne
SO 2 PROCESY I WATKI
Systemy Operacyjne, projekty cwiczenie2 so z
PYTANIA WEJSCIOWKI, Materiały, III semestr, Systemy operacyjne- materiały, egzamin, SO egz, SO egz,
,systemy operacyjne, procesy i Nieznany (2)
Algorytm Procesu Uruchomena Komputera, Systemy operacyjne
Egzamin lato 2k00-2, Materiały, III semestr, Systemy operacyjne- materiały, egzamin, so-egzamin, roz
Egzamin lato 2k00-1, Materiały, III semestr, Systemy operacyjne- materiały, egzamin, so-egzamin, roz
Systemy operacyjne, MOJE SO, SYSTEMY KOMPUTEROWE
Proces Uruchamiania XP, Systemy operacyjne

więcej podobnych podstron