Monitors A monitor is a high level synchronization construct based ...
Monitors A monitor is a high level synchronization construct based ...
Monitors A monitor is a high level synchronization construct based ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
,PSOHPHQWLQJPRQLWRUVXVLQJVHPDSKRUHV<br />
:HQHHGWZRVHPDSKRUHVmutex DQGnext:<br />
• mutexLVXVHGIRUPXWXDOH[FOXVLRQ<br />
• nextLVXVHGVXVSHQGSURFHVVHVZDLWLQJWRHQWHU<br />
$QLQWHJHU next-countLVXVHGWRFRXQWWKHQXPEHURI<br />
SURFHVVHVVXVSHQGHGRQnext<br />
$QH[WHUQDOSURFHGXUH FFDQEHUHSODFHGE\<br />
wait(mutex);<br />
…<br />
body of F;<br />
…<br />
if next-count > 0<br />
then signal(next)<br />
else signal(mutex);<br />
&RQGLWLRQVFDQEHLPSOHPHQWHGXVLQJDVHPDSKRUHx-semDQGDQ<br />
LQWHJHUYDULDEOHx-count<br />
7KHRSHUDWLRQ[ZDLWFDQEHLPSOHPHQWHGDV<br />
x-count := x-count + 1<br />
if next-count > 0<br />
then signal(next);<br />
else signal(mutex);<br />
wait(x-sem);<br />
x-count := x-count – 1;