££define true; # define false; Int flag[2]; flag[1]=flag[2]=false; enter-crtsec(i) int i; {
While(flag[1-i]) flag[i]=true; }
leave-crtsec(i) Int i; {
flag[i]=false; }
process I; ¡ Enter-crtsec(i); In critical section;
Leave-crtsec(i);
8. ÉèϵͳÓÐÈýÖÖÀàÐ͵Ä×ÊÔ´£¬ÊýÁ¿Îª (4£¬2 £¬2)£¬ÏµÍ³ÖÐÓнø³Ì A£¬B £¬C°´ÈçÏÂ˳ÐòÇëÇó×ÊÔ´£º
½ø³ÌAÉêÇë (3£¬2 £¬1)
½ø³ÌBÉêÇë (1£¬0 £¬1) ½ø³ÌAÉêÇë (0£¬1 £¬0) ½ø³ÌCÉêÇë (2£¬0 £¬0)
ÇëÄã¸ø³öÒ»ºÍ·ÀÖ¹ËÀËøµÄ×ÊÔ´°þ¶á·ÖÅä²ßÂÔ£¬Íê³ÉÉÏÊöÇëÇóÐòÁУ¬²¢Áгö×ÊÔ´·ÖÅä¹ý³Ì£¬Ö¸Ã÷ÄÄЩ½ø³ÌÐèÒªµÈ´ý£¬ÄÄЩ×ÊÔ´±»°þ¶á¡£
9. ½ø³Ì A1£¬A2 £¬?£¬An ͨ¹ý K ¸ö»º³åÇøÏò½ø³Ì B1£¬ B2£¬?£¬Bm ²»¶ÏµØ·¢ËÍÏûÏ¢¡£·¢ËͺͽÓÊÕ¹¤×÷×ñÑÈçϹæÔò£º
(1) ÿ¸ö·¢Ëͽø³ÌÒ»´Î·¢ËÍÒ»¸öÏûÏ¢£¬Ð´È뻺³åÇø£¬»º³åÇø´óСÓëÏûÏ¢³¤¶ÈÒ»Ö£» (2) ¶Ôÿ¸öÏûÏ¢£¬ B1£¬B2 £¬?£¬Bm ¶¼Ðè½ÓÊÕÒ»´Î£¬¶ÁÈë¸÷×ÔµÄÊý¾ÝÇøÄÚ£» (3) K ¸ö»º³åÇø¶¼Âúʱ£¬·¢Ëͽø³ÌµÈ´ý£¬Ã»ÓпɶÁµÄÏûϢʱ£¬½ÓÊÕ½ø³ÌµÈ´ý¡£ ÊÔÓà wait ºÍ signal ÔÓï²Ù×÷×éÖ¯ÕýÈ·µÄ·¢ËͺͽÓÊÕ²Ù×÷¡£