ÄϾ©Óʵç´óѧ²Ù×÷ϵͳ¿ÎºóϰÌâ´ð°¸.doc

Repeat ´òÓ¡NµÄÖµ£» N=0£» Until false;

ÆäÖÐNΪÕûÊý£¬³õֵΪ4¡£Èô½ø³ÌAÏÈÖ´ÐÐÁËÈý¸öÑ­»·ºó£¬½ø³ÌAºÍ½ø³ÌBÓÖ²¢·¢Ö´ÐÐÁËÒ»¸öÑ­»·£¬Ð´³ö¿ÉÄܳöÏֵĴòÓ¡Öµ¡£ÕýÈ·µÄ´òÓ¡ÖµÓ¦¸ÃÊǶàÉÙ£¿ÇëÓÃP¡¢V²Ù×÷½øÐйÜÀí£¬Ê¹½ø³ÌAºÍB²¢·¢Ö´ÐÐʱ²»»á³öÏÖÓëʱ¼äÓйصĴíÎó¡£ ´ð£º

ÒòΪN³õֵΪ4£¬Èô½ø³ÌAÏÈÖ´ÐÐÁËÈý¸öÑ­»·£¬´ËʱNµÄֵΪ19¡£µ±½ø³ÌAºÍ½ø³ÌB²¢·¢Ö´ÐÐʱ¿ÉÄÜ»áÓÐÈçÏÂÁ½ÖÖÖ´ÐдÎÐò£¬¼´½ø³ÌAÏÈÖ´ÐÐÒ»´ÎÑ­»·£¬È»ºóÔÙ½ø³ÌBÖ´ÐÐÒ»´ÎÑ­»·£¬´Ëʱ´òÓ¡µÄÊÇÕýÈ·Öµ24£¬Ö´ÐкóNÖеÄֵΪ0¡£µ«Èô½ø³ÌBÏÈÖ´ÐÐÒ»´ÎÑ­»·£¬È»ºóÔÙ½ø³ÌAÖ´ÐÐÒ»´ÎÑ­»·£¬Ôò´òÓ¡µÄÖµÊÇ19£¬Ö´ÐкóNÖеÄÖµÊÇ5¡£ÕâÊÇ´íÎóµÄ£¬¼´·¢ÉúÁËÓëʱ¼äÓйصĴíÎó¡£ÓÃP¡¢V²Ù×÷½øÐйÜÀí£¬Ê¹½ø³ÌAºÍB²¢·¢Ê±²»»á³öÏÖÓëʱ¼äÓйصĴíÎóµÄ³ÌÐòÈçÏ£º£¨SΪ»¥³âÐźÅÁ¿£¬³õֵΪ1£©£¬

½ø³ÌA Repeat P(S); N=N+5; V(S); Until false; ½ø³ÌB Repeat P(S);

´òÓ¡NµÄÖµ£» N=0£» V(S); Until false;

£±£²¡¢Ëĸö½ø³ÌP0£¬P1,P2,P3ºÍËĸöÐÅÏäM0,M1,M2,M3½ø³Ì¼ä½èÖúÏàÁÚµÄÐÅÏä´«µÝÏûÏ¢£º ÿ´Î´Ó ÖÐÈ¡³öÒ»ÌõÏûÏ¢£¬¾­¼Ó¹¤ËÍÈë ÖС£ÆäÖÐM0,M1,M2,M3·Ö±ðÉèÓÐ3,3,2,2¸ö¸ñ×Ó£¬

13

ÿ¸ö¸ñ×Ó·ÅÒ»ÌõÏûÏ¢£¬³õʼʱ£¬M0×°ÂúÁËÈýÌõÏûÏ¢£¬ÆäÓàΪ¿Õ¡£Ð´³öʹÓÃÐźÅÁ¿ÊµÏÖ½ø³Ì £¨i=0,1,2,3£©Í¬²½¼°»¥³âµÄÁ÷³Ì¡£ ´ð£º

mutex0 ~ mutex3 : ·Ö±ðÓÃÓÚ¿ØÖÆ»¥³â·ÃÎÊM0 ~ M 3£¬³õֵΪ1¡£

full0 ~ full3 : ·Ö±ðÓÃÓÚ¿ØÖÆÍ¬²½·ÃÎÊM0 ~ M3 ,ÆäÖÐfull0 ³õֵΪ3£¬full1 ~ full3 ³õֵΪ0£¬±íʾÐÅÏäÖÐÏûÏ¢ÌõÊý¡£

