SO2 procesy

background image

Systemy operacyjne

wykład 2

PROCESY

background image

Proces - fundamentalna jednostka

obliczeń

• Proces jest jednostką pracy systemu

operacyjnego. System składa się ze zbioru

procesów. Procesy S.O. wykonują program

systemu, procesy użytkowe działają wg

programów napisanych przez użytkowników.

• (Przy przetwarzaniu wsadowym mówiło się o zadaniach, w

systemie z podziałem czasu o programach użytkownika lub

pracach, a w obecnych systemach używa się określenia procesy.)

• Proces to realizacja programu. Wykonanie

procesu musi przebiegać w sposób

sekwencyjny.

• (Program jest obiektem pasywnym, proces jest aktywny, ma

licznik rozkazów, określający następny rozkaz do wykonania.

Procesowi może być przydzielony procesor i pamięć (RAM)).

background image

Stan procesu (1)

Stan procesu jest określany przez

bieżącą czynność procesu. Stan
procesu to wszystkie informacje
potrzebne do kontynuowania
zatrzymanego procesu.

background image

Stan procesu (2)

Diagram stanów procesu

background image

Stan procesu (3)

Diagram stanów procesu

background image

Stan procesu (4)

Diagram stanów procesu

background image

Stan procesu (3)

Wykonujący się proces zmienia swój stan;

każdy proces może znajdować się w jednym z
następujących trzech stanów:

aktywny

- są wykonywane instrukcje,

czekający

- proces czeka na wystąpienie

jakiegoś zdarzenia (np. na zakończenie operacji
WE/WY),

gotowy

- proces czeka na przydział procesora.

background image

Blok kontrolny procesu (1)

Każdy proces jest reprezentowany w SO

przez blok kontrolny procesu, zawierający
następujące informacje:

Stan procesu

  - stan może być określony jako

gotowy, aktywny, czekający.

Licznik rozkazów

- licznik ten wskazuje adres

następnego rozkazu do wykonania w procesie.

Rejestry procesora

- liczba i typy rejestrów

zależą od architektury komputera; są tu
akumulatory, rejestry indeksowe, wskaźniki stosu,
rejestry ogólnego przeznaczenia oraz rejestry
warunków. Informacje dotyczące tych rejestrów i
licznika rozkazów muszą być przechowywane
podczas przerwań, aby proces mógł być później
poprawnie kontynuowany.

background image

Informacje o planowaniu przydziału

procesora

- należą do nich: priorytet procesu,

wskaźniki do kolejek przyporządkowujących
zamówienia, a także inne parametry planowania.

Informacje o zarządzaniu pamięcią

- mogą

to być informacje takie, jak zawartości rejestrów
granicznych, tablice stron, lub tablice segmentów
- zależnie od systemu pamięci używanej przez SO.

Blok kontrolny procesu (2)

background image

Blok kontrolny procesu (3)

Informacje do rozliczeń

- do tej kategorii

informacji należy ilość zużytego czasu procesora i
czasu rzeczywistego, ograniczenia czasowe,
numery zadań lub procesów itp.

Informacje o stanie WE/WY

- mieszczą się tu

informacje o urządzeniach WE/WY (np.
przewijakach taśmy) przydzielonych do procesu,
wykaz otwartych plików itd.

Blok kontrolny procesu służy jako magazyn
przechowujący każdą informację, która może się
zmieniać w zależności od procesu.

background image

Blok kontrolny procesu (4)

Rys. Fragment bloku kontrolnego procesu

background image

Wykorzystanie bloku kontrolnego

Rys. Przechowywanie stanu procesów w blokach kontrolnych

background image

Działania na procesach

 Procesy w systemie mogą być wykonywane
współbieżnie oraz dynamicznie tworzone i
usuwane. System musi zawierać mechanizm
tworzenia i kończenia procesu.
 Każdy nowy proces może tworzyć kolejne
procesy, wynikiem czego jest drzewo procesów.

background image

Tworzenie procesu (1)

Proces macierzysty (parent process) tworzy procesy
zwane potomkami (children) ==>drzewo procesów.
dzielenie zasobów
• proces macierzysty i potomkowie dzielą wszystkie
zasoby
lub
• potomkowie dzielą podzbiór procesu macierzystego
lub
• proces macierzysty i potomkowie nie dzielą
wspólnych zasobów;
wykonywanie procesów
• proces macierzysty kontynuuje działanie
współbieżne ze swoimi potomkami
lub
• proces macierzysty oczekuje na zakończenie
działania niektórych lub wszystkich swoich procesów
potomnych.

background image

Tworzenie procesu (2)

przestrzeń adresowa
najczęściej
 proces potomny staje się kopią procesu
macierzystego.

background image

Tworzenie procesu (4)

w UNIX-ie
 każdemu nowemu procesowi jest
przyporządkowany identyfikator procesu, będący
liczbą całkowitą;
nowy proces tworzy się za pomocą funkcji
systemowej fork; zawiera on kopię przestrzeni
adresowej procesu pierwotnego;
 funkcja systemowa execve ładuje plik binarny do
pamięci (zastępuje zawartość pamięci procesu) i
rozpoczyna jego wykonywanie;
 proces macierzysty może tworzyć następnych
