PPS 2013 W8

background image

Wykład 8

Sterowanie procesami

Komunikacja między procesami

background image

Koncepcja procesu

Stany procesu

Przełączanie pomiędzy procesami

Przykład implementacji przełączania procesów

komunikacja międzyprocesowa

s

ygnały

strumienie

background image

Wieloprogramowość

Cecha umożliwiająca „jednoczesne” wykonywanie

wielu programów

Wymagany program organizujący pracę programów

użytkowych – system nadzorczy/operacyjny

Mechanizmy sterowania wykonaniem programów
Mechanizmy przepływu informacji pomiędzy
programami

background image

Składowe systemu operacyjnego

ładowalne moduły jądra

jądro

wspólne biblioteki systemu

programy zarządza-

nia systemem

procesy użytko-

we

pomocnicze progra-

my użytkowe

kompilatory

„przybory” systemowe

(tryb użytkownika)

Współdziałanie

aplikacji z jądrem

(tryb użytkownika)

Pamięć wirtualna,

procesy, sygnały

(tryb jądra)

background image

Składowe systemu cd

background image

Koncepcja procesu

System wieloprogramowy

= wiele realizacji programów może

być wykonywanych jednocześnie

proces

Cechy procesu

realizacja

wykonywania programu

wykonanie/wstrzymanie

w dowolnym momencie

równoległość

– przełączanie kontekstowe

niezależność

: wykorzystanie mechanizmów CPU dla

zapobieżenia bezpośredniego korzystania z hardware’u lub

komórek o ustalonych adresach

tryb użytkownika i tryb jądra

ochrona pamięci

background image

Składniki procesu

Składowe procesu w systemie LINUX

Liniowa przestrzeń adresowa

, w której wydzielić można

sekcję tekstu (kod programu), sekcję danych i sekcję stosu.

Licznik programu

wskazujący na aktualnie wykonywaną

instrukcję, lub w przypadku programów wielowątkowych wiele

takich liczników.

Zapis stanu rejestrów

procesora.

Deskryptory plików

, opisujące otwarte przez proces pliki,

strumienie i połączenia sieciowe.

Dane procesu

, takie jak unikalny dla procesu numer

PID

,

numer użytkownika

UID

, numery grup

GID

, efektywny UID i

GID..

Zależności rodzinne

z innymi procesami: rodzic, lista dzieci i

braci.

Liczniki statystyczne

zapisujące m.in. zużyty czas w trybie

jądra i trybie użytkownika.

background image

Deskryptor procesu

Każdy proces reprezentowany jest przez jego deskryptor

typ

nazwa

opis

bieżący stan procesu (executing, ready, itd.)

priorytet

polityka szeregowania (łańcuchowo, itp.)

bieżący czas przydzielony procesowi

lista deskryptorów uruchomionych procesów

identyfikator procesu (PID)

stan rejestrów CPU

background image

Procesy i zadania

Procesy z zewnątrz widziane jako niezależne

Od strony jądra – poszczególne zadania systemu

background image

program

użytkownika

procedura
biblioteczna

obsługa

wywołań
systemowych

procedury

jądra

Składowe systemu cd

Tryb jądra

background image



Aktywny:

w trybie użytkownika - proces znajduje się „w procesorze” i wykonuje

swój kod.

w trybie jądra - jądro wykonuje wywołanie systemowe wykonane przez

proces.

Gotowy

do wykonania -

może być uruchomiony w każdej chwili, jednak nie

został mu jeszcze przydzielony procesor.

Uśpiony

– proces czeka na jakieś zdarzenie, na przykład na odczyt danych

z dysku lub z sieci.

Zatrzymany

– proces czeka na sygnał (wznowienia)

Zombie

(widmo)-

proces zakończył działanie i czeka na odebranie kodu

powrotu przez proces

, który w międzyczasie przestał istnieć.

Stany procesu

background image

Zmiany stanu procesu

przełączenie w stan działania

ustanowienie nowego
procesu

zakończenie procesu

sygnał
zatrzymania

zdarzenie! ->
proces do
kolejki

proces uśpiony;

oczekuje zdarzenia

przełączenie
w stan

gotowości

GOTOWY

WIDMO

DZIAŁA

ZATRZYMANY

UŚPIONY

sygnał
wznowienia
od innego
procesu

UTWORZENIE

PROCESU

background image

Przełączanie kontekstowe

Przełączanie kontekstowe

zapisz zawartość rejestrów CPU do deskryptora procesu

odczytaj zawartość rejestrów CPU z deskryptora następ-

nego procesu

