ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
Docbook ¿ø¹®
1장. pthread_mutex_lock(3)¹ÂÅØ½º Àá±ÝÀ» ¾ò°Å³ª ÇØÁ¦ÇÑ´Ù. 1.1절. »ç¿ë¹ý
1.2절. ¼³¸ímutex´Â MUTual EXclusion(»óÈ£ ¹èÁ¦)devideÀÇ ÁÙÀÓ¸»·Î ¾²·¹µå°£ °øÀ¯ÇÏ´Â µ¥ÀÌÅÍ ¿µ¿ªÀ» º¸È£Çϱâ À§Çؼ »ç¿ëÇÑ´Ù. µ¥ÀÌÅÍ ¿µ¿ªÀÇ º¸È£´Â critical section(ÀÓ°è ¿µ¿ª)À» ¸¸µé°í ÀÓ°è ¿µ¿ª³»¿¡ ´ÜÇϳªÀÇ ¾²·¹µå¸¸ÀÌ ÁøÀÔ°¡´É Çϵµ·Ï ÇÏ´Â ¹æ½ÄÀ» »ç¿ëÇÑ´Ù. º¸Åë ÀÌ ÀӰ迵¿ª¿¡´Â º¸È£ÇϰíÀÚ ÇÏ´Â µ¥ÀÌÅÍ¿¡ ´ëÇÑ Á¢±Ù/¼öÁ¤ ·çƾÀÌ µé¾î°£´Ù. µ¥ÀÌÅÍ¿¡ ´ëÇÑ Á¢±Ù/¼öÁ¤ ·çƾ¿¡ ¿ÀÁ÷ ÇϳªÀÇ ¾²·¹µå¸¸ Á¢±Ù °¡´ÉÇÏ°Ô µÇ¹Ç·Î °á±¹ µ¥ÀÌÅ͸¦ º¸È£ÇÒ ¼ö ÀÖ°Ô µÈ´Ù. ¹ÂÅØ½º´Â ´ÜÁö 2°³ÀÇ °¡´ÉÇÑ Çൿ¸¸ÀÌ Á¤ÀǵǾî ÀÖ´Ù. unlock¿Í lockÀÌ ±×°Çµ¥, lock´Â ÀӰ迵¿ªÀº ÁøÀÔÇϱâ À§ÇÑ ¿äû, unlock´Â ÀӰ迵¿ªÀ» ºüÁ®³ª¿À¸é¼ ´Ù¸¥ ¾²·¹µå¿¡°Ô ÀӰ迵¿ªÀ» µÇµ¹·ÁÁÖ±â À§Çؼ »ç¿ëÇÑ´Ù. ¸¸¾à ¾²·¹µå°¡ ÀӰ迵¿ªÀÌ ÁøÀÔÇϱâ À§Çؼ lock¸¦ ½Ãµµ Çߴµ¥, ´Ù¸¥ ¾²·¹µå°¡ ÀÌ¹Ì ÀӰ迵¿ª¿¡ ÁøÀÔÇß´Ù¸é ÇØ´ç ¾²·¹µå°¡ unlock¸¦ ÇØ¼ ÀӰ迵¿ªÀ» ºüÁ®³ª¿À±â Àü±îÁö ±â´Ù¸®°Ô µÈ´Ù. mutex´Â fast¿Í recursiveÀÇ 2°¡Áö Á¾·ù°¡ Áö¿øµÈ´Ù. À̰ÍÀº lockÀ» ¾òÀº ¾²·¹µå°¡ ´Ù½Ã lock¸¦ ¾òÀ» ¼ö ÀÖµµ·Ï ÇÒ °ÍÀÎÁö¸¦ °áÁ¤Çϱâ À§Çؼ »ç¿ëÇÑ´Ù. ±âº»ÀûÀ¸·Î mutexÀÇ Á¾·ù´Â fast »óÅ·Π½ÃÀ۵ȴÙ. mutex Á¾·ù¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº pthread_mutexattr_init(3)À» Âü°íÇϱ⠹ٶõ´Ù. pthread_mutex_t´Â ¹ÂÅØ½ºÀÇ Æ¯Â¡À» °áÁ¤Çϱâ À§Çؼ »ç¿ëÇÑ´Ù. PTHREAD_MUTEX_INITIALIZER(fast mutex)¿Í PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP(recursive mutexe), PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP(mutx ¿¡·¯ üũ¿ë)ÀÇ 3°¡Áö »ó¼ö°¡ ÁغñµÇ¾î ÀÖ´Ù. ÀÌÁß Çϳª¸¦ ¼±ÅÃÇÏ¸é µÈ´Ù. pthread_mutex_lock()´Â (ÀӰ迵¿ª¿¡ ÁøÀÔÇϱâ À§ÇÔ)¹ÂÅØ½º Àá±ÝÀ» ¿äûÇÑ´Ù. ¸¸¾à ¹ÂÅØ½ºÀÇ ÃÖ±Ù »óŰ¡ unlocked¶ó¸é ¾²·¹µå´Â Àá±ÝÀ» ¾ò°í ÀӰ迵¿ª¿¡ ÁøÀÔÇÏ°Ô µÇ°í ¸®ÅÏÇÑ´Ù. ´Ù¸¥ ¾²·¹µå°¡ ¹ÂÅØ½º Àá±ÝÀ» ¾òÀº »óŶó¸é Àá±ÝÀ» ¾òÀ» ¼ö ÀÖÀ» ¶§±îÁö ±â´Ù¸®°Ô µÈ´Ù. pthread_mutex_unlock()´Â ¹ÂÅØ½ºÀá±ÝÀ» µÇµ¹·ÁÁØ´Ù. ¸¸¾à fast ¹ÂÅØ½º¶ó¸é pthread_mutex_unlock()´Â ¾ðÁ¦³ª unlocked »óŸ¦ µÇµ¹·ÁÁØ´Ù. recursive ¹ÂÅØ½º¶ó¸é Àá°ÜÀÖ´Â ¹ÂÅØ½ºÀÇ ¼ö¸¦ °¨¼Ò½Ã۰í ÀÌ ¼ö°¡ 0ÀÌ µÈ´Ù¸é ¹ÂÅØ½ºÀá±ÝÀ» µÇµ¹·ÁÁÖ°Ô µÈ´Ù. pthread_mutex_destory()´Â ¹ÂÅØ½º °´Ã¼¸¦ »èÁ¦Çϰí ÀÚ¿øÀ» µÇµ¹·ÁÁØ´Ù. ´õÀÌ»ó »ç¿ëÇÏÁö ¾Ê´Â ¹ÂÅØ½º´Â ¹Ýµå½Ã ÀÌ ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼ »èÁ¦Çϵµ·Ï ÇÏÀÚ. ¸®´ª½º¿¡¼ ¾²·¹µå´Â ¹ÂÅØ½º °´Ã¼¿Í º°°³·Î µÇ¾î ÀÖ´Ù. ±×·¯¹Ç·Î ¾²·¹µå°¡ Á¾·áµÇ¾ú´Ù°í ÇÏ´õ¶óµµ ¹ÂÅØ½º °´Ã¼´Â ¿©ÀüÈ÷ ³²¾Æ ÀÖ°Ô µÈ´Ù. ÀÌ ÇÔ¼ö¸¦ È£ÃâÇØ¾ßÁö¸¸ ¹ÂÅØ½º °´Ã¼°¡ »èÁ¦ µÈ´Ù. 1.3절. ¹Ýȯ°ªpthread_mutex_init()´Â ¾ðÁ¦³ª 0À» ¸®ÅÏÇÑ´Ù. ´Ù¸¥ ¹ÂÅØ½º ÇÔ¼öµéÀº ¼º°øÇß´Ù¸é 0, ½ÇÆÐÇß´Ù¸é 0ÀÌ ¾Æ´Ñ ¼ö¸¦ ¸®ÅÏÇϰí errno¸¦ ¼³Á¤ÇÑ´Ù. 1.4절. ¿¡·¯pthread_mutex_lock()ÇÔ¼ö´Â ¾Æ·¡ÀÇ ¿¡·¯Äڵ带 ¹ÝȯÇÑ´Ù.
pthread_mutex_trylock()ÇÔ¼ö´Â ¾Æ·¡ÀÇ ¿¡·¯Äڵ带 ¹ÝȯÇÑ´Ù.
1.5절. ¿¹Á¦
|
|
||
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|