.


:




:

































 

 

 

 





[,]:

 

n ;

n ;

n *).

[]. .

 

5.4.1

 

( , ) . , [] , , .

[,,].

, , . - . . .

: -, , , -, .

, . . , . , .

[md]. , . , . , . . 5.2 . 1 2, p1, 1 2, p2 1- . , 2 , , 2- , .

. .

. . , , , .

. , . . , (indefinite postponement), , []. , , . . .

 

5.4.2

 

. , . , , .

, , , []. , . . , -. , , , .

. - . . , . .

:

type

n=Number_of_Process;

Process_Resource_State =

record

Claim:integer; {}

Held:integer; { }

Request:boolean;{ }

end;

Allocation_State =

record

Hold:array [1..n] of Process_Resource_State;

Free:integer;{ }

end;

 

. . :

1) , ;

2) , ();

3) Held, , .

, . , . , . , .

. .5.4 )

.

)

)

. 5.4.

.5.4.) , 2, 1, 3, . , 2 . 2 . 2 5 , 1 ( - 4). 4 . .

, , , . , , .5.4.) , .5.4.), . . , .

. .

, , :

1) , , ;

2) , , ;

3) i- , .

, , , . n! , . n², .

O(n²), O order of, :

S = ;

S <> []

S, ;

, - S,

;

;

;

, .

[]. S[0..r-1], r - .

S[i] = r - i i: 0 £ i < r;

, C h , S[i] i: 0 ≤ i < C-h.

- S[i] , - .

, . . . . , . , . , , .

 

5.4.3 .

 

, . : . , , , , , . , - , , .

 

5.4.4. .

 

. . . . , , .

[].

, - , , , . , , , , .

- .

L = (X,U;P) , X ¹ (), U () - P, P(x,u,y) : u x y :

) P x, u, y, x, y Î X

u Î U;

) " uÎU $ x, y ÎX { P(x,u,y) & " x',y'Î X [ P(x',u',y') Þ (x = x' & y = y') V (x = y'&

y = y'& y = x')]}, .. - () x, y, y,x ( ..) [].

, x y, y x .

, X , - = p1,p2,..., pn - r1,r2,..., rm: X =     , .

(r,p), r Î  p Î . (p,r), pÎ r Î .

.4.5 . , , . , .

 

, , () . pi, , , , pi pi. . pi . . 4.6 .

, p1 r1 r2. , p1. p2.

, , . , .

r1  p1 (.4.7), p1 p2, . . - .

, . . , . , , *).

, , pi.

 

. [,].

 

5.4.4.1. .

 

, .

, , {p,r} {r,p}, , . , . .

. pi .

 

 

 

Type

process_ptr = ^Held;

Held = record

resource: resource_type; { }

number: integer; { }

next: process_ptr;

end;

Var p1,...,pn: process_ptr;

.

rj..

Type

resource_ptr = ^Inquiry;

Inquiry = record

process: process_type;

number: integer; { }

next: resource_ptr;

end;

Var r1,r2,...,rm: resource_ptr;

, , . .

.

, . , , . , , . , , n(n+1)/2. m , , , mn².

, : , ; pi i, , . .

, , . , , , . , .

[] , . : . , ( ) ( ). , .4.8. , - .

. :

1) p1 r1;

2) p2 r3;

3) p3 r2;

4) p2 r4;

5) p1 r5;

6) p1 r3; r3 , . : j = 1, i = 3, k = 2;

()  k = 2 ;

() 1 3;

7) p2 r2;

j = 2, i = 2, k=3;

k = 3 ; 2-

2;

 

8) p3 r5;

j = 3, i = 5,k = 1;

k = 1 3, l = 3; () , 3- 2 (n = 2);

(j = n)  k = 2; , 2 2; , 2 3, n = 3;

(j = n) ! p3 .

.

. .

 

5.4.5. .

 

. : -, , , -, . / , , , . , .

, , . : 1) , ; 2) , . .

, , . . : 1) , , , , ; 2) , .

. . , , .

. , . , . , , , .

 

5.4.6.

 

, [,,] , .

, ( ) , . ( ), . , , , (.4.7.). : , . , , .. , .

 

:

1) , , , , , ;

2) , , ;

3) - , , , , , , .

, .

. , . .

. , . , . : , , , ; .. , . . (starvation).

, . , , . . . . . . , . . . .

. .

. , . , .

, . . .

 

.

5.1. , . 1000 , . , 19000 . 1000 . :

1) 19000 ;

2) .

, .

5.2. . . ? , . ?

5.3. ? ? ?

5.4. .

5.5. , , , . , :

) ;

) ;

) , ;

) ;

) .

5.6. , . . , .

5.7. , . , , :

5.7. , . , , :

 

5.8. , , , .

5.9. ? ?

) .

) .

) .

) .

) .

) .

) .

5.10. , , : ; , , , .

5.11. . , . m n . . n . m+n. , .

 





:


: 2015-10-01; !; : 2280 |


:

:

, , .
==> ...

1702 - | 1605 -


© 2015-2024 lektsii.org - -

: 0.1 .