Rejestry zachowywane przy przełączaniu

licznik programu i wskaźnik stosu

rejestry robocze (ogólnego przeznaczenia)

rejestry jednostki zmiennoprzecinkowej

PSW

rejestry zarządzania pamięcią

background image

Sterowanie procesami przez jądro

background image

Tryb jądra i tryb użytkownika

CPU pracuje w

trybie jądra

lub w

trybie użytkownika

programy w

trybie użytkownika nie mają dostępu

do

przestrzeni danych jądra i funkcji jądra

programy w

trybie jądra mają dostęp

do wszystkich

zasobów

Źródła przełączenia w tryb jądra

background image

PRZYKŁAD IMPLEMENTACJI
PRZEŁĄCZANIA PROCESÓW

background image

The diagram of the programme

Initial- value




label


LOOP





Copy temperature in

variable and display




Wait 250ms

Label

Arrows up

Enter

KEYBOARD



Arrows

down

Increment variable Decrement variable display OK
and display with and display with with
OK OK temperature

no enter



Wait 1.5 seconds Wait 2secondes

Put enter


Display new
Temperature display
temperature


Calculation and

Calculation and

execution of

execution of

a control

a control

Przykład: urządzenie sterujące
ogrzewaniem (mikrokontroler)

Funkcje:

-odczyt ustawień

-komunik. przez wyświetlacz

-obliczenie sterowania

-sterowanie

background image

Procesy składowe aplikacji

background image

Zasoby systemu wielozadaniowego

background image

Zasoby procesów składowych aplikacji

background image

Initialisation



stack0,1,2,3 starts at address ...H (internal ram)


values for the timer 0

Set values for variables


……………………



……………………..


main_prog

Process0

Process1

Process2


Process3


Switching routine




Budowa systemu

background image

PROCESS 1

WAIT 100 MS



READ

INPUT EXECUTED

VARIABLE






NO

EXECUTED?

YES




READ VARIABLE

DISPLAY


PROCESS 0

(Read keyboard & save
data in a variable)





no

enter



ENTER

ARROWS DOWN

ARROWS UP








SET INPUT

DECREASE

INCREASE

EXECUTED

VARIABLE

VARIABLE

VARIABLE







VARIABLE
RESET?

YES

NO

background image

TIMER_ROUTINE




PREPARING TIMER




RELOAD TIMER AND RESTART



SWITCH


SAVE REGISTERS USED
BY THE CURRENT PROCESS





SAVE THE CURRENT STACK

POINTER IN THE ACTIVE BANK





CHANGE THE BANK
ROUND ROBIN CYCLE
( )





STACK POINTER FROM
THE CURRENT BANK

( new process)





RESTORE REGISTERS OF THE NEXT

PROCESS FROM ITS STACK

Obsługa przerwań

Przełącznik procesów

background image

Timer proc.

Process0

Process2

Process2

Process3

000B

0100

0103

0106

0109

............

STACK0

0030

............

STACK1

0040

............

Budowa systemu

background image

Budowa systemu

Inicjalizacja stosów

background image

Budowa systemu

Inicjalizacja timera i przerwań

background image

Budowa systemu. Obsługa przerwania

background image

TIMER_ROUTINE




PREPARING TIMER




RELOAD TIMER AND RESTART



SWITCH


SAVE REGISTERS USED
BY THE CURRENT PROCESS





SAVE THE CURRENT STACK

POINTER IN THE ACTIVE BANK





CHANGE THE BANK
ROUND ROBIN CYCLE
( )





STACK POINTER FROM
THE CURRENT BANK

( new process)





RESTORE REGISTERS OF THE NEXT

PROCESS FROM ITS STACK

Obsługa przerwań

Przełącznik procesów

background image

Obsługa przerwań

Przełącznik procesów

background image

Komunikacja międzyprocesowa (1)

Sygnał:

zdarzenie generowane przez system jako reakcja

na zaistniałe

okoliczności. Po otrzymaniu sygnału proces może podjąć pewne

czynności. Może być użyty do komunikacji pomiędzy uruchomiony-
mi procesami

Cechy

sygnałów:

asynchroniczność - wysyłający

nie czeka

, aż proces odbierze

sygnał

jedynym

przekazem jest numer

, poza tym sygnał nie niesie

żadnej innej informacji

nadawca

sygnału jest

nieznany

(niewyspecyfikowany)

ilość

przesłanych sygnałów danego typu jest

nieznana

, proces

wie tylko, czy sygnał się pojawił

proces nie musi odbierać

sygnału czy reagować na niego (nie

dotyczy części sygnałów)

