Ó°Ïì : ʹ³ÌÐòµÄ²¢·¢Ö´ÐеÃÒÔʵÐС£
6£®ÊÔ´Ó¶¯Ì¬ÐÔ£¬²¢·¢ÐԺͶÀÁ¢ÐÔÉϱȽϽø³ÌºÍ³ÌÐò
?
´ð£º (1) ¶¯Ì¬ÐÔÊǽø³Ì×î»ù±¾µÄÌØÐÔ£¬±íÏÖΪÓÉ´´½¨¶ø²úÉú£¬Óɵ÷¶È¶øÖ´ÐУ¬ÒòµÃ²»µ½×ÊÔ´ ¶øÔÝÍ£Ö´ÐУ¬Óɳ·Ïú¶øÏûÍö¡£½ø³ÌÓÐÒ»¶¨µÄÉúÃüÆÚ£¬¶ø³ÌÐòÖ»ÊÇÒ»×éÓÐÐòµÄÖ¸ÁºÏ£¬ ÊǾ²
̬ʵÌå¡£
(2) ²¢·¢ÐÔÊǽø³ÌµÄÖØÒªÌØÕ÷£¬Í¬Ê±Ò²ÊÇ
OS µÄÖØÒªÌØÕ÷¡£ÒýÈë½ø³ÌµÄÄ¿µÄÕýÊÇΪÁËʹ
Æä³ÌÐòÄÜºÍÆäËü½ø³ÌµÄ³ÌÐò²¢·¢Ö´ÐУ¬¶ø³ÌÐòÊDz»Äܲ¢·¢Ö´Ðеġ£
(3) ¶ÀÁ¢ÐÔÊÇÖ¸½ø³ÌʵÌåÊÇÒ»¸öÄܶÀÁ¢ÔËÐеĻù±¾µ¥Î»£¬Ò²ÊÇϵͳÖжÀÁ¢»ñµÃ×ÊÔ´ºÍ¶ÀÁ¢µ÷¶ÈµÄ»ù±¾µ¥Î»¡£¶ÔÓÚ佨Á¢Èκνø³ÌµÄ³ÌÐò£¬²»ÄÜ×÷Ϊ¶ÀÁ¢µ¥Î»²Î¼ÓÔËÐС£ 7£®ÊÔ˵Ã÷ PCB µÄ×÷Óã¬ÎªÊ²Ã´Ëµ PCB Êǽø³Ì´æÔÚµÄΩһ±êÖ¾£¿ ´ð£º PCB Êǽø³ÌʵÌåµÄÒ»²¿·Ö£¬ÊDzÙ×÷ϵͳÖÐ×îÖØÒªµÄ¼Ç¼ÐÍ Êý¾Ý½á¹¹ ¡£×÷ÓÃÊÇʹһ¸öÔÚ¶àµÀ³ÌÐò»·¾³Ï²»ÄܶÀÁ¢ÔËÐеijÌÐò£¬
³ÉΪһ¸öÄܶÀÁ¢ÔËÐеĻù±¾µ¥Î»£¬
³ÉΪÄÜÓëÆäËü½ø³Ì
²¢·¢Ö´ÐеĽø³Ì¡£ OS ÊǸù¾Ý PCB ¶Ô²¢·¢Ö´ÐеĽø³Ì½øÐпØÖƺ͹ÜÀíµÄ¡£ 8£®ÊÔ˵Ã÷½ø³ÌÔÚÈý¸ö»ù±¾×´Ì¬Ö®¼äת»»µÄµäÐÍÔÒò¡£ ´ð£º £¨ 1£©¾ÍÐ÷״̬ ¡ú Ö´ÐÐ״̬£º½ø³Ì·ÖÅäµ½ CPU ×ÊÔ´
£¨2 £©Ö´ÐÐ״̬ ¡ú ¾ÍÐ÷״̬£ºÊ±¼äƬÓÃÍê £¨3 £©Ö´ÐÐ״̬ ¡ú ×èÈû״̬£º I/O ÇëÇó £¨4 £©×èÈû״̬ ¡ú ¾ÍÐ÷״̬£º I/O Íê³É 9£®ÎªÊ²Ã´ÒªÒýÈë¹ÒÆð״̬£¿¸Ã״̬ÓÐÄÄЩÐÔÖÊ£¿ ´ð£ºÒýÈë¹ÒÆð״̬´¦ÓÚÎåÖÖ²»Í¬µÄÐèÒª
: ÖÕ¶ËÓû§ÐèÒª£¬¸¸½ø³ÌÐèÒª£¬²Ù×÷ϵͳÐèÒª£¬¶Ô»»
±±¾©Ê¯ÓÍ»¯¹¤Ñ§ÔºÐÅÏ¢¹¤³ÌѧԺ¼ÆËã»úϵ 5/48 ¡¶¼ÆËã»ú²Ù×÷ϵͳ¡·Ï°Ìâ²Î¿¼´ð°¸ÓàÓÐÃ÷Óë¼Æ
07 ºÍ¼Æ G09 µÄͬѧÃDZàÖø 5/48
ÐèÒªºÍ¸ººÉµ÷½ÚÐèÒª¡£´¦ÓÚ¹ÒÆð״̬µÄ½ø³Ì²»ÄܽÓÊÕ´¦Àí»úµ÷¶È¡£ 10 £®ÔÚ½øÐнø³ÌÇл»Ê±£¬ËùÒª±£´æµÄ´¦Àí»ú״̬ÐÅÏ¢ÓÐÄÄЩ£¿ ´ð£º½øÐнø³ÌÇл»Ê±£¬ËùÒª±£´æµÄ´¦Àí»ú״̬ÐÅÏ¢ÓУº £¨1 £©½ø³Ìµ±Ç°ÔÝ´æÐÅÏ¢ £¨2 £©ÏÂÒ»Ö¸ÁîµØÖ·ÐÅÏ¢ £¨3 £©½ø³Ì״̬ÐÅÏ¢
£¨4 £©¹ý³ÌºÍϵͳµ÷ÓòÎÊý¼°µ÷ÓõØÖ·ÐÅÏ¢¡£ 11 £®ÊÔ˵Ã÷ÒýÆð½ø³Ì´´½¨µÄÖ÷Ҫʼþ¡£
´ð£ºÒýÆð½ø³Ì´´½¨µÄÖ÷ҪʼþÓУºÓû§µÇ¼¡¢×÷Òµµ÷¶È¡¢Ìṩ·þÎñ¡¢Ó¦ÓÃÇëÇó¡£ 12 £®ÊÔ˵Ã÷ÒýÆð½ø³Ì±»³·ÏúµÄÖ÷Ҫʼþ¡£
´ð£ºÒýÆð½ø³Ì±»³·ÏúµÄÖ÷ҪʼþÓУºÕý³£½áÊø¡¢Òì³£½áÊø£¨Ô½½ç´íÎó¡¢±£»¤´í¡¢·Ç·¨Ö¸Áî¡¢ ÌØÈ¨Ö¸Áî´í¡¢ÔËÐг¬Ê±¡¢µÈ´ý³¬Ê±¡¢ËãÊõÔËËã´í¡¢ I/O ¹ÊÕÏ£©¡¢Íâ½ç¸ÉÔ¤£¨²Ù×÷Ô±»ò²Ù×÷ϵ
ͳ¸ÉÔ¤¡¢¸¸½ø³ÌÇëÇ󡢸¸½ø³ÌÖÕÖ¹£©¡£
13 £®ÔÚ´´½¨Ò»¸ö½ø³ÌʱËùÒªÍê³ÉµÄÖ÷Òª¹¤×÷ÊÇʲô£¿´ð£º
£¨1 £© OS ·¢ÏÖÇëÇó´´½¨Ð½ø³Ìʼþºó£¬µ÷Óýø³Ì´´½¨ÔÓï £¨2 £©ÉêÇë¿Õ°× PCB £» £¨3 £©ÎªÐ½ø³Ì·ÖÅä×ÊÔ´£» £¨4 £©³õʼ»¯½ø³Ì¿ØÖƿ飻 £¨5 £©½«Ð½ø³Ì²åÈë¾ÍÐ÷¶ÓÁÐ .
14 £®ÔÚ³·ÏúÒ»¸ö½ø³ÌʱËùÒªÍê³ÉµÄÖ÷Òª¹¤×÷ÊÇʲô£¿´ð£º
£¨1 £©¸ù¾Ý±»ÖÕÖ¹½ø³Ì±êʶ·û£¬´Ó
PCB ¼¯ÖмìË÷³ö½ø³Ì PCB £¬¶Á³ö¸Ã½ø³Ì״̬¡£
Creat() £»
£¨2 £©Èô±»ÖÕÖ¹½ø³Ì´¦ÓÚÖ´ÐÐ״̬£¬Á¢¼´ÖÕÖ¹¸Ã½ø³ÌµÄÖ´ÐУ¬Öõ÷¶È±êÖ¾Õæ£¬Ö¸Ê¾¸Ã½ø³Ì±»ÖÕÖ¹ºóÖØÐµ÷¶È¡£
£¨3 £©Èô¸Ã½ø³Ì»¹ÓÐ×Ó½ø³Ì£¬Ó¦½«ËùÓÐ×ÓËï½ø³ÌÖÕÖ¹£¬ÒÔ·ÀËüÃdzÉΪ²»¿É¿Ø½ø³Ì¡£ £¨4 £©½«±»ÖÕÖ¹½ø³ÌÓµÓеÄÈ«²¿×ÊÔ´£¬¹é»¹¸ø¸¸½ø³Ì£¬»ò¹é»¹¸øÏµÍ³¡£
£¨5 £©½«±»ÖÕÖ¹½ø³Ì PCB ´ÓËùÔÚ¶ÓÁлòÁбíÖÐÒÆ³ö£¬µÈ´ýÆäËü³ÌÐòËѼ¯ÐÅÏ¢¡£ 15 £®ÊÔ˵Ã÷ÒýÆð½ø³Ì×èÈû»ò±»»½ÐѵÄÖ÷ҪʼþÊÇʲô£¿
´ð£º a. ÇëÇóϵͳ·þÎñ£» b. Æô¶¯Ä³ÖÖ²Ù×÷£» c. ÐÂÊý¾ÝÉÐδµ½´ï£» d. ÎÞй¤×÷¿É×ö . 16 £®½ø³ÌÔÚÔËÐÐʱ´æÔÚÄÄÁ½ÖÖÐÎʽµÄÖÆÔ¼£¿²¢¾ÙÀý˵Ã÷Ö®¡£ ´ð£º
£¨1 £©¼ä½ÓÏà»¥ÖÆÔ¼¹ØÏµ¡£¾ÙÀý£ºÓÐÁ½½ø³Ì µÄ
һ̨´òÓ¡»ú·ÖÅ䏸Á˽ø³Ì Ð÷¡£
£¨2 £©Ö±½ÓÏà»¥ÖÆÔ¼¹ØÏµ¡£¾ÙÀý£ºÓÐÊäÈë½ø³Ì ʱ£¬
¼ÆËã½ø³ÌÒò²»ÄÜ»ñµÃËùÐèÊý¾Ý¶ø×èÈû£¬µ±½ø³Ì Ö®£¬µ±»º³åÇøÒÑÂúʱ£¬½ø³Ì »½ÐÑ A ¡£
17 £®ÎªÊ²Ã´½ø³ÌÔÚ½øÈëÁÙ½çÇøÖ®Ç°Ó¦ÏÈÖ´ÐÐ Çø¡±´úÂ룿
´ð£ºÎªÁËʵÏÖ¶à¸ö½ø³Ì¶ÔÁÙ½ç×ÊÔ´µÄ»¥³â·ÃÎÊ£¬
±ØÐëÔÚÁÙ½çÇøÇ°ÃæÔö¼ÓÒ»¶ÎÓÃÓÚ¼ì²éÓû·ÃÎÊ¡°½øÈëÇø ¡±´úÂ룿¶øÔÚÍ˳öǰÓÖÒªÖ´ÐÐ
¡°Í˳ö
A °ÑÊý¾ÝÊäÈ뻺³åÇøºó£¬±ã»½Ðѽø³Ì
B £»·´
A ͨ¹ýµ¥»º³åÏò½ø³Ì B ÌṩÊý¾Ý¡£µ±»º³å¿Õ
B£¬Ôò½ø³Ì A Ö»ÄÜ×èÈû£» Ò»µ© B ÊÍ·Å´òÓ¡»ú£¬ A ²ÅÓÉ×èÈû¸ÄΪ¾Í
A ºÍ B£¬Èç¹û A Ìá³ö´òÓ¡ÇëÇó£¬ÏµÍ³ÒѰÑΨһ
A ÒòûÓлº³åÇø·ÅÊý¾Ý¶ø×èÈû£¬½ø³Ì B ½«»º³åÇøÊý¾ÝÈ¡×ߺó±ã
µÄÁÙ½ç×ÊÔ´ÊÇ·ñÕý±»·ÃÎʵĴúÂ룬Èç¹ûδ±»·ÃÎÊ£¬¸Ã½ø³Ì±ã¿É½øÈëÁÙ½çÇø¶Ô×ÊÔ´½øÐзÃÎÊ£¬ ²¢ÉèÖÃÕý±»·ÃÎʱêÖ¾£¬Èç¹ûÕý±»·ÃÎÊ£¬Ôò±¾½ø³Ì²»ÄܽøÈëÁÙ½çÇø£¬ÊµÏÖÕâÒ»¹¦ÄܵĴúÂëΪ ½øÈëÇø \´úÂ룻ÔÚÍ˳öÁÙ½çÇøºó£¬±ØÐëÖ´ÐÐ ½ø³ÌÄÜÔÙ·ÃÎÊ´ËÁÙ½ç×ÊÔ´¡£
\Í˳öÇø \´úÂ룬ÓÃÓÚ»Ö¸´Î´±»·ÃÎʱêÖ¾£¬Ê¹ÆäËü
\
18. ͬ²½»ú¹¹Ó¦×ñÑÄÄЩ»ù±¾×¼Ôò£¿ÎªÊ²Ã´£¿
´ð£ºÍ¬²½»ú¹¹Ó¦×ñѵĻù±¾×¼ÔòÊÇ£º¿ÕÏÐÈýø¡¢Ã¦ÔòµÈ´ý¡¢ÓÐÏ޵ȴý¡¢ÈÃȨµÈ´ýÔÒò£ºÎªÊµÏÖ½ø³Ì»¥³â½øÈë×Ô¼ºµÄÁÙ½çÇø¡£ 19. ÊÔ´ÓÎïÀí¸ÅÄîÉÏ˵Ã÷¼Ç¼ÐÍÐźÅÁ¿
wait ºÍ signal ¡£
wait ²Ù
´ð£º wait(S) £ºµ± S.value>0 ʱ£¬±íʾĿǰϵͳÖÐÕâÀà×ÊÔ´»¹ÓпÉÓõġ£Ö´ÐÐÒ»´Î
×÷£¬Òâζ׎ø³ÌÇëÇóÒ»¸öµ¥Î»µÄ¸ÃÀà×ÊÔ´£¬ ʹϵͳÖпɹ©·ÖÅäµÄ¸ÃÀà×ÊÔ´¼õÉÙÒ»¸ö£¬ Òò´ËÃèÊöΪ S.value:=S.value-1 £»µ± S.value<0 ʱ£¬±íʾ¸ÃÀà×ÊÔ´ÒÑ·ÖÅäÍê±Ï£¬½ø³ÌÓ¦µ÷Óà block ÔÓï×ÔÎÒ×èÈû£¬·ÅÆú´¦Àí»ú£¬²¢²åÈëµ½ÐźÅÁ¿Á´±í
S.L ÖС£
signal(S) £ºÖ´ÐÐÒ»´Î signal ²Ù×÷£¬Òâζ×ÅÊÍ·ÅÒ»¸öµ¥Î»µÄ¿ÉÓÃ×ÊÔ´£¬Ê¹ÏµÍ³Öпɹ©·ÖÅä µÄ¸ÃÀà×ÊÔ´ÊýÔö¼ÓÒ»¸ö£¬¹ÊÖ´ÐÐ
S.value:=S.value+1
²Ù×÷¡£Èô¼Ó 1 ºó S. value ¡Ü0£¬Ôò±í
wakeup ÔÓ½« S.L
ʾÔÚ¸ÃÐźÅÁ¿Á´±íÖУ¬ÈÔÓеȴý¸Ã×ÊÔ´µÄ½ø³Ì±»×èÈû£¬Òò´ËÓ¦µ÷Óà Á´±íÖеĵÚÒ»¸öµÈ´ý½ø³Ì»½ÐÑ¡£
20 £®ÄãÈÏΪÕûÐÍÐźÅÁ¿»úÖÆÊÇ·ñÍêÈ«×ñÑÁËͬ²½»ú¹¹µÄËÄÌõ×¼Ôò£¿ ´ð£ºÕûÐÍÐźÅÁ¿»úÖÆ²»ÍêÈ«×ñÑͬ²½»úÖÆµÄËÄÌõ×¼Ôò£¬Ëü²»Âú×ã
¡°ÈÃȨµÈ´ý ¡±×¼Ôò¡£
21 £®ÈçºÎÀûÓÃÐźÅÁ¿»úÖÆÀ´ÊµÏÖ¶à¸ö½ø³Ì¶ÔÁÙ½ç×ÊÔ´µÄ»¥³â·ÃÎÊ£¿²¢¾ÙÀý˵Ã÷Ö®¡£ ´ð£ºÎªÊ¹¶à¸ö½ø³Ì»¥³â·ÃÎÊijÁÙ½ç×ÊÔ´£¬Ö»ÐèΪ¸Ã×ÊÔ´ÉèÖÃÒ»»¥³âÐźÅÁ¿ ³õֵΪ 1 £¬È»ºó½«¸÷½ø³Ì·ÃÎʸÃ×ÊÔ´µÄÁÙ½çÇø
mutex £¬²¢ÉèÆä
CS Öà ÓÚ wait(mutex) ºÍ signal(mutex) ²Ù ×÷
mutex Ö´ÐÐ
Ö®¼ä¼´¿É¡£ÕâÑù£¬Ã¿¸öÓû·ÃÎʸÃÁÙ½ç×ÊÔ´µÄ½ø³ÌÔÚ½øÈëÁÙ½çÇøÖ®Ç°£¬¶¼ÒªÏȶÔ
wait ²Ù×÷£¬Èô¸Ã×ÊÔ´´Ë¿Ìδ±»·ÃÎÊ£¬ ±¾´Î wait ²Ù×÷±ØÈ»³É¹¦£¬ ½ø³Ì±ã¿É½øÈë×Ô¼ºµÄÁÙ½çÇø£¬ ÕâʱÈôÔÙÓÐÆäËû½ø³ÌÒ²Óû½øÈë×Ô¼ºµÄÁÙ½çÇø£¬´ËʱÓÉÓÚ¶Ô Òò¶ø¸Ã½ø³Ì×èÈû£¬ ´Ó¶ø±£Ö¤Á˸ÃÁÙ½ç×ÊÔ´Äܱ»»¥³â·ÃÎÊ¡£
mutex Ö´ÐÐ wait ²Ù×÷¶¨»áʧ°Ü£¬ µ±·ÃÎÊÁÙ½ç×ÊÔ´µÄ½ø³ÌÍ˳öÁÙ½çÇø
ºó£¬Ó¦¶Ô mutex Ö´ÐÐ signal ²Ù×÷£¬ÊͷŸÃÁÙ½ç×ÊÔ´¡£ÀûÓÃÐźÅÁ¿ÊµÏÖ½ø³Ì»¥³âµÄ½ø³ÌÃèÊö ÈçÏ£º
Var mutex: semaphore:=1 begin parbegin process 1: begin repeat wait(mutex) £» critical section signal(mutex) £» remainder section until false £» end
process 2: begin
£»
repeat wait(mutex) £» critical section signal(mutex) £» remainder section until false £» end parend
22 £®ÊÔд³öÏàÓ¦µÄ³ÌÐòÀ´ÃèÊöͼ 2-17 ËùʾµÄǰÇýͼ¡£
´ð£º£¨ a£©Var a, b, c, d, e, f, g, h; semaphore:= 0, 0,0, 0, 0, 0, 0, 0; begin parbegin
begin S1; signal(a); signal(b); end; begin wait(a); S2; signal(c); signal(d); end; begin wait(b); S3; signal(e); end; begin wait(c); S4; signal(f); end; begin wait(d); S5; signal(g); end; begin wait(e); S6; signal(h); end; begin wait(f); wait(g); wait(h); S7; end; parend end
£¨b £© Var a, b, c, d, e, f, g, h,i,j; semaphore:= 0,0, 0, 0, 0, 0, 0,0,0, 0; begin parbegin
begin S1; signal(a); signal(b); end; begin wait(a); S2; signal(c); signal(d); end; begin wait(b); S3; signal(e); signal(f); end; begin wait(c); S4; signal(g); end; begin wait(d); S5; signal(h); end; begin wait(e); S6; signal(i); end; begin wait(f); S7; signal(j); end;
begin wait(g);wait(h); wait(i); wait(j); S8;end;