º»¹®/³»¿ë
R
REPORT
¾ÆÁÖ´ë Á¤º¸Åë½Å´ëÇпø
¿î¿µÃ¼Á¦ °úÁ¦ Á¦Ãâ(Áß°£°í»ç)
°ú¸ñ¸í
Áöµµ±³¼ö
Çаú
Çйø
À̸§
Á¦ÃâÀÏ
1. »óÈ£ ¹èÁ¦ ¼Ö·ç¼ÇµéÀº ¾Æ·¡¿Í °°Àº 4°¡Áö Á¶°ÇÀ» ÃæÁ·ÇØ¾ß ÇÑ´Ù.
¨ç »óÈ£¹èÁ¦: ÀÓ°è ¿µ¿ª¿¡¼ µÎ ÇÁ·Î¼¼½º°¡ µ¿½Ã¿¡ ½ÇÇàµÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.
¨è ÁøÇà»óȲ: ÀÓ°è ¿µ¿ª¿¡ ÁøÀÔÇÏ·Á´Â ÇÁ·Î¼¼½º´Â ¹«±âÇÑ ¿¬±âÇÒ ¼ö ¾ø½À´Ï´Ù.
¨é ÇÑÁ¤µÈ ´ë±â: ´ë±â ½Ã°£ÀÌ Á¦ÇѵǾî¾ß ÇÕ´Ï´Ù.
¨ê ÀÚ¿øÈ°¿ë: ÀÓ°è ¼½¼Ç¿¡ µé¾î°¡·Á´Â ¸ðµç ÇÁ·Î¼¼½º´Â ´ÙÀ½À» ¼öÇàÇØ¾ß ÇÕ´Ï´Ù. ¸®¼Ò½º°¡ »ç¿ëµÇÁö ¾ÊÀ» ¶§¸¶´Ù Â÷´ÜµÇÁö ¾Ê½À´Ï´Ù.
ÈùÆ®: 1)ÀÇ µÎ Ç׸ñ »óÈ£¹èÁ¦, ÀÚ¿øÈ°¿ëÀº ¿¹½ÃÀ̸ç, 1)ÀÇ ³ª¸ÓÁö Á¶°Ç°ú 2)ÀÇ 4Á¶°ÇÀº ´ä¾ÈÀ» ÀÛ¼ºÇØ¾ß ÇÕ´Ï´Ù.
1)-1) »óÈ£¹èÁ¦: ÃæÁ· (¿¹½ÃÀÓ)
1)-2) ÁøÇà: ÃæÁ·µÇÁö ¸øÇÔ
Á¤ÇØÁø ½Ã°£(À¯Çѽð£)³» ÀÔÀå °áÁ¤, µÎ ÇÁ·Î¼¼½º Áß ´©°¡ ¸ÕÀú µé¾î°¥ °ÍÀÎÁö °áÁ¤
1)_3) ÇÑÁ¤µÈ ´ë±â: ÃæÁ·µÇÁö ¸øÇÔ
P0 ¡æ P1 ¡æ P0 ¡æ P1 ¼ø¼·Î¸¸ ÁøÇàµÇ°í, µÎ ÇÁ·Î¼¼½º ¼öÇà ¼ø¼°¡
Á¤ÇØÁø´ë¡¦(»ý·«)
1)-4) ÀÚ¿øÈ°¿ë: ÃæÁ·µÇÁö ¸øÇÔ(¿¹½ÃÀÓ)
2. ¾Æ·¡ ÄÚµåó·³ IPC(ÇÁ·Î¼¼½º°£ Åë½Å¹æ¹ý)µµ±¸·Î °æ°è ¹öÆÛ¸¦ »ç¿ëÇÏ´Â »ý»êÀÚ¿Í ¼ÒºñÀÚ°¡
1) count=0, in=0, out=0
2) producer°¡ while Á¶°ÇÀ» °Ë»çÇÔ. count 0 À̹ǷΠwhile loopÀ» ºüÁ®³ª¿È
3) producer°¡ count ++ ¸¦ ½ÇÇàÇÏ¿© count 1 °¡ µÊ(ÀÚ¿øÀ» »ç¿ëÇÏ·Á´Â »óÅ·Πº¯°æ)
4) consumer°¡ count 1 ÀÇ while Á¶°ÇÀ» °Ë»çÇÔ(´ÙÀ½ ÇÁ·Î¼¼½º°¡ ÀÚ¿ø¿¡ Á¢±ÙÇÏ¿© »ç¿ë°¡´É¿©ºÎ È®ÀÎ)
5) consumer Á¶°ÇÀº count <= 0, count 1, Á¶°ÇÀÌ °ÅÁþÀ̹ǷΠwhile¹® ºüÁ®³ª¿È (Á¢±ÙÇÑ ÀÚ¿øÀÌ ¹öÆÛ¿µ¿ªÀ» »ç¿ë°¡´ÉÇÑ »óÅÂÀÎÁö¸¦ È®ÀÎ, ÀÌ¹Ì »ç¿ë Áغñ ÁßÀÎ ÇÁ·Î¼¼½º°¡ ÀÖ´Â »óÅÂ)
6) consumer°¡ cunt ¸¦ ½ÇÇàÇÏ¿© count 0 ÀÌ µÊ(Á¢±ÙÇÑ ÇÁ·Î¼¼½º´Â ÇöÀç ÀÚ¿øÀ» Á¡À¯ ÁßÀÎ »óÅ·Π°øÀ¯ÀÚ¿øÀÌ ÀÖÀ¸¹Ç·Î ´ë±â½Ã°£ÀÌ ¹ß»ýÇÑ´Ù.)
7) producer°¡ buffer[in] = item; ½ÇÇàÇϸç buffer[0]¿¡ itemÀ» ³ÖÀ½