empty0 ~ empty3 : ·Ö±ðÓÃÓÚͬ²½¿ØÖƶÔM0 ~ M3µÄ·ÃÎÊ¡£Empty0³õֵΪ0£¬empty2~ empty3³õֵΪ2£¬empty1³õֵΪ3£¬·Ö±ðÓÃÓÚ±íʾÐÅÏäÖпոñ×Ó¸öÊý¡£

ÁíÓÃsend ( Mi , message )±íʾ½«ÏûÏ¢Ë͵½£¨Mi mod 4£©ºÅÐÅÏäÖУ»¶øÓÃreceive ( Mi£¬message )±íʾ½ÓÊÕÒÑ´æÔÚÓÚ( Mi mod 4 )ÖеÄÏûÏ¢¡£

ÔòʹÓÃÐźÅÁ¿ÊµÏÖ½ø³ÌPi (i = 0 , 1 ,2 ,3 )ͬ²½¼°»¥³âµÄÁ÷³ÌÈçÏ£º mutex0 , m utex 1, m utex2 , m utex3 : semaphore ; full0 , ful l1 , ful l2 , ful l3 : semaphore ;

empty0 , em pty1 , em pty2 , em pty3 : semaphore ; begin

mutex0 : = 1 ; mutex1 : = 1 ; mutex2 : = 1 ; mutex : = 1 ; full0 : = 3 ; full1 : = 0 ; full2 : = 0 ; full3 : = 0 ;

empty0 : = 0 ; empty1 : = 3 ; empty2 : = 2 ; empty3 : = 2 ; Parbegin P0£ºbegin repeat P ( mutex0 ) ; P ( full0 ) ;

Receive ( M0,message); V (empty0 ) ;

Processing the message until finished; P ( mutex1 ) ; P ( empty1 ) ; Send ( M1,message ) ; V ( full1 ) ;

14

V ( mutex1 ) ;

Until false ; ¡­ end ;

P1£º£û¿ÉÀàËÆÓÚP0ʵÏÖÖ®£ý; P2£º£û¿ÉÀàËÆÓÚP0ʵÏÖÖ®£ý; P3£º£û¿ÉÀàËÆÓÚP0ʵÏÖÖ®£ý; Parend ; End;

£±£³¡¢ÉèϵͳÖнöÓÐÒ»ÀàÊýÁ¿ÎªMµÄ¶ÀÕ¼ÐÍ×ÊÔ´£¬ÏµÍ³ÖÐN¸ö½ø³Ì¾ºÕù¸ÃÀà×ÊÔ´£¬ÆäÖи÷½ø³Ì¶Ô¸ÃÀà×ÊÔ´µÄ×î´óÐèÇóÁ¿ÎªW¡£µ±M¡¢N¡¢W·Ö±ðÈ¡ÏÂÁÐֵʱ£¬ÊÔÅжÏÄÄЩÇé¿ö»á·¢ÉúËÀËø£¿ÎªÊ²Ã´£¿

¢Ù M=2£¬N=2£¬W=1 ¢ÚM=3£¬N=2£¬W=2 ¢ÛM=3£¬N=2£¬W=3 ¢ÜM=5£¬N=3£¬W=2 ¢ÝM=6£¬N=3£¬W=3 ´ð£º

¢Û¿ÉÄܻᷢÉúËÀËø¡£Ö»ÒªÒ»¸ö½ø³ÌÕ¼ÓÃÁËÉÙÓÚ3¸ö¶ÀÕ¼ÐÍ×ÊÔ´¶øÁíÒ»¸ö½ø³ÌÕ¼ÓÃÁËÆäÓàµÄ¶ÀÕ¼ÐÍ×ÊÔ´£¬Á½¸ö½ø³Ì¶¼»áÏ໥´¦Óڵȴý¶Ô·½½ø³ÌÊÍ·Å×ÊÔ´µÄ״̬¡£

¢ÝÒ²¿ÉÄܻᷢÉúËÀËø¡£µ±Ã¿¸ö½ø³Ì¶¼·ÖÅäÁËÁ½¸ö×ÊԴʱ£¬3¸ö½ø³Ì¶¼»á±Ë´ËµÈ´ý¡£

