1-4Õ ϰÌâ ÏÂÔØ±¾ÎÄ

V(mutex1); Ñ¡¹ºÉÌÆ·;

P(mutex2); ½áÕË£¬²¢¹é»¹Àº×Ó£» V(mutex2); V(S);

end

3.¶ÀľÇÅÎÊÌ⡣ijÌõºÓÉÏÖ»ÓÐÒ»×ù¶ÀľÇÅ£¬ÒÔ±ãÐÐÈ˹ýºÓ¡£ÏÖÔÚºÓµÄÁ½±ß¶¼ÓÐÈËÒª¹ýÇÅ£¬°´ÕÕÏÂÃæµÄ¹æÔò¹ýÇÅ¡£ÎªÁ˱£Ö¤¹ýÇŰ²È«£¬ÇëÓÃP¡¢V²Ù×÷·Ö±ðʵÏÖÕýÈ·µÄ¹ÜÀí¡£

Var S, S1, S2: semaphore; rc1,rc2: integer; S, S1, S2:=1; rc1,rc2:=0; process (E-W)i: begin

rc1:=rc1+1; if rc1=1 then P(S); V(S1); ¹ýÇÅ£» P(S1); rc1:=rc1-1; if rc1=0 then V(S); V(S1);

P(S1);

end process (W-E)j: begin

rc2:=rc2+1; if rc2=1 then P(S);

P(S2);

V(S2); ¹ýÇÅ£» P(S2); rc2:=rc2-1; if rc2=0 then V(S); V(S2);

end

¹ýÇŵĹæÔòÊÇ£ºÍ¬Ò»·½ÏòµÄ¿ÉÁ¬Ðø¹ýÇÅ£¬Ä³·½ÏòÓÐÈ˹ýÇÅʱÁíÒ»·½ÏòµÄÈËÒªµÈ´ý¡£

4. ¼ðÆå×ÓÎÊÌâ¡£Éú²úΧÆåµÄ¹¤È˲»Ð¡ÐİÑÏàµÈÊýÁ¿µÄºÚÆå×ÓºÍ°×Æå»ì×°ÔÚÒ»¸öÏä×ÓÀÏÈÒªÓÃ×Ô¶¯·Ö¼ðϵͳ°ÑºÚÆå×ÓºÍ°×Æå×Ó·Ö¿ª£¬¸ÃϵͳÓÉÁ½¸ö²¢·¢Ö´ÐеĽø³Ì×é³É£¬ÏµÍ³¹¦ÄÜÈçÏ£º

(1)½ø³ÌAרÃżðºÚ×Ó£¬½ø³ÌBרÃżð°××Ó£»

(2)ÿ¸ö½ø³Ìÿ´ÎÖ»¼ðÒ»¸ö×Ó£¬µ±Ò»¸ö½ø³ÌÔÚ¼ð×Óʱ²»ÔÊÐíÁíÒ»½ø³ÌÈ¥¼ð×Ó£» (3)µ±Ò»¸ö½ø³Ì¼ðÁËÒ»¸ö×Ó£¨ºÚ»ò°×£©ÒԺ󣬱ØÈÃÁíÒ»¸ö½ø³Ì¼ðÒ»¸ö×Ó£¨ºÚ»ò°×£© ¡£

ÇëÓÃP¡¢V²Ù×÷¹ÜÀíÁ½¸ö²¢·¢½ø³Ì£¬Ê¹ÆäÄÜÕýȷʵÏÖÉÏÊö¹¦ÄÜ¡£ Var S1, S2: semaphore:=1,0; process A: begin repeat

¼ðºÚ×Ó£» V(S2);

P(S1);

until false; end process B: begin repeat

P(S2);

¼ð°××Ó£» V(S1);

until false end

