40. āļāļąāļĨāļāļāļĢāļīāļāļķāļĄāļāļāļāļāļēāļĒāļāļāļēāļāļēāļĢ
(Bankerâs Algorithm)
ïāđāļāļĢāļāļŠāļĢāđāļēāļāļāđāļāļĄāļđāļĨāļāļĩāđāļāļģāļēāđāļāđāļāļĄāļĩāļāļąāļāļāļĩāđ
ïAvailable : āđāļāđāļāđāļ§āļāđāļāļāļĢāđāļāļāļēāļ m āļāļķāđāļāđāļāđāđāļāđāļ āļāđāļē
āļāļģāļēāļāļ§āļāļāļĢāļąāļāļĒāļēāļāļĢāļāļĩāđāļ§āđāļēāļāļāļāļāļāļĢāļąāļāļĒāļēāļāļĢāđāļāđāļĨāļ°āļāļĢāļ°āđāļ āļ
āđāļāđāļ Available[j] = k āļŦāļĄāļēāļĒāļāļķāļ āļāļĢāļąāļāļĒāļēāļāļĢāļāļĢāļ°āđāļ āļ Rj
āļĄāļĩāļāļģāļēāļāļ§āļāļāļĢāļąāļāļĒāļēāļāļĢāļ§āđāļēāļāļāļĒāļđāđ k āļāļąāļ§
ïMax : āđāļāđāļāđāļĄāļāļĢāļīāļāļāđāļāļāļēāļ n x m āļāļķāđāļāđāļāđāđāļāđāļāļāđāļēāļāļģāļēāļāļ§āļ
āļŠāļđāļāļŠāļļāļāļāļāļāļāļĢāļąāļāļĒāļēāļāļĢāđāļāđāļĨāļ°āļāļĢāļ°āđāļ āļāļāļĩāđāļāļĢāļ°āļāļ§āļāļāļēāļĢ
āđāļāđāļĨāļ°āļāļąāļ§āļāđāļāļāļāļēāļĢāđāļāđ āđāļāđāļ Max[i,j] = k āļŦāļĄāļēāļĒāļāļķāļ
āļāļĢāļ°āļāļ§āļāļāļēāļĢ Pi āļāđāļāļāļāļēāļĢāļāļĢāļąāļāļĒāļēāļāļĢāļāļĢāļ°āđāļ āļ Rj āļĄāļēāļ
āļāļĩāđāļŠāļļāļ k āļāļąāļ§
41. āļāļąāļĨāļāļāļĢāļīāļāļķāļĄāļāļāļāļāļēāļĒāļāļāļēāļāļēāļĢ
(Bankerâs Algorithm)
ïAllocation : āđāļāđāļāđāļĄāļāļĢāļīāļāļāđāļāļāļēāļ n x m āļāļķāđāļāđāļāđāđāļāđāļāļāđāļē
āļāļģāļēāļāļ§āļāļāļĢāļąāļāļĒāļēāļāļĢāđāļāđāļĨāļ°āļāļĢāļ°āđāļ āļāļāļĩāđāļāļĢāļ°āļāļ§āļāļāļēāļĢāđāļāđāļĨāļ°
āļāļąāļ§ āļāļģāļēāļĨāļąāļāļāļ·āļāļāļĢāļāļāļāļĒāļđāđ āđāļāđāļ Allocation[i,j] = k āļŦāļĄāļēāļĒ
āļāļķāļ āļāļĢāļ°āļāļ§āļāļāļēāļĢ Pi āļāļģāļēāļĨāļąāļāļāļ·āļāļāļĢāļāļāļāļĢāļąāļāļĒāļēāļāļĢāļāļĢāļ°āđāļ āļ
Rj āļāļĒāļđāđ k āļāļąāļ§
ïNeed : āđāļāđāļāđāļĄāļāļĢāļīāļāļāđāļāļāļēāļ n x m āļāļķāđāļāđāļāđāđāļāđāļāļāđāļē
āļāļģāļēāļāļ§āļāļāļĢāļąāļāļĒāļēāļāļĢāđāļāđāļĨāļ°āļāļĢāļ°āđāļ āļāļāļĩāđāļāļĢāļ°āļāļ§āļāļāļēāļĢāđāļāđāļĨāļ°
āļāļąāļ§ āļāļēāļāļĢāđāļāļāļāļāđāļāļīāđāļĄāļāļĩāļāđāļāđ āđāļāđāļ Need[i,j] = k āļŦāļĄāļēāļĒāļāļķāļ
āļāļĢāļ°āļāļ§āļāļāļēāļĢ Pi āļāļēāļāļĢāđāļāļāļāļāļāļĢāļąāļāļĒāļēāļāļĢāļāļĢāļ°āđāļ āļ Rj āđāļāđ
āļāļĩāļ k āļāļąāļ§ āļāļ°āđāļŦāđāļāļ§āđāļē Need [i,j] = Max[i,j] â
Allocation[i,j]
42. āļāļąāđāļāļāļāļāļ§āļīāļāļĩāļāļĢāļ§āļāļāļđāļŠāļāļēāļāļ°āļāļĨāļāļāļ āļąāļĒ
(Safety Algorithm)
ï āļāļąāđāļāļāļāļāļ§āļīāļāļĩāđāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļ§āđāļē āļĢāļ°āļāļāļāļ°āļāļĒāļđāđāđāļ
āļŠāļāļēāļāļ°āļāļĨāļāļāļ āļąāļĒāļŦāļĢāļ·āļāđāļĄāđ āđāļāđāļāļāļąāļāļāļĩāđ
ïāļāļģāļēāļŦāļāļāđāļŦāđ Work āđāļĨāļ° Finish āđāļāđāļāđāļ§āļāđāļāļāļĢāđāļāļāļēāļ m
āđāļĨāļ° n āļāļēāļĄāļĨāļģāļēāļāļąāļ āđāļĨāļ°āļāļģāļēāļŦāļāļāļāđāļēāđāļĢāļīāđāļĄāļāđāļ āļāļąāļāļāļĩāđ
ïWork := Available;
ïFor i := 1 TO n DO
ï Finish[i] := FALSE;
44. āļāļąāļĨāļāļāļĢāļīāļāļķāļĄāļĢāđāļāļāļāļāļāļĢāļąāļāļĒāļēāļāļĢ
(Resource-Request Algorithm)
ïāđāļŦāđ Requestāđāļāđāļāđāļ§āļāđāļāļāļĢāđ āđāļŠāļāļāļāļģāļēāļĢāđāļāļāļāļāļāļāļ
i āļāļĢāļ°āļāļ§āļāļāļēāļĢ Pi āđāļāļĒāļāļĩāđ RequestāļŦāļĄāļēāļĒāļāļķāļ
i āļāļĢāļ°āļāļ§āļāļāļēāļĢ Pi āđāļāđāļĢāđāļāļāļāļāļāļĢāļąāļāļĒāļēāļāļĢāļāļĢāļ°āđāļ āļ Rj āđāļāđāļ
āļāļģāļēāļāļ§āļ k āļāļąāļ§
ïāđāļĄāļ·āđāļāļāļĢāļ°āļāļ§āļāļāļēāļĢ Pi āļĢāđāļāļāļāļāļāļĢāļąāļāļĒāļēāļāļĢ āļĢāļ°āļāļāļāļ°
āļāļąāļāļāļēāļĢ āļāļąāļāļāļĩāđ
ÂĢ
ï1. āļāđāļē Request> NeedāđāļĨāđāļ§ āļĢāļ°āļāļāļāļ°āđāļāđāļāļāđāļāļāļīāļ
i i āļāļĨāļēāļāļ§āđāļē âāļāļĢāļ°āļāļ§āļāļāļēāļĢāļāļāļāļĢāļąāļāļĒāļēāļāļĢāļĄāļēāļāļāļ§āđāļēāļāļĩāđāļĢāļ°āļāļļâ
āđāļĨāđāļ§āļāļĢāļ°āļāļ§āļāļāļēāļĢāļāļ°āļāļđāļāļāļąāļāļāļāļāļāļēāļāļĢāļ°āļāļ āđāļāđāļāđāļē
RequestNeedāđāļĨāđāļ§ āļāļ°āđāļāļāļģāļēāļāļēāļāđāļāļāļąāđāļāļāļāļāļāļĩāđ 2
i i
45. āļāļąāļĨāļāļāļĢāļīāļāļķāļĄāļĢāđāļāļāļāļāļāļĢāļąāļāļĒāļēāļāļĢ
(Resource-Request Algorithm)
ï 2. āļāđāļē Requesti > Available āđāļĨāđāļ§āđāļŦāđ Pi āļĢāļāļāļāļāļ§āđāļē
āļāļĢāļąāļāļĒāļēāļāļĢāļāļĩāđāļĢāđāļāļāļāļāļāļ°āļ§āđāļēāļ āļāļēāļāļāļąāđāļāļāļķāļāđāļāļāļģāļēāļāļēāļāđāļ
āļāļąāđāļāļāļāļāļāļĩāđ 3 āđāļāđāļāđāļē Requesti Available āđāļĨāđāļ§ āļāļ°āđāļ
āļāļģāļēāļāļēāļāđāļāļāļąāđāļāļāļāļāļāļĩāđ 3 āļāļąāļāļāļĩ
ï 3. āļĢāļ°āļāļāļāļ°āļŠāļĄāļĄāļāļīāļ§āđāļēāđāļāđāļāļąāļāļŠāļĢāļĢāļāļĢāļąāļāļĒāļēāļāļĢāđāļŦāđāļāļēāļĄāļāļĩāđ
āļāļĢāļ°āļāļ§āļāļāļēāļĢ Pi āļĢāđāļāļāļāļāļĄāļē āđāļāļĒāļĢāļ°āļāļāļāļ°āļĄāļĩāļŠāļāļēāļāļ°
āđāļāļĨāļĩāđāļĒāļāđāļ āļāļąāļāļāļĩāđ
ï Available := Available â Requesti;
ï Allocationi := Allocationi + Requesti;
ï Needi := Needi â Requesti;
ÂĢ
48. āļāļąāļ§āļāļĒāđāļēāļ (An Illustrative
Example)
Allocation Max Available
A B C A B C A B C
P0
P1
P2
P3
P4
0 1 0
2 0 0
3 0 2
2 1 1
0 0 2
7 5 3
3 2 2
9 0 2
2 2 2
4 3 3
3 3 2
49. āļāļąāļ§āļāļĒāđāļēāļ (An Illustrative
Example)
ïāđāļĨāļ°āđāļāļ·āđāļāļāļāļēāļ āđāļĄāļāļĢāļīāļāļāđ
Need āđāļāļīāļāļāļēāļ Max â
Allocation āļāļąāļāļāļąāđāļāļāļ°āđāļāđ
āļ§āđāļē
Need
A B C
P0
P1
P2
P3
P4
7 4 3
1 2 2
6 0 0
0 1 1
4 3 1
57. āļĢāļ°āļāļāļāļĩāđāļĄāļĩāļāļĢāļąāļāļĒāļēāļāļĢāđāļāđāļĨāļ°āļāļĢāļ°āđāļ āļāļŦāļĨāļēāļĒāļāļąāļ§
(Several Instances of a Resource Type)
ïāļāļąāđāļāļāļāļāļ§āļīāļāļĩāđāļāļāļēāļĢāļāļĢāļ§āļāļŦāļēāļ§āļāļāļĢāļāļąāļāļāļĩāđāļāļĨāđāļēāļĒāļāļąāļ
Bankerâs Algorithm āļāļķāđāļāļāļģāļēāđāļāđāļāļāđāļāļāđāļāđāđāļāļĢāļāļŠāļĢāđāļēāļ
āļāđāļāļĄāļđāļĨāļāļąāļāļāđāļāđāļāļāļĩāđ
ïAvailable : āđāļāđāļāđāļ§āļāđāļāļāļĢāđāļāļāļēāļ m āđāļŠāļāļāļāļģāļēāļāļ§āļ
āļāļĢāļąāļāļĒāļēāļāļĢāđāļāđāļĨāļ°āļāļāļīāļ āļāļĩāđāļĒāļąāļāļ§āđāļēāļāļāļĒāļđāđ (āđāļĄāđāđāļāđāļāļđāļ
āļāļĢāļ°āļāļ§āļāļāļēāļĢāđāļāļāļ·āļāļāļĢāļāļāļāļĒāļđāđ)
ïAllocation : āđāļāđāļāđāļĄāļāļĢāļīāļāļāđ n x m āđāļāđāđāļāđāļāļāđāļēāļāļģāļēāļāļ§āļ
āļāļĢāļąāļāļĒāļēāļāļĢāđāļāđāļĨāļ°āļāļāļīāļāļāļĩāđāļāļĢāļ°āļāļ§āļāļāļēāļĢāđāļāđāļĨāļ°āļāļąāļ§āļāļ·āļāļāļĢāļāļ
āļāļĒāļđāđ
ïRequest : āđāļāđāļāđāļĄāļāļĢāļīāļāļāđ n x m āđāļāđāđāļāđāļāļāđāļēāļāļģāļēāļāļ§āļ
āļāļĢāļąāļāļĒāļēāļāļĢāđāļāđāļĨāļ°āļāļāļīāļāļāļĩāđāļāļĢāļ°āļāļ§āļāļāļēāļĢāđāļāđāļĨāļ°āļāļąāļ§āļāļģāļēāļĨāļąāļ
āļĢāđāļāļāļāļ
59. āļĢāļ°āļāļāļāļĩāđāļĄāļĩāļāļĢāļąāļāļĒāļēāļāļĢāđāļāđāļĨāļ°āļāļĢāļ°āđāļ āļāļŦāļĨāļēāļĒāļāļąāļ§
(Several Instances of a Resource Type) ï 3. i := 1;
ï WHILE i n DO BEGIN
ï IF Finish[i] = FALSE AND Request[i] Work
ï THEN BEGIN
ï Work := Work + Allocationi;
ï Finish[i] := TRUE;
ï i := i+1; END
ï ELSE i := i+1;
ï END;
ï 4. FOR i=1 TO n DO
ï IF Finish[i] = FALSE THEN process Pi is in a deadlocked.
ï 6. IF Finish[i] = TRUE āļāļąāđāļāļŦāļĄāļ āđāļŠāļāļāļ§āđāļēāļāļāļ°āļāļĩāđāļĢāļ°āļāļāđāļĄāđāđāļāļīāļāļ§āļāļāļĢ
āļāļąāļ.
60. āļāļąāļ§āļāļĒāđāļēāļ
ïāđāļŦāđāļĢāļ°āļāļāļĄāļĩ 5 āļāļĢāļ°āļāļ§āļāļāļēāļĢ P0 , P1 , P2 , P3 āđāļĨāļ° P4 āđāļĨāļ°āļĄāļĩ
āļāļĢāļąāļāļĒāļēāļāļĢāļāļāļīāļ A 7 āļāļąāļ§ , āļāļāļīāļ B 2 āļāļąāļ§ , āļāļāļīāļ C 6 āļāļąāļ§ āļ
āđāļ§āļĨāļē T0 āļĢāļ°āļāļāļāļĒāļđāđāđāļāļŠāļāļēāļāļ°āļāļąāļāļāļĩāđ
Allocation Request Available
A B C A B C A B C
P0
P1
P2
P3
P4
0 1 0
2 0 0
3 0 3
2 1 1
0 0 2
0 0 0
2 0 2
0 0 0
1 0 0
0 0 2
0 0 0