²Ù×÷ϵͳ×÷Òµ ÏÂÔØ±¾ÎÄ

semaphore Wmutex,Rmutex=1;int Rcount=0;semaphore mutex=1;void reader( ){while (true) { P(mutex); P(Rmutex); if (Rcount==0) P(Wmutex); Rcount=Rcount+1; V(Rmutex); V(mutex); ...; read; ...; P(Rmutex); Rcount=Rcount-1; if(Rcount==0) V(Wmutex); V(Rmutex); }}void writer( ) {while (true) { P(mutex); P(Wmutex); ...; write; ...; V(Wmutex); V(mutex); }}

13

9.дһ¸öÓÃÐźÅÁ¿½â¾öÕÜѧ¼Ò½ø²ÍÎÊÌâ²»²úÉúËÀËøµÄËã·¨¡£ ´ð£ºÊéÉÏËùÌṩµÄ·½·¨¿ÉÄܵ¼ÖÂÕÜѧ¼Ò¶¼Ö»ÄÃÒ»Ö»¿ê×Ó¶øµ¼ÖÂËÀËøÇÒÎÞ·¨»½ÐÑËùÓÐ×èÈûµÄ½ø³Ì¡£¿¼ÂÇÒýÈëÒ»¸ö»¥³âÐźÅÁ¿mutexʹÕÜѧ¼ÒÒ»¸ö¸öµÄ½ø²ÍÕâÑù¾Í²»»áÒýÆðËÀËøÏÖÏó¡£ ÐÂÉè¼ÆµÄ½ø³ÌÈçÏ£º

semaphore chopstick[5]={1,1,1,1,1};semaphore mutex=1;void philosopher (int i){while (true) { P(mutex); P(chopstick[i]); P(chopsick[(i+1)%5]); ...; eat; ...; V(mutex); V(chopstick[i]); V(chopstick[(i+1)%5]); ...; think; ...; }}10£®Ò»¸öÎļþ¿ÉÓÐÈô¸É¸ö²»Í¬½ø³ÌËù¹²Ïí£¬Ã¿¸ö½ø³Ì¾ßÓÐΨһµÄ±àÂë¡£¼Ù¶¨Îļþ¿ÉÓÉÂú×ãÏÂÁÐÏÞÖÆµÄÈô¸É¸ö½ø³Ìͬʱ·ÃÎÊ£¬²¢·¢·ÃÎʸÃÎļþµÄÄÇЩ½ø³ÌµÄ±àºÅµÄ×ܺͲ»µÃ´óÓÚn£¬Éè¼ÆÒ»¸öЭµ÷¶Ô¸ÃÎļþ·ÃÎʵĹ̡ܳ£ ´ð£º

11£®Óùܳ̽â¾ö¶ÁÕß¡ªÐ´ÕßÎÊÌ⣬²¢²ÉÓù«Æ½Ô­Ôò¡£

14

µÚËÄÕÂ

˼¿¼ÓëÁ·Ï°Ìâ

1.ij½ø³Ì±»»½ÐѺóÁ¢¼´Í¶ÈëÔËÐУ¬ÄÜ˵Ã÷¸Ãϵͳ²ÉÓõÄÊǿɰþ¶áµ÷¶ÈËã·¨Âð£¿

´ð£º²»ÄÜ˵Ã÷¸Ãϵͳ²ÉÓõÄÊǿɰþ¶áµ÷¶ÈËã·¨¡£µ±½ø³Ì±»»½ÐÑʱ£¬´Ëʱ¾ÍÐ÷¶ÓÁÐûÓÐÒ»¸ö½ø³Ì£¬Ôòµ÷¶È³ÌÐò½«ËüͶÈëÔËÐС£

2.ÔÚÕÜѧ¼Ò½ø²ÍÎÊÌâÖУ¬Èç¹û½«ÏÈÄÃÆð×ó±ß¿ê×ÓµÄÕÜѧ¼Ò³ÆÎª×óƲ×Ó£¬½«ÏÈÄÃÆðÓұ߿ê×ÓµÄÕÜѧ¼Ò³ÆÎªÓÒÆ²×Ó¡£Çë˵Ã÷ÔÚͬʱ´æÔÚ×ó¡¢ÓÒÆ²×ÓµÄÇé¿öÏ£¬ÈκεľÍ×ù°²ÅŶ¼²»ÄܲúÉúËÀËø¡£