sygnały są

zestandaryzowane

: m

ają przyporządkowane numery,

(i ustalone nazewnictwo).

background image

Sygnały są używane w systemie zazwyczaj do obsługi nietypowych

sytuacji a nie do przesyłania danych między procesami.

Większość typów sygnałów jest przeznaczona do użycia przez jądro.

Np. w Linux’ie tylko kilka z listy 19 służy do komunikacji

międzyprocesowej. Istnieje dodatkowa lista sygnałów poza standardem,

zależna od implementacji. Na ogół używa ich jądro do wskazywania

warunków błędu.

Źródła sygnałów:

niektóre błędy (typu: naruszenie segmentów pamięci).

powłoka i programy obsługi terminala w celu wywołania przerwania.

jawnie wysyłane z jednego procesu do innego w celu przekazania
informacji albo modyfikacji procesu.

Operacje związane z sygnałami:

generowanie,

przechwytywanie,

reagowanie,

ignorowanie.

Sygnały

background image

Sygnały cd (przykłady)

background image

Strumienie (1)


Koncepcja strumienia:

Jeżeli dwa lub więcej procesów korzysta w tym samym czasie

ze

wspólnych danych

to najlepiej wykorzystać

jednokierunkowy kanał

komunikacyjny łączący ze sobą powiązane procesy (=

strumień

).

Funkcje strumienia:

Przenoszenie danych

– zapis (write) przez jeden proces; odczyt (read)

przez drugi proces

Cechy:

informacja w

strumieniu

odczytywana jest

w kolejności

takiej jak

zapis.

p

roces nie musi czytać ze

strumienia

takimi samymi porcjami jakimi

informacja jest zapisywana.

j

eżeli ilość danych w

strumieniu

jest z jakichś względów

za duża

,

proces produkujący dane zostaje

zawieszony

, do czasu, gdy poziom

danych w

strumieniu

spadnie do dopuszczalnego poziomu.


background image

Komunikacja międzyprocesowa –

strumienie (2)

W wielu systemach momencie

utworzenia

każdego procesu

zawsze otwierane

trzy pliki i nadawane im deskryptory (0,1,2):

stdin (standard input, 0) -

wejście standardowe

stdout (standard output, 1) -

wyjście standardowe

stderr (standard error, 2) -

wyjście standardowe błędów (diagnostyczne)

Domyślnie strumień wejściowy to klawiatura a wyjściowy i

błędów – ekran,

ale niekoniecznie

!


Wejścia i wyjścia różnych procesów (wątków) mogą być

ze sobą powiązane za pomocą nienazwanych procesów

komunikacji

strumieni.

background image

Zastosowanie strumieni (3)

komunikacja pomiędzy procesami

posiadającymi wspólnego przodka:

powiązanie standardowych wejść i

wyjść różnych procesów.

sprzężenie zwrotne:

przywiązanie

wejścia i wyjścia

strumienia

do jednego procesu, co

stwarza mechanizm pętli.


UWAGA:

strumienie

nietrwałe

.

Muszą być tworzone gdy są potrzebne i

usuwane z chwilą zakończenia

działania korzystających z nich

procesów.

background image

Pliki FIFO (strumienie nazwane)

Wad

zwykłych

strumieni

nie mają

strumienie nazwane

(

pliki

FIFO

).

Cechy plików FIFO:

Na poziomie zapisu i odczytu pliki FIFO działają jak

strumienie

zapewni

ając mechanizm komunikacji

międzyprocesowej w systemie

FIFO

.

W przeciwieństwie jednak do

strumieni

pliki FIFO

elementem trwałym

i posiadają

nazwy plików

.


Plik FIFO ma

ma

też

właściciela

,

wielkość

i powiązane

prawa dostępu

.

Może być

otwierany

,

zamykany

i

usuwany

jak każdy plik.


Wyszukiwarka

Podobne podstrony:
PPS 2013 W2
PPS 2013 W7
PPS 2013 W5
PPS 2013 W4
PPS 2011 W8
PPS 2013 W5
PPS 2013 W6
PPS 2013 W2
GF w8 2.12, Geologia GZMiW UAM 2010-2013, I rok, Geologia fizyczna, Geologia fizyczna - wykłady, 03,
GF w8 20.04, Geologia GZMiW UAM 2010-2013, I rok, Geologia fizyczna, Geologia fizyczna - wykłady, 01
14 lutego 2013, PPS, Różne
2013 03 26 W8 Technologia montażu Brygada Montażowaid 28272 ppt
prawobud W8 2013

więcej podobnych podstron