ÇöÀç°­Á : UNIX ¼ÒÄÏ ÀÀ¿ë ÇÁ·Î±×·¡¹Ö ´ÙÀ½: 4.2 äÆà ¼­¹ö ÇÁ·Î±×·¥


4.1 ¼ÒÄÏÀÇ µ¿ÀÛ¸ðµå

¢º ¼ÒÄÏÀÇ µ¿ÀÛ¸ðµå¿¡´Â blocking, non-blocking ±×¸®°í ºñµ¿±â(asynchronous) ¸ðµå ¼¼ °¡Áö°¡ ÀÖÀ¸¸ç ¼ÒÄÏÀ» óÀ½ »ý¼ºÇϸé blocking ¸ðµåÀÇ ¼ÒÄÏÀÌ »ý¼ºµÈ´Ù.

¢º blocking ¸ðµåÀÇ ¼ÒÄÏÀ̶õ ÀÌ ¼ÒÄÏ¿¡ ¾î¶² ¼ÒÄÏ °ü·Ã ½Ã½ºÅÛ ÄÝÀ» È£ÃâÇÏ¿´À» ¶§ ³×Æ®¿÷ ½Ã½ºÅÛ(Áï, TCP/IP)ÀÌ µ¿ÀÛÀ» ¿Ï·áÇÒ ¶§±îÁö ÀÀ¿ë ÇÁ·Î¼¼½º°¡ ¸ØÃß¾î ÀÖ°Ô(block) µÇ´Â ¼ÒÄÏÀ» ¸»ÇÑ´Ù.

¢º ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­´Â ÇÊ¿ä¿¡ µû¶ó ÀÌ blocking ¸ðµåÀÇ ¼ÒÄÏÀ» non-blocking ¸ðµå ¶Ç´Â ºñµ¿±â ¸ðµå·Î º¯°æÇÏ¿© »ç¿ëÇÏ¿©¾ß ÇÑ´Ù.

¢º Non-blocking ¸ðµåÀÇ ¼ÒÄÏÀ̶õ, ¼ÒÄÏ °ü·Ã ½Ã½ºÅÛ ÄÝ¿¡ ´ëÇÏ¿© ³×Æ®¿÷ ½Ã½ºÅÛÀÌ ÀÏ´Ü °á°ú¸¦ ¹Ù·Î ¸®ÅÏÇÏ¿© ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ blockµÇÁö ¾Ê°Ô ÇÏ´Â ¼ÒÄÏÀ» ¸»ÇÑ´Ù.

¢º ¼ÒÄÏ°ü·Ã ½Ã½ºÅÛ ÄÝ Áß¿¡ blockµÉ ¼ö ÀÖ´Â °ÍÀº listen(), connect(), accept(), send(), recv(), close() µîÀÌ´Ù.

¢º ÇÑÆí ºñµ¿±â ¸ðµå´Â non-blocking ¸ðµå¿¡¼­Ã³·³ blockµÉ ¼ö ÀÖ¾ú´ø ¼ÒÄÏ ½Ã½ºÅÛ ÄÝ¿¡ ´ëÇؼ­ ÀÏ´Ü ¸®ÅÏÀ» ÇÏ°í ½Ã½ºÅÛ ÄÝÀÇ ÇØ´ç µ¿ÀÛÀÌ ¿Ï·áµÇ¸é ºñµ¿±âÀûÀ¸·Î(asynchronously) ±× °á°ú¸¦ ÀÀ¿ë ÇÁ·Î±×·¥¿¡°Ô ¾Ë·ÁÁÖ´Â ¼ÒÄÏÀÇ µ¿ÀÛ ¸ðµåÀÌ´Ù.

¢º 4.2Àý°ú 4.3Àý¿¡¼­ °¢°¢ ¼Ò°³ÇÒ Ã¤Æà ¼­¹ö¿Í Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥¿¡¼­´Â ¿©·¯ °¡Áö I/O ÀÛ¾÷À» º´ÇàÇÏ¿© ó¸®ÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù.

¢º À̶§ select() ½Ã½ºÅÛ ÄÝÀ» »ç¿ëÇÏ¿© ¼ÒÄÏÀ» ºñµ¿±â ¸ðµå·Î »ç¿ëÇÏ´Â °Í¿¡ ´ëÇÏ¿© ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù.

¢º ÇÑÆí ¼ÒÄÏÀÇ µ¿ÀÛ¸ðµå º¯°æÀº À©µµ¿ì ¼ÒÄÏ(À©¼Ó) ÇÁ·Î±×·¡¹Ö¿¡¼­µµ ÀÚ¼¼È÷ ´Ù·é´Ù(5.1.1Àý°ú 5.2.2Àý ÂüÁ¶).


ÇöÀç°­Á : UNIX ¼ÒÄÏ ÀÀ¿ë ÇÁ·Î±×·¡¹Ö ´ÙÀ½: 4.2 äÆü­¹ö ÇÁ·Î±×·¥