potomków, lub użyć funkcji systemowej wait aby
usunąć się z kolejki gotowych procesów, do chwili
zakończenia procesu potomnego.

background image

Kończenie procesu (1)

 proces wykonuje swoją ostatnią instrukcję i
prosi SO (funkcja systemowa exit), aby go
usunął;
 może wtedy przekazać dane do procesu
macierzystego, za pośrednictwem funkcji
systemowej wait;

zasoby procesu (pamięć fizyczna i
wirtualna, otwarte pliki, bufory WE/WY )
zostają odebrane przez SO.

background image

Kończenie procesu (2)

 Proces macierzysty może zakończyć
wykonywanie procesu potomnego za pomocą
funkcji systemowej, np. abort.

 gdy potomek nadużył któregoś z
przydzielonych mu zasobów
lub
 gdy wykonywane przez potomka zadanie stało
się zbędne
lub
gdy proces macierzysty kończy pracę (wtedy,
w wielu SO kończone są procesy potomne –
kończenie kaskadowe)

background image

Związki między procesami

Współbieżne działanie procesów oznacza, że
procesor dzieli swą moc obliczeniową na wiele
procesów jednocześnie. (np. dla równoległego
wykonywania pewnych obliczeń).

Procesy mogą być niezależne lub mogą ze sobą
współpracować.
Procesy współpracujące konkurują o zasoby i
wymieniają między sobą informacje. Pojawia się
problem

zsynchronizowania procesów

.

background image

Proces niezależny

Proces jest

niezależny

(nie dzieli żadnych danych z innym

procesem) jeżeli

• nie może oddziaływać na inne procesy, a one też nie mogą

wpływać na jego działanie;

• jego działanie jest deterministyczne, tzn. wynik jego pracy

zależy wyłącznie od stanu WE;

• jego działanie daje się powielać, tzn. wynik pracy procesu

niezależnego jest zawsze taki sam przy takich samych

danych,

• jego wykonanie może być wstrzymywane i wznawiane bez

żadnych szkodliwych skutków.

Każdy proces, który nie dzieli żadnych danych (tymczasowych

lub trwałych) z żadnym procesem, jest w istocie procesem

niezależnym.

background image

Proces współpracujący

Proces jest

współpracujący

, jeżeli może wpływać na inne

procesy lub inne procesy mogą wpływać na niego.

Proces taki ma następujące własności:

• nie da się określić z góry wyniku działania procesu;

• wynik działania procesu współpracującego jest nie

deterministyczny, gdyż może nie być zawsze taki sam przy

takich samych danych WE.

Zatem dowolny proces, który dzieli jakieś dane z innymi

procesami jest procesem współpracującym.

Procesy współpracujące mogą bezpośrednio dzielić

przestrzeń adresów logicznych (tj. zarówno kod, jak i dane)

lub może im być wolno dzielić dane wyłącznie za

pośrednictwem plików. Pierwszy przypadek dotyczy tzw.

procesów lekkich czyli wątków (thread).

background image

Przykład procesów współpracujących

zagadnienie producenta -

konsumenta

popularny

paradygmat

(wzorzec)

współpracujących

procesów;

producent

wytwarza informację, którą zużywa proces
konsument;
 potrzebny jest bufor jednostek informacji,
aby umożliwić producentowi i konsumentowi
działanie współbieżne

 nieograniczony bufor,
 ograniczony bufor: konsument musi
czekać jeżeli bufor jest pusty, a producent
musi czekać jeżeli bufor jest pełny,

 procesy producenta i konsumenta muszą
podlegać synchronizacji, aby konsument nie
próbował korzystać z tego co nie zostało
wyprodukowane.

background image

Wątki

Wątek jest jednostką podstawową wykorzystania

procesora. Stan wątku jest zdefiniowany małą ilością

odrębnych danych. Grupa równoprawnych wątków

dzieli kod, przestrzeń adresową i zasoby S.O.

Środowisko, w którym działa wątek, nazywa się

zadaniem (task).

Tradycyjny (ciężki) proces jest równoważny zadaniu z

tylko jednym wątkiem. Zadanie nic nie robi jeśli nie ma

w nim ani jednego wątku, z kolei wątek może

przebiegać w dokładnie jednym zadaniu.

Pojedynczy wątek ma przynajmniej własny stan

rejestrów i na ogół własny stos. Przełączanie procesora

między równoprawnymi wątkami, jak również tworzenie

wątków jest tanie w porównaniu z przełączaniem

kontekstu między tradycyjnymi procesami.


Document Outline


Wyszukiwarka

Podobne podstrony:
SO2 procesy powtorka
SO2 instrukcja 2 Procesy i sygnały
W4 Proces wytwórczy oprogramowania
WEWNĘTRZNE PROCESY RZEŹBIĄCE ZIEMIE
Proces tworzenia oprogramowania
Proces pielęgnowania Dokumentacja procesu
19 Mikroinżynieria przestrzenna procesy technologiczne,
4 socjalizacja jako podstawowy proces spoeczny
modelowanie procesˇw transportowych
Proces wdrazania i monitoringu strategii rozwoju
Wykorzystanie modelu procesow w projektowaniu systemow informatycznych
wyklad 12nowy procesy elektrodowe i korozja

więcej podobnych podstron