´ð£º²úÉúËÀËø£¬ÓÐÒÔÏÂËĸö±ØÒªÌõ¼þ£º»¥³â¡¢ÇëÇóÓë±£³Ö¡¢²»¿É°þ¶á¡¢»·Â·¡£

´ËʱÕÜѧ¼Ò½ø²ÍµÄÎÊÌ⣬Âú×㻥³â¡¢ÇëÇóÓë±£³ÖºÍ²»¿É°þ¶áÕâÈý¸öÌõ¼þ¡£µ«ÊÇÒªÂú×㻷·Ìõ¼þ£¬ÕÜѧ¼Ò¾ÍÐèͬʱÄÃÆð×ó±ß»òÓұߵĿê×Ó£¬¼´ÕÜѧ¼ÒҪôÊÇ×óƲ×Ó£¬ÒªÃ´ÊÇÓÒÆ²×Ó¡£¿ÉÊÇ´Ëʱͬʱ´æÔÚ×ó¡¢ÓÒÆ²×ÓÔò²»Âú×㻷·Ìõ¼þ£¬ÈκξÍ×ù°²ÅŶ¼²»²úÉúËÀËø¡£

3.ϵͳÖÐÓÐ5¸ö×ÊÔ´±»4¸ö½ø³ÌËù¹²Ïí£¬Èç¹ûÿ¸ö½ø³Ì×î¶àÐèÒª2¸öÕâÖÖ×ÊÔ´£¬ÊÔÎÊϵͳÊÇ·ñ»á²úÉúËÀËø¡£

´ð£ºµ±×ÊÔ´ÊýСÓÚÇëÇó¸ÄÖÖ×ÊÔ´µÄ½ø³ÌÊý£¬¾ÍÓпÉÄܲúÉúËÀËø¡£ÏÖÔÚÓÉÌâ¿É֪ÿ¸ö½ø³Ì×î¶àÐèÒª2¸ö×ÊÔ´£¬ÀýÈç´Ëʱÿ¸ö½ø³Ì¶¼ÏÈʹÓÃÒ»¸ö×ÊÔ´£¬ÔòֻʣÏÂÒ»¸ö×ÊÔ´¿É¹©Ò»¸ö½ø³ÌʹÓã¬Õâʱһ¸ö½ø³ÌÉêÇë×ÊÔ´£¬ÆäËû½ø³Ì×èÈû¡£Õâ¸ö½ø³ÌÔËÐÐÍêÒÔºóÊÍ·Å×ÊÔ´£¬´Ëʱ»½ÐÑÆäËû×èÈû½ø³ÌÔËÐУ¬Ôò²»»áÔì³É½ø³Ì×èÈû¶øÇÒ»¹ÎÞ·¨±»»½ÐÑ¡£ÏµÍ³²»²úÉúËÀËø¡£

4.¼ÆËã»úϵͳÓÐ8̨´Å´ø»ú£¬ÓÉN¸ö½ø³Ì¾ºÕùʹÓã¬Ã¿¸ö½ø³Ì×î¶àÐèÒª3̨¡£ÎÊ£ºµ±NΪ¶àÉÙʱ£¬ÏµÍ³Ã»ÓÐËÀËøµÄΣÏÕ£¿

´ð£ºµ±N=1ʱ£¬Ò»¸ö½ø³Ì×î¶àÐèÒª3̨´Å´ø»ú£¬´Ëʱ²»»á²úÉúËÀËøÏÖÏó¡£µ±N=2ʱ£¬Á½¸ö½ø³ÌÉêÇë6̨£¬Ò²×㹻ʹÓã¬Ò²²»³öÏÖËÀËøÏÖÏó¡£µ±N=3ʱ£¬´ËʱÓнø³Ì²»ÄÜÍêÈ«µÃµ½3̨£¬¿ÉÊÇÆäËû½ø³ÌÔËÐÐÍêÒÔºóÊÍ·Å´Å´ø»ú£¬Ôò´Ëʱ×èÈûµÄ½ø³Ì¿ÉÒÔÔËÐУ¬Ò²²»»á³öÏÖËÀËøµÄΣÏÕ¡£µ±N=4ʱ£¬¿ÉÄܳöÏÖÿ¸ö½ø³Ì¶¼ÇÀÕ¼µ½2̨µÄÇé¿ö£¬´Ëʱÿ¸ö½ø³Ì¶¼²»ÄÜÔËÐÐÏÂÈ¥£¬¾Í³öÏÖÁËËÀËø¡£ÓÚÊÇ¿ÉÒԵóö½áÂÛ£ºµ±N<4ʱ£¬ÏµÍ³²»»á³öÏÖËÀËøµÄΣÏÕ¡£

