Algorytm bankiera - jak to ugryść?

paffel
Użytkownik
Użytkownik
Posty: 28
Rejestracja: 3 lis 2008, o 09:14
Płeć: Mężczyzna
Lokalizacja: Czaplinek
Podziękował: 11 razy

Algorytm bankiera - jak to ugryść?

Post autor: paffel »

Witam,
właśnie uczę się do powtórki z Systemów operacyjnych i za nic nie mogę przypomnieć sobie jak działa algorytm bankiera... Notatki mam ze wszystkiego oprócz tego ustrojstwa...

Przykładowe zadanie:

W systemie są następujące ilości zasobów:
A = 2
B = 5

Aktualnie przydzielone:
A B
0 2 P1
1 1 P2
0 0 P3

Maksymalne zapotrzebowanie:
A B
1 2 P1
1 4 P2
2 0 P3

Czy jest to sytuacja bezpieczna? (Powinna!!!) Jeśli tak, to podaj odpowiednią sekwencję kończenia procesów. Co się stanie, gdy zgłoszone zostaną następujące żądania przydzielenia zasobów:

P2: 1xB, P2: 1xA, P2: 3xB.

Z góry dziękuje za pomoc.
pfauel
Użytkownik
Użytkownik
Posty: 32
Rejestracja: 26 lis 2009, o 01:15
Płeć: Mężczyzna
Lokalizacja: Polska
Pomógł: 9 razy

Algorytm bankiera - jak to ugryść?

Post autor: pfauel »

Sytuacja jest według algorytmu bankiera bezpieczna, jeżeli po przydzieleniu żądanych zasobów da się jeszcze przy użyciu pozostających zasobów wykonać wszystkie procesy...

Ta sytuacja jest bezpieczna. Wywołanie kończenia procesów dla tej sytuacji mogłoby wyglądać tak:
A=2,B=5 to są ile jest w sumie zasobów, ale już, jak widzimy, jakieś są przydzielone, dlatego na początku obliczam ile jest wolnych zasobów. Z tablicy aktualnie przydzielonych zasobów widzimy, że mamy już zajęte 1 A i 3 B. Odejmujemy to od sumy posiadanych zasobów i wychodzi nam oczywiście A = 1, B = 2.
1. Teraz jak już to wiemy to musimy sprawdzić czy istnieje, jakiś jakiś proces który przy użyciu tych wolnych zasobów i tego co już ma jest w stanie osiągnąć swoje maksymalne zapotrzebowanie. Jak widzimy jest to możliwe tylko dla procesu P1 (P1 ma już 2B, potrzebuje do skończenia jeszcze tylko jednego A, które jak widzimy mamy wśród naszych wolnych zasobów - przydzielamy więc to 1A i kończymy proces P1). P1 innymi słowy kończy swoje działanie i zasoby, jakie potrzebowało są zwracane do listy wolnych zasobów: mamy więc teraz wolne A = 1, B = 4 (z jednego A proces P1 skorzystał i zwrócił, 2 B miał wcześniej, skorzystał i zwrócił).
2. Teraz, jak już P1 jest gotowe i mamy trochę więcej wolnych zasobów niż wcześniej patrzymy, czy da się skończyć P2 lub P3. P3 jeszcze nie bo potrzebujemy dwóch wolnych A, ale P2 już da się wywołać, ponieważ P2 do zrealizowania swoich maksymalnych wymagań potrzebuje jeszcze 3 B, a te mamy wśród naszych wolnych zasobów. Więc kończymy P2 i P2 zwraca wszystko co ma więc teraz wolne są A = 2, B = 5.
3. Teraz już możemy zakończyć też P3, bo mamy te 2 A które były do tego konieczne.
Co się stanie, gdy zgłoszone zostaną następujące żądania przydzielenia zasobów:

P2: 1xB, P2: 1xA, P2: 3xB.
nie jestem pewny, czy dobrze rozumiem, ale chodzi chyba o to, że sytuacja znajdujemy się w takiej sytuacji jak napisałeś na początku i teraz po koleji przychodzą takie żądania. OK
Mamy więc wolne: A = 1, B = 2.
przychodzi żądanie P2:1B, czyli teraz musimy przeprowadzić taką analizę jak powyżej dla sytuacji:
wolne: A=1,B=1,
aktualnie posiadane:
A B
0 2 P1
1 2 P2
0 0 P3
Maksymalne zapotrzebowanie:
A B
1 2 P1
1 4 P2
2 0 P3
nie będe znowu dokładnie się rozpisywał, ale z tego co widzę jest to bezpieczny stan, więc żądanie to (P2:1B) zostanie zrealizowane (ponieważ istnieje możliwe wywołanie A->B->C).
Teraz kolejne, żądanie P2:1A. Przeprowadzamy w takim razie analize dla sytuacji:
wolne:
A=0,B=1
aktualnie posiadane:
A B
0 2 P1
2 2 P2
0 0 P3
Maksymalne zapotrzebowanie:
A B
1 2 P1
1 4 P2
2 0 P3
I tu widzimy, że ta sytuacja nie jest bezpieczna, czyli według algorytmu bankiera to żądanie nie może zostać zrealizowane, czyli na tym kończymy.

Nie do końca pamiętam notacje jak się tą analizę przeprowadza - są różne, zresztą to nie takie ważne już.
Trochę się rozpisałem, mam nadzieję, że nigdzie się nie pomyliłem i że wszystko zrozumiesz.
pozdrawiam
paffel
Użytkownik
Użytkownik
Posty: 28
Rejestracja: 3 lis 2008, o 09:14
Płeć: Mężczyzna
Lokalizacja: Czaplinek
Podziękował: 11 razy

Algorytm bankiera - jak to ugryść?

Post autor: paffel »

Odpisuje jeszcze się nie wczytując ale wygląda groźnie W każdym razie dziękuje bardzo za pomoc Za chwilę spróbuję to ogarnąć.
ODPOWIEDZ