2.2½ø³Ì״̬ÒÔ¼°×´Ì¬×ª»»
2.2.1½ø³Ì¿ØÖÆ¿éPCB,ϵͳ¹ÜÀí½ø³Ìʱ£¬ÐÞ¸ÄPCB
½ø³ÌÔÚÔËÐÐʱ£¬Í¨ÓüĴæÆ÷Òª±£´æÏÖ³¡ÐÅÏ¢£¬²»ÔËÐеÄʱºò£¬ÕâЩÐÅÏ¢¶¼Òª±£´æÏ À´
±ÈÈ磬ָÕëµÈ£¬ÏÖ³¡Òª±£´æÔÚ×Ô¼ºµÄ¿Õ¼äÖУ¬ÎļþϵͳÖС£ ÏÖ³¡ÐÅÏ¢°üÀ¨ºÜ¶àÄÚÈÝ¡£
½ø³Ì¿ØÖÆ¿éPCBʱ¹á´©Ê¼ÖÕµÄ
2.2.2״̬µÄÉèÖÃÓë½ø³ÌµÄ¿ØÖÆÓйØÏµ£¬Ê²Ã´Ê±ºò´´½¨½ø³Ì£¬Ê²Ã´Ê±ºòÖÐÖ¹½ø³Ì£¬ÍêÈ« ÓÉ
ÔÓïÀ´½«½ø³Ì´ÓÒ»¸ö״̬ת±äΪÁíÒ»¸ö״̬ ×îÖ÷ÒªµÄ¾ÍÊÇÁË½â½ø³ÌµÄ¿ØÖÆ 3.½ø³ÌµÄͬ²½ºÍ»¥³â
Õⲿ·ÖÓë \Óëʱ¼äÓйصĴíÎó\ÓйØ
ͬ²½ÊÇ¿ª·¢ÈËÔ±ÓÐÒâʶ°²ÅŵģºÔÚÍê³ÉÒ»¸öÌØ¶¨¹¦ÄܵÄÈí¼þÖУ¬Óɶà¸ö½ø³ÌÐ×÷£¬Õâ Щ½ø³Ì¼äÓÐʱÐò¹ØÏµ£¬»¥ÏàÅäºÏÍê³É£¬¶øÕâЩʱÐòÊÇÊÂÏȰ²Åźõģ¬OS²»ÖªµÀÕâЩ¹ØÏµ£¬ ÓÃ
»§Í¨¹ýOSÌṩµÄÔÓïÀ´Î¬³ÖÕâÖÖʱÐò¡£
ͬ²½£ºµÚÒ»¸ö½ø³ÌÖ´ÐеÀijһµãºóÄÜ·ñ¼ÌÐøÖ´ÐÐÈ¡¾öÓÚÁíÒ»¸ö½ø³ÌÄܹ»¸øËü·¢ÏûÏ¢¡£ ½ø³ÌµÄ»¥³â£º¸÷¸ö½ø³Ì¼äÒªÇó¹²Ïí×ÊÔ´£¬¾ºÕùʹÓÃ×ÊÔ´¡£ ÊéÉϽ²½âÁË¡°¾ºÕùÌõ¼þ¡±ÕâÒ»¸ÅÄî¡£
4.ÁÙ½çÇø£ºÖ»ÔÊÐíÒ»¸ö½ø³ÌʹÓõÄ×ÊÔ´½ÐÁÙ½ç×ÊÔ´ ¾ºÕùʹÓÃͬһ¸ö×ÊÔ´µÄ
²»ÊÇÒ»¸ö½ø³ÌµÄ£¬¶øÊÇÒÔÉϽø³Ì
¶ÔÓÚÁÙ½çÇøµÄÒªÇó
1)ÈκÎÁ½¸ö½ø³Ì²»ÄÜͬʱ´¦ÓÚÁÙ½çÇø£¬¼´Á½¶Î³ÌÐòÊDz»Äܽ»²æµÄ ÁÙ½çÇøµÄ³ÌÐòÊÇ¿ÉÒÔÖжÏÖ´ÐеÄ
2£©Èç¹ûÏë½øÈëÁÙ½çÇø£¬ÓÖ½ø²»È¥£¬Ôò×èÈû¡°ÓпÕÈýø£¬Î޿յȴý£¬ÓÐÏ޵ȴý¡± 3£©²»Ó¦¶Ô½ø³ÌµÄËٶȺͽø³ÌµÄÊýÄ¿×÷¼ÙÉè
½â¾ö»¥³âµÄÎÊÌ⣺
*1 Óû§¹Ø±ÕÖжϻá³öÏÖÎÊÌ⣨ÍüÁË¿ªÖжϣ¬Ôõô°ì£¿£© *2 Ëø±äÁ¿ÔÚ½â¾ö»¥³âÎÊÌâʱ£¬Ò²¿ÉÒÔÒýÈëеû¥³â *3 ÑϸñÂÖ»»·¨
ÒÔÉÏÈýÖÖ·½·¨¶¼²»Äܽâ¾ö»¥³â¡£
ÒÔÏÂÁ½¸ö¶¼²»¿¼£º
#1 Peterson Delker ÖªµÀËã·¨£¬µ«²»¿¼ #2 ÓÃÓ²¼þ·¨½â¾ö»¥³âÒ²²»¿¼
ÖØµã£º5. ÕÆÎÕÐźÅÁ¿ÒÔ¼°PV²Ù×÷ 5.1 ÐźÅÁ¿ºÍPV²Ù×÷
down --up (Ê×Ñ¡) P---V (Ò²¶Ô)
wait--signal£¨´íÎó)
ÔÀí£ºÔÚÖ´Ðйý³ÌÖУ¬²»¿É·Ö¸î.
down²Ù×÷:¶ÔÐźÅÁ¿£º-1,ÈôСÓÚ1£¬Ôò×èÈû£¬Ë͵½µÈ´ý¶ÓÁÐ
up ²Ù×÷£º+1,ÈôСÓÚµÈÓÚ0£¬ÏàÓ¦µÄÐźÅÁ¿µÈÓڵȴý¶ÓÁÐÉϵĽø³Ì¡£
ÖØµãÖÐÖØµã£º±ØÓÐP V²Ù×÷µÄÌ⣺
½âÌâµÄÒªËØ£º1)ÉèÖúÃÿ¸öÐźÅÁ¿£¨Ã¿µÀÌâµÄ·ÖÊýÓÉÈô¸É²¿·Ö×é³É£© ÁгöËùÓеÄÐźÅÁ¿¼°Æä³õÖµ¾Í¸ø·Ö
2£©Ð´PV£¬²Ù×÷ʱ£¬PV²Ù×÷²¿·Ö²»ÄÜÓÃ×ÔÈ»ÓïÑÔ£¬ÆäÓàµÄ²¿·Ö ¿ÉÓÃαÂ룬×ÔÈ»ÓïÑÔ¾ù¿É
begin ---end , repeat --until(¸ãÇå³þ 2·Ö)
¶ÁÕß---дÕß(Ñ»·) Éú²ú---Ïû·Ñ£¨²»Ñ»·£©
6.¼¸¸öµäÐÍÄ£ÐÍ£¨¿¼ÊÔ²»»á³¬¹ý´ËÀàÄ£ÐÍ£©
6.1 Éú²úÕß---Ïû·ÑÕßÀàÐÍ
˼Ï룺ÓÉһЩ buffer,һЩ½ø³ÌÏòBuffer ÖÐд£¬ÁíһЩÏòBufferÖжÁ »Ø¼Ò×ܽ᣺
*1 Ò»¸öÉú²úÕߣ¬Ò»¸öÏû·ÑÕߣ¬Ò»¸öbuffer *2 Ò»¸öÉú²úÕߣ¬Ò»¸öÏû·ÑÕߣ¬Ò»Ð©buffer
*3 Ò»¸öÉú²úÕߣ¬¶à¸öÏû·ÑÕߣ¬Ò»¸ö»òÕß¶à¸öbuffer
*4 ¶à¸öÉú²úÕߣ¬¶à¸öÏû·ÑÕߣ¬Ò»¸ö»òÕß¶à¸öbuffer(×ÔÓ£¬²»¿¼£¡0)
6.2 ÕÜѧ¼Ò½ø²ÍÎÊÌâ(ÈÏÕæ¶ÁÊéÉϵÄÿ¾ä»°)
¶ÔÓÚ¶à¸ö¾ºÕù½ø³Ì»¥³â·ÃÎÊ×ÊÔ´ÊǷdz£ÓÐÓõģ¡
6.3 ¶ÁÕß---дÕßÎÊÌâ(P42) ¶Ô¹²Ïí×ÊÔ´µÄ²Ù×÷
¶ÁÓÐÐí¶à¶ÁÕߣ¬µ«Ð´Ê±Ö»ÓÐÒ»¸öд¡£
ÈôÊÇÁ½×é¶ÁÕßÎÊÌ⣬µÚ¶þ¸ö¶ÁÕß½«µÚÒ»¸öµÃ¿½±´¹ýÀ´£¬±äÁ¿¸Ä±äһϠ2003ÄêµÄ¿¼ÑÐÌ⣬Ô˺ÓÎÊÌâ¾ùÊǶÁÕß---дÕßÎÊÌâ 2003Ä꿼ÑÐÌâ˼·£º
ÈçºÎÏÞÖÆÖ»ÓÐ3¸ö¹ý£¬µÚËĸö²»Äܹý¡£ ¹Ø¼üÔÚÓÚÎÊÌâÈçºÎ·Ö½â
Ê÷ÉÏÕâÖÖ¶ÁÕߣ¬Ð´Õß»á³öÏÖ¼¢¶ö£¬µ«±¾ÌâÒªÇó²»³öÏÖ¼¢¶ö ´ó´¬·½Ïò£ºÐ´Õߣ¬Ð¡´¬·½Ïò£ºÐ´Õß
°ÑÔÀ´³ÌÐòµÄ¿ò¼Üд³ö£¬½«Ï¸½ÚÖ»ÔÊÐí3¸ö´¬¹ý£¨²»ÔÊÐí³öÏÖ¼¢¶ö£©²¹³ä½øÈ¥
6.4 Àí·¢Ê¦ÎÊÌâ(P43)
6.5 ÎüÑÌÕßÄ£ÐÍ
СµÄÎÊÌ⣺eg:ÒøÐнкÅ, ÔÄÀÀÊÒÎÊÌ⣬£¨À´Ò»¸öÉêÇëÒ»¸ö×ÊÔ´£¬Èô¸É¸ö½ø³Ì¶Ô×Ê Ô´µÄʹÓÃÎÊÌ⣩£¬¿¼³¡ÎÊÌ⣨ͬ²½¹ØÏµ£¬±È½Ï¼òµ¥£©
×öÌâÌ×·£º1£©ÏÈд³ö³ÌÐò 2)ÕÒ³ö½ø³Ì¼äµÄ¹ØÏµ(·Ö½â¿ªÕÒ£¬ÏÈÕÒ»¥³â£¬ÔÙÕÒͬ²½£¬Ò» ¸ö¹ØÏµÉèÖÃÒ»¸öÐźÅÁ¿) 3£©P,VǶÈëµ½ÏàÓ¦µÄλÖã¬ÐźÅÁ¿ÊÇÔÚÕÒ¹ØÏµµÄʱºò¶¨ºÃµÄ£¡Ò» ¸öÒ»¸ö¹ØÏµÕÒ£¬²»ÒªÏÓÂé·³ 4£©¸³ºÃ³õÖµ 5£©×¢Òâϸ½Ú£¨ÊÇ·ñÐèҪѻ·£©
PVÆ¥Å䣬µ«´æÔÚ if--else Óï¾Öʱ»áÓÐÎÊÌ⣬ÐźÅÁ¿µÄ²Ù×÷£¬Ö»ÄܳöÏÖÔÚP VÖУ¬¶ø²»»á ³öÏÖÔÚP,VÓï¾äÖ®Í⣬ÇÒ²»ÒªÐ´³öÓÐËÀËøµÄ³ÌÐò¡£ Îå. ½ø³ÌͨÐÅ
½ø³ÌͨÐŰüÀ¨Í¬²½£¬»¥³â£¬±¾²¿·ÖÊǸ߼¶µÄ½ø³ÌͨÐÅ£¬P,VÊǼòµ¥½ø³ÌͨÐÅ£¡ linuxÖУ¬ÐźÅÁ¿£¬¹²ÏíÄڴ棬ÏûÏ¢¶ÓÁУ¬Socket£¬¹ÜµÀ¾ùÊÇͨÐÅ»úÖÆ WindowsÖУ¬»¥³â¶ÓÁУ¬ÐźÅÁ¿¶ÔÏóµÈ¾ùÊÇͨÐÅ»úÖÆ¡£
·ÖΪÈçϼ¸Àࣺ 1. ¹²ÏíÄÚ´æ
Óë¶Á--дÕßÎÊÌâÊÇͬһģÐÍ£¬ÈôP¸ö½ø³Ì»¥ÏàͨÐÅ£¨Öص㣩£¬ÒªÁ˽âʵÏÖºÍÉè¼ÆÏ¸½Ú
1.1 ÉèÖù²ÏíÄÚ´æ´æÈ¡·½Ê½
¶ÁÕßÈçºÎ»¥³â£¬Ð´ÕßÈçºÎ»¥³â 1.2ÏûÏ¢´«µÝ·½Ê½(OS ÖÐÓõĶà) Éè¼ÆÒªµã£º
1)Á½¸ö½ø³Ì¼äÊÕ·¢ÏûϢģÐÍ send-receiveµÄ²Ù×÷À´Íê³É
ÏûÏ¢µÄ´«µÝ»á²úÉúÈçÏÂÎÊÌ⣺·¢Ë͵ÄÏûÏ¢»á²»»á¶ªÊ§£¬½â¾ö·½°¸£º×÷Ò»¸ö»Ø´ð £»
Ó¦´ð»á²»»á¶ª£¡
ÖØ·¢Ò»ÌõÏûÏ¢£¬½ÓÊܵÀÁ½¸öͬһÐÅÏ¢Ëù´øÀ´µÄÎÊÌ⣡ ÏûÏ¢±¾Éí»á²»»áÓвî´í£¡
2£© ¸øË·¢ÏûÏ¢£¬½ø³ÌµÄÃüÃû»á²»»á²úÉú¶þÒåÐÔ£¡ 3£©
ÒÔÉÏÎÊÌâ»áÔÚ¶à»úϵͳÖгöÏÖ
ÈçºÎÖªµÀËù·¢µÄÏûÏ¢ÊÇÕýÈ·µÄ£¬ºÏ·¨µÄ£¨°²È«ÐÔ£© 4£©Óм¸ÖÖ¿ÉÄÜÐÔÀ´ÊµÏÖÏûÏ¢µÄ´«µÝ ÓÐ×èÈû£¬ÎÞ×èÈû£¬ÓÐÎÞ»º³å a:ÏûÏ¢´«µÝÊÇ×î³£ÓõÄ
ϵͳÖлῪ±Ù³ö»º³åÇø£¬ÏµÍ³°ÑÏûÏ¢´ÓAµØÖ·¿Õ¼ä¸´ÖƵ½buffer
È»ºó´ÓbufferÖзŵ½ÏûÏ¢¶ÓÁÐÖУ¬¹Òµ½BµØÖ·¿Õ¼ä£¨½ÓÊܽø³ÌµÄµØÖ·¿Õ¼ä£© Õâ¸öbufferÊÇÓлº³åµÄ¡£
ÏûÏ¢»º³åÊÇ£ºÉú²ú----Ïû·ÑÕßÄ£ÐÍ b:ÐÅÏäÄ£ÐÍ
½¨Ò»¸öÐÅÏ䣬°ÑÏûÏ¢·ÅÔÚÐÅÏäÖÐ Ò»ÌײÙ×÷£º½¨ÐÅÏ䣬ÐÅÏäÂúÈçºÎ°ì c:ÓÐ/ÎÞ×èÈû
d:¹ÜµÀ£º½¨Á¢Á½¸ö½ø³ÌͨÐŵÄͨ·£¬ÊµÏÖʱÀûÓÃÁËÎļþϵͳ£¬ÔÚÎļþϵͳÖÐÖ§³Ö ͨ¹ý¶Á/дÎļþʵÏÖ! write---read!
Áù£º½ø³Ìµ÷¶È
´¦Àí»úµ÷¶È£ºÔÚÓÐЩÊéÉÏ·ÖΪÁ½¸ö²ã´Î 1£©£ºCPUµ÷¶È£¬2)Öм¶µ÷¶È £ºÁ½¼«µ÷¶È ÔÚÕâÀïÏÁÒåµÄ˵·¨¾ÍÊÇÑ¡ÔñÄÄЩ½ø³ÌÉÏCPU£¬¿¼ÂÇÒÔÏÂÎÊÌâ 1)ʲôÔÔò(what) 2)ʲôʱºò(when) 3)ÈçºÎ½øÐÐ(How)
1.what ʲôËã·¨£ºFIFO,ʱ¼äƬÂÖת·¨£¬ÓÅÏȼ¶µ÷¶È£¬¸ãÇåµ÷¶ÈÎÊÌâµÄÇø±ð
*FIFO£ºÒ»¸ö½ø³ÌÉÏCPUºó£¬³ý·ÇÓÉÓÚËü×ÔÉíµÄÔÒò£¬·ñÔòûÓнø³ÌÄܹ»´ò¶ÏËü£¬ £¨#»ùÓÚÓÅÏȼ¶µÄ²»¿É°þ¶áËã·¨£© ʱ¼äƬÂÖת·¨£¬Ê±¼äƬÓÃÍê¾ÍÇл»ÏÂÀ´
»ùÓÚÓÅÏȼ¶:1):ÇÀÕ¼:Ò»µ©ÓÐÁ˸ßÓÅÏȼ¶¾Í¿ÉÒÔÇл»ÔÀ´ÔËÐеĽø³Ì£¡ 2£©£º²»¿ÉÇÀÕ¼
¿É±äµÄÒ»¶¨ÊǶ¯Ì¬µÄ£¬¹Ì¶¨µÄÒ»¶¨ÊǾ²Ì¬µÄ¡£ 2»úÖÆºÍ²ßÂÔÎÊÌâÔڴ˲¿·ÖÓÐËùÌåÏÖ ²ßÂÔÊÇÓû§¿ÉÑ¡µÄ »úÖÆÊǶ¨ºÃµÄ
×îа汾µÄOSÒªÇóÇÀÕ¼
¶à¼¶ÅÅÁУº¼¸ÖÖ²ßÂԵĽáºÏ£¨Ê±¼äƬ£¬ÓÅÏȼ¶£¬ÇÀÕ¼£©
2)ʱ»ú(WHEN) ʲôʱºò×öʲô¹¤×÷
ʲôʱºò½øÐнø³Ìµ÷¶È£ºÒ»¸ö½ø³ÌÔËÐÐÍê±Ï£¬½ø³Ì³ö´í£¬Ê±¼äƬµ½£¬»ùÓÚÓÅÏȼ¶µÄ¿ÉÇÀÕ¼ ʽ
µ÷¶È£¬×Ô¼ºÓÃ×èÈûÔÓォ×Ô¼º×èÈû
3£©ÈçºÎ½øÐÐÉÏÏÂÎÄÇл»(HOW)
Ò»¸ö½ø³ÌÈóöÀ´£¬ÁíÒ»¸ö½ø³ÌÉÏÈ¥¡£
ÈçºÎ±£´æ±»»»ÏÂÀ´µÄÏÖ³¡£¬ÒÔ¼°ÈçºÎ½«Òª»»ÉÏÈ¥µÄÏÖ³¡»»ÉÏÈ¥£¬ ÊÇÓûã±àÀ´×öµÄ
Ï̺߳ͽø³ÌÖ®¼äµÄ¹ØÏµÎÊÌ⣺
Èç¹ûͬһϵͳÖÐÏ̺߳ͽø³Ì¶¼´æÔÚ£¬ËûÃǵĹØÏµ£º ÔÀ´½ø³Ì£º×ÊÔ´·ÖÅäºÍCPUµ÷¶ÈµÄµ¥Î»£»
½Ó×Å£º½ø³ÌÁ£¶È±äС£¬½ø³ÌÖ»¹Ü·ÖÅä×ÊÔ´£¬Ïß³ÌÊÇCPUµ÷¶Èµ¥Î»£¬ Ï̵߳ÄÒýÈ룺´Ó×ÊԴϵͳ¿ªÏúµÄ½Ç¶È£¬ÏµÍ³Ê¹ÓõĽǶȡ£