Zasoby - zti.polsl.pl

Transkrypt

Zasoby - zti.polsl.pl
WPROWADZENIE
Zasobami systemu nazywamy zbiór układów wewnętrznych maszyny cyfrowej oraz zbiór programów pomocniczych i podprogramów
bibliotecznych, niezbędnych do realizacji procesów.
Zasób podzielny to taki, który można oddać innemu klientowi do wykorzystania, a potem powrócić do obsługi klienta, którą uprzednio
się przerwało (np. procesor)
Zasób niepodzielny to taki, z którego nie może korzystać jednocześnie więcej niż jeden klient. (np. drukarka)
Etap procesu to fragment, w którym potrzebne do jego realizacji zasoby są stałe (np. w tym fragmencie proces będzie używał tylko
drukarki i stacja dysków nie będzie mu potrzebna).
Gospodarka zasobami to polityka przydziału zasobów procesora. Jej celem jest:
- minimalizacja czasu realizacji procesów
- uniknięcie wzajemnej blokady
Dane początkowe:
- zbiór programów: P = {P1, P2, ... PN}, procesów: I = {I1, I2, ..,IN}, klas zasobów: Z = {Z1, Z2,...ZM}
X1
Wektor zasobów systemu: X = X2
…
XM
Stan systemu (w chwili t):
- macierz zasobów przydzielonych: A = | A1, A2,...,AN|, macierz zasobów potrzebnych: B = | B1, B2,...,BN|
a1
a2
Ilość zasobów dla i-tego procesu Ai =
Bi =
aM
b1
b2
bM
- wektor rezerwy systemu:
Klasyfikacja stanów systemu w chwili t:
Stan systemu
niemożliwy
możliwy
niebezpieczny
bezpieczny
istnieje dla niego zdrowy ciąg procesów
nierealizowalny
realizowalny
zdrowy ciąg procesów to taka kolejność realizacji N procesów w systemie, począwszy od stanu systemu w chwili t, że spełniony jest
To, co zwolnią poprzednie procesy
warunek:
i
< 1, N >,
płaszczyzna fazowa, to nieformalna ilustracja graficzna przydziału zasobów
S(i) –miejsce i-tego procesu w ciągu
Zad. 1.
Określić metodą analityczną, znając wektor zasobów systemu, w jakim stanie znajdzie się system dla następujących punktów
płaszczyzny fazowej procesów I1, I2
1. (I, I)
Proces I1 (etapy)
2. (II, II)
I.
Proces I2 (etapy)
…
I.
…
z2
3. (III, III)
II.
z1,z3
II.
4. (III, IV)
III.
z2, z3
III.
z1, z2, z3
IV.
z3
IV.
z1
V.
…
V.
……
Narysować te punkty na płaszczyźnie fazowej.
Zad. 2.
Określić metodą analityczną, znając wektor zasobów systemu, w jakim stanie znajdzie się system dla punktu (II, II) procesów I1, I2
Proces I1 (etapy)
VI.
Proces I2 (etapy)
…
VI.
…
z2
VII.
z1,z3
VII.
VIII.
z2, z3
VIII.
IX.
z3
IX.
X.
…
X.
z1, z2
z1
……
Czym różni się stan systemu w tym punkcie od sytuacji występującej w poprzednim zadaniu?
Zasoby niepodzielne należy zabezpieczać przed jednoczesnym dostępem kilku procesów. Do ich ochrony można używać:
- procedury TAS (m)
- zasuwki
- semafora
Semafor to mechanizm, określający stan zasobów w systemie; e(s) – zmienna o wartości początkowej e0(s); z semaforem stowarzyszona
jest kolejka f(s) procesów czekających na dostęp do zasobu.
e(s) > 0 – to liczba wolnych egzemplarzy zasobu
e(s) = 0 – oznacza, że zasób jest wyczerpany
e(s) < 0 – oznacza, że utworzona została kolejka i jest to liczba procesów, które czekają
Operacje na semaforze
Dla semafora można zdefiniować dwie procedury:
- wejścia P(s), która umożliwia dostęp do zasobu
- wyjścia V(s), która zwalnia niepotrzebny już danemu procesowi zasób
P(s)
V(s)
{
{
e(s) = e(s) – 1
e(s) = e(s) + 1
if (e(s) < 0)
if (e(s)
{
//są oczekujące na ten zasób procesy zawieszone
stan(r) – zawieszony
//r – proces pytający,
0)
{
wprowadź proces r do kolejki f(s);
wyprowadź proces q z kolejki f(s);
}
stan(q) - aktywny
}
}
}
Zad. 3.
W systemie wieloprogramowym o 1 czytniku i 1 drukarce realizowane są 2 programy:
program P1
program P2
{
{
}
obliczenia;
obliczenia;
P(czytnik)
P(drukarka)
czytanie_danych;
wydruk_wyników1;
P(drukarka);
P(czytnik);
wydruk_wyników;
czytanie_danych;
V(drukarka);
V(czytnik);
obliczenia;
obliczenia;
czytanie_danych;
wydruk_wyników2;
V(czytnik);
V(drukarka);
obliczenia;
obliczenia;
}
Z semaforami: czytnik i drukarka są związane wartości początkowe: e 0(czytnik) = 1, e0(druk) = 1
a)
pokaż graficznie, że przy współbieżnej realizacji P1 i P2 może dojść do wzajemnej blokady
b) określ analitycznie stan systemu, kiedy dojdzie do równoległego odczytu danych przez P1 oraz wydruku wyników przez P2
c)
popraw P1 i P2 tak, aby nie dopuścić do możliwości wystąpienia blokady