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