, . . , , , , , .
, , . , . , , , , - .
count . , , N, , N count , . count N, ; count.
. , count . : , count, , . , count, , 1. , 0 , wakeup.
, . , - count, , 0, . . .
, , , , . , . . , , . , , , . .
.
1965 , . , , ( ) , .
|
|
, down up ( sleep wakeup). down . , down ( ) . , down , . , . ,
. .
up . , down, (, ) down. ,
up, , , 0, . . up, wakeup .
.
, (mutex, mutual exclusion ). , . , , .
, : . , , 0 , . . ( ) , mutex_lock. ( ), .
, , , , , , mutex_unlock. , .
.
, 1974 () [155] (Brinch Hansen) [43] , . , . , , . , , , .
|
|
: . , , , . , . , , . , . , , . , , , . , , ,
.
, . , .
, , ?
, wait signal. , (, , ), wait - , , full. .
, , , signal , . , , signal. . : , signal, . , signal . , .
signal , , . , , : , signal, , .
. , . , signal , , . , wait , signal. . , . ,
.
. : send receive, , ( ). , :
send(destination, &message);
receive(source, &message);
, ( , ). , .