£±£´¡¢¼Ù¶¨¾ßÓÐ5¸ö½ø³ÌµÄ½ø³Ì¼¯ºÏP£½£ûP0,P1,P2,P3,P4£ý,ϵͳÖÐÓÐÈýÀà×ÊÔ´A£¬BºÍC¡£ÆäÖÐAÀà×ÊÔ´ÓÐ10¸ö£¬BÀà×ÊÔ´ÓÐ5¸ö£¬CÀà×ÊÔ´ÓÐ7¸ö¡£¼Ù¶¨ÔÚijʱ¿ÌÓÐÈçÏÂ״̬£º Allocation Max Available A B C A B C A B C P0 0 1 0 7 5 3 3 3 2 P1 2 0 0 3 2 2 P2 3 0 2 9 0 2 P3 2 1 1 2 2 2 P4 0 0 2 4 3 3

ÊÔ¸ø³öNeed£¬²¢ËµÃ÷µ±Ç°ÏµÍ³ÊÇ·ñ´¦ÓÚ°²È«×´Ì¬£¬Èç¹ûÊÇ£¬¸ø³ö°²È«ÐòÁС£Èç¹û²»ÊÇ£¬ËµÃ÷ÀíÓÉ¡£

15

´ð£º

µ±Ç°ÏµÍ³´¦ÓÚ°²È«×´Ì¬£¬°²È«ÐòÁÐÈçÏÂÇó½â£º work = Available = (3 , 3 , 2 )

ѰÕÒ Needj <= work = ( 3 , 3 , 2 ) ( j = 0 , 1 , 2 , 3 , 4) j = 1 Need1 = (1 ,2 ,3 ) < = (3 , 3 , 2 ) work : = (3 , 3 , 2 ) + (2 ,0 ,0 ) = (5 , 3 , 2 )

ѰÕÒ Needj <= work = ( 5 , 3 , 2 ) ( j = 0 , 2 , 3 , 4) j = 3 Need3 = (0 ,1 ,1 ) < = (5 , 3 , 2 ) work : = (5 , 3 , 2 ) + (2 ,1 ,1 ) = (7 , 4 , 3 ) ѰÕÒ Needj <= work = (7 , 4 , 3 ) ( j = 0 , 2 , 4) j = 4 Need4 = (4 ,3 ,1 ) < = (7 , 4 , 3 ) work : = (7 , 4 , 3 ) + (0 ,0 ,2 ) = (7 , 4 , 5) ѰÕÒ Needj <= work = (7 , 4 , 5) (j = 0 , 2 ) j = 2 Need2 = (6 ,0 ,0 ) < = (7 , 4 , 5 ) work : = (7 , 4 , 5 ) + (3 ,0 ,2 ) = (10 , 4 , 7) ѰÕÒ Needj <= work = (10 , 4 , 7) ( j = 0 ) j = 0 work : = (10 , 4 , 7 ) + (0 ,1 ,0 ) = (10 , 5 , 7) ËùÒÔ°²È«ÐòÁÐΪ£¼P1£¬P3£¬P4£¬P2£¬P0£¾¡£

£±£µ¡¢ÓÐÒ»ÔÄÀÀÊÒ£¬¶ÁÕß½øÈëʱ±ØÐëÏÈÔÚÒ»ÕŵǼDZíÉϵǼǡ£¸Ã±íÖÐÿ¸ö±íÏî´ú±íÔÄÀÀÊÒÖеÄÒ»¸ö×ùλ¡£¶ÁÕßÀ뿪ʱҪÏûµôÆäµÇ¼ÇÐÅÏ¢¡£ÔÄÀÀÊÒ¹²ÓÐ50¸ö×ùλ¡£µÇ¼Ç±íÿ´Î½öÔÊÐíһλ¶ÁÕß½øÐеǼǻò×¢Ïú¡£¶ÁÕߵǼÇʱ£¬·¢ÏֵǼDZíÂú£¬ËûÔÚÔÄÀÀÊÒÍâµÈ´ý£¬Ö±ÖÁÓпÕλÔٵǼǽøÈë¡£ÊÔÓÃÀàPascalÓïÑÔºÍP¡¢V²Ù×÷£¬ÃèÊö¶ÁÕßÐÐΪ¡£ ´ð£º

Begin {initial value of S is 50}

Parbegin Begin {register } P (S) ;

Register and enter into the reading room ; End;

16

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)