12.07.2015 Views

Spis treœci - Patrz

Spis treœci - Patrz

Spis treœci - Patrz

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

jeszcze nie zaspokojone potrzeby procesów oraz liczba już przydzielonych jednostek zasobu,natomiast w zmiennej dostępne typu integer pamięta się liczbę jeszcze dostępnych jednostekzasobu.Funkcja dająca odpowiedź, czy stan po przydzieleniu jednej jednostki zasobuprocesowi numer i jest bezpieczny wygląda następująco:function bezpieczny(i: integer): boolean;var całkowite, j: integer;dalej: boolean;koniec: array[l..N] of boolean; {procesy zakończone}beginif dostępne = O then bezpieczny := falseelse beginprzydział [i] := przydział[i] + 1;{markowanie przydziału}potrzeby [i] := potrzeby ":l - 1; {potrzeby maleją}całkowite := dostępne - ; {tyle jest jednostek}for j := l to N do koniec [j] := przydział[j] = 0;repeatj := i;dalej := true;while dalej doif not koniec[j] and (potrzeby[j] N then dalej := falseenduntil (całkowite = M) or (j > N):bezpieczny := całkowite = M; {odzyskano wszystkie}przydział[i] := przydział [i] - l;{powrót do}potrzeby[i] := potrzeby[i] + l {starych wartości}endend;Powyżej opisano algorytm bankiera w przypadku pojedynczych żądań i jednego typuzasobu. Idea algorytmu dla wielu typów zasobów i jednoczesnych żądań wielu jednostekróżnych zasobów jest taka sama z tym, że bardziej złożone są struktury danych (por.[PeSGOl]).4.3.12 Rodzina procesówZarządzanie rodziną procesów polega na tworzeniu i niszczeniu procesów potomnych.Początkowo w systemie znajduje się jeden proces-antenat. Każdy proces może utworzyćwiele procesów potomnych. Potomny może na swoje żądanie zostać zniszczony, jeśli sam niema procesów potomnych. W przeciwnym razie musi zaczekać na samozniszczenie wszystkichswoich procesów potomnych.77

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!