5£®¼ÙÉèϵͳÓÐ5¸ö½ø³Ì£¬ËüÃǵĵ½´ïʱ¼äºÍ·þÎñʱ¼äÈç±í4¨C8Ëùʾ¡£Ð½ø³Ì£¨Ã»ÓÐÔËÐйý£©ÓëÀϽø³Ì£¨ÔËÐйýµÄ½ø³Ì£©µÄÌõ¼þÏàͬʱ£¬¼Ù¶¨ÏµÍ³Ñ¡Ð½ø³ÌÔËÐС£

±í4-8 ½ø³ÌÇé¿ö

½ø³ÌÃû A B C D E µ½´ïʱ¼ä 0 2 4 6 8 ·þÎñʱ¼ä 3 6 4 5 2 Èô°´ÏÈÀ´ÏÈ·þÎñ£¨FCFS£©£¬Ê±¼äƬÂÖת·¨£¨Ê±¼äƬq=1£©£¬¶Ì½ø³ÌÓÅÏÈ£¨SPN£©¡¢×î¶ÌÊ£Óàʱ¼äÓÅÏÈ£¨SRT£¬Ê±¼äƬq=1£©¡¢ÏìÓ¦±È¸ßÕßÓÅÏÈ£¨HRRN£©¼°¶à¼¶·´À¡¶ÓÁУ¨MFQ£¬µÚÒ»¶ÓÁеÄʱ¼äƬΪ1£¬µÚ i (i > 1) ¸ö¶ÓÁеÄʱ¼äƬq=2(i-1)Ëã·¨½øÐÐCPUµ÷¶È£¬Çë¸ø³ö¸÷¸ö½ø³ÌµÄÍê³Éʱ¼ä¡¢ÖÜתʱ¼ä¡¢´øÈ¨ÖÜתʱ¼ä£¬¼°ËùÓнø³ÌµÄƽ¾ùÖÜתʱ¼äºÍƽ¾ù´øÈ¨ÖÜתʱ¼ä¡£

ƽ¾ùÖÜתʱ¼äΪ

15

1nT=?Ti

ni?1ÆäÖÐTiÊÇÿ¸ö×÷ÒµµÄÖÜתʱ¼ä£¬nÊÇ×÷ÒµµÄ¸öÊý¡£

ƽ¾ù´øÈ¨ÖÜתʱ¼äΪ

1nWi??Wi

ni?1ÆäÖÐWiΪ´øÈ¨ÖÜתʱ¼ä£¬nÊÇ×÷ÒµµÄ¸öÊý¡£

ÒÔÏÂÊÇÁùÖÖµ÷¶ÈËã·¨ÖÜתʱ¼ä¡¢Æ½¾ùÖÜתʱ¼ä¡¢´øÈ¨ÖÜתʱ¼äºÍƽ¾ù´øÈ¨ÖÜתʱ¼äµÄ±í¸ñ ½ø³ÌÃû µ½´ïʱ¼ä ·þÎñʱ¼ä Íê³Éʱ¼ä ÏÈÀ´ÏÈ ·þÎñ ÖÜתʱ¼ä ´øÈ¨ÖÜתʱ¼ä Íê³Éʱ¼ä ʱ¼äƬ ÂÖת·¨ q=1 ÖÜתʱ¼ä ´øÈ¨ÖÜתʱ¼ä Íê³Éʱ¼ä ¶Ì½ø³Ì ÓÅÏÈ ÖÜתʱ¼ä ´øÈ¨ÖÜתʱ¼ä Íê³Éʱ¼ä ×î¶ÌÊ£ Óàʱ¼ä ÓÅÏÈ ÖÜתʱ¼ä ´øÈ¨ÖÜתʱ¼ä 3 3 3 1 4 4 1.3 3 3 1 3 3 1 6 9 7 1.17 18 16 2.67 9 7 1.17 15 13 2.17 4 13 9 2.25 17 13 3.25 15 11 2.75 8 4 1 5 18 12 2.4 20 14 2.8 20 14 2.8 20 14 2.8 2 20 12 6 15 7 3.5 11 3 1.5 10 2 1 8.6 2.56 10.8 2.71 7.6 1.84 7.2 1.59 A 0 B 2 C 4 D 6 E 8 ƽ¾ù 16