5.ijËÂÃíÓÐС¡¢ÀϺÍÉÐÈô¸É£¬ÓÐһˮ¸×£¬ÓÉСºÍÉÐÌáË®Èë¸×¹©ÀϺÍÉÐÒûÓá£Ë®¸×¿ÉÒÔÈÝÄÉ10Ͱˮ£¬Ë®È¡×Ôͬһ¾®Ë®¡£Ë®¾®ÏÁÕ­£¬Ã¿´ÎÖ»ÄÜÈÝÒ»¸öͰȡˮ¡£Ë®Í°×ÜÊýΪ3¸ö¡£Ã¿´ÎÈë¡¢³öË®¸×½öһͰ£¬ÇÒ²»¿Éͬʱ½øÐС£ÊÔ¸ø³öÓйØÈ¡Ë®¡¢ÈëË®µÄËã·¨ÃèÊö¡£

Var mutex1, mutex2, empty, full, count: semaphore; mutex1:=1; mutex2:=1; empty:=10; full:=0; count:=3; process СºÍÉÐ: begin repeat

P(count); P(mutex1); ´Ó¾®ÖÐȡˮ£» V(mutex1); P(mutex2); ËÍË®ÈëË®¸×£» V(mutex2); V(count); V(full);

P(empty);

until false; end process ÀϺÍÉÐ: begin repeat

P(count); P(mutex2);

P(full);

´Ó¸×ÖÐȡˮ£» V(mutex2); V(empty); V(count);

until false; end

µÚÈýÕ ϰÌâ

Ò»¡¢Ñ¡ÔñÌâ

(1)ÔÚÈýÖÖ»ù±¾ÀàÐ͵IJÙ×÷ϵͳÖУ¬¶¼ÉèÖÃÁË C £¬ÔÚÅú´¦ÀíϵͳÖл¹Ó¦ÉèÖÃB£¬ÔÚ·ÖʱϵͳÖгýÁË C £¬Í¨³£»¹ÉèÖÃÁË D ¡£ A.°þ¶áµ÷¶È B.×÷Òµµ÷¶È C.½ø³Ìµ÷¶È D.Öм¶µ÷¶È

(2)ÎÒÃÇÈç¹ûΪÿһ¸ö×÷ÒµÖ»½¨Á¢Ò»¸ö½ø³Ì£¬ÔòΪÁËÕչ˶Ì×÷ÒµÓû§£¬Ó¦²ÉÓà B £»ÎªÕչ˽ô¼±×÷ÒµµÄÓû§£¬Ó¦²ÉÓÃE£»ÎªÄÜʵÏÖÈË»ú½»»¥×÷ÓòÉÓÃC£»¶øÄÜʹ¶Ì×÷Òµ¡¢³¤×÷Òµ¼°½»»¥×÷ÒµÓû§¶¼±È½ÏÂúÒâʱ£¬Ó¦²ÉÓÃD¡£ A.FCFSµ÷¶ÈËã·¨ C.ʱ¼äƬÂÖת·¨

B.¶Ì×÷ÒµÓÅÏȵ÷¶ÈËã·¨

D.¶à¼¶·´À¡¶ÓÁе÷¶ÈËã·¨

E.»ùÓÚÓÅÏÈȨµ÷¶ÈËã·¨

(3)²úÉúËÀËøµÄ»ù±¾Ô­ÒòÊÇB¾ºÕù×ÊÔ´ºÍA½ø³ÌÍÆ½øË³Ðò²»µ±£¬²úÉúËÀËøµÄËĸö±ØÒªÌõ¼þÊÇ»¥³âÌõ¼þCÇëÇóºÍ±£³ÖÌõ¼þ£¬²»°þ¶áÌõ¼þºÍB»·Â·µÈ´ýÌõ¼þ¡£ ¢ÙA.×ÊÔ´·ÖÅä²»µ± C.×÷Òµµ÷¶È²»µ±

B.¾ºÕù×ÊÔ´

D.×ÊÔ´µÄ¶ÀÕ¼ÐÔ

¢ÚA.½ø³ÌÍÆ½øË³Ðò²»µ± B.½ø³Ìµ÷¶È²»µ± C.ϵͳÖнø³ÌÌ«¶à ¢ÛA.ÇëÇóºÍ×èÈûÌõ¼þ

D.CPUÔËÐв»¿ì B.ÇëÇóºÍÊÍ·ÅÌõ¼þ D.ÊͷźÍ×èÈûÌõ¼þ

C.ÇëÇóºÍ±£³ÖÌõ¼þ