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.ÇëÇóºÍ±£³ÖÌõ¼þ