SYSTEMY OPERACYJNE
07.12.2010
Kontekst i jego połączenie
współbieżna realizacja procesów / wątków
Kontekst – zbiór danych określających aktualny stan procesów lub wątków.
Kontekst:
•
sprzętowy – zbiór danych związanych z procesorem
◦
stan licznika rozkazów PC (adres rozkazu)
IMG
◦
rejestry robocze procesora
TSS – Task State Segment – 104B
•
programowy
np.: stan otwartych plików
Połączenie kontekstu
P
1
operacje sprzętowe
zapamiętanie w pamięci operacyjnej kontekstu procesu / wątku P
1
odczytanie z pamięci operacyjnej kontekstu procesu / wątku P
2
P
2
1
2
3
cd. P
P
P
P
1
Kontekst
Procesy zależne i niezależne
•
niezależne – są to procesy i wątki które nie korzystają ze wspólnych danych i nie
komunikują się ze sobą.
•
zależne – są to takie procesy i wątki które korzystają ze wspólnych danych lub komunikują
się ze sobą
Hazard
•
niezależne – wyniki deterministyczne
•
zależne – hazard – wyniki niedeterministyczne
Usunięcie niedeterminizmu – programista
Mechanizmy systemowe
•
semafory
◦
semafory binarne – Mutex (ang.: Mutual Exclusion)
programowanie współbieżne
sekcja krytyczna – fragment programu modyfikujący wspólne dane
2
P
P
1
DANE 1
DANE 2
2
P
P
1
DANE
2
P
P
1
DANE
różne
wyniki
P
1
2
P
sekcja
krytyczna
sekcja
krytyczna
1
2
3