½Ã½ºÅÛ V IPCÀÇ ¸®´ª½º ±¸ÇöÀº Krishna balasubramanian(balasub@cis.ohio-state.edu)¿¡ ÀÇÇØ ±â¼úµÇ¾ú´Ù.
È®ÀÎÀÚÀÇ À¯ÀϼºÀº ¹®Á¦ÀÇ °´Ã¼ ŸÀÔ(type)°ú °ü°è ÀÖ´Ù. À̸¦ ¼³¸íÇϱâ À§ÇØ, "12345"¶ó´Â ¼öÄ¡ È®ÀÎÀÚ¸¦ °¡Á¤ÇÏÀÚ. °°Àº È®ÀÎÀÚ¸¦ °°´Â µÎ°³ÀÇ ¸Þ¼¼Áö Å¥´Â ¾øÀ¸¹Ç·Î, °°Àº ¼öÄ¡ È®ÀÎÀÚ¸¦ °¡Áø °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®¿Í ¸Þ¼¼Áö Å¥¸¦ ±¸º°ÇÒ ¼ö ÀÖ´Â °¡´É¼ºÀÌ Á¸ÀçÇÑ´Ù.
´ç½ÅÀÌ ´©±º°¡¿¡°Ô Àüȸ¦ ÇÏ°íÀÚ ÇÒ ¶§´Â ÀüȹøÈ£¸¦ ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù. °Ô´Ù°¡ ÀüÈ È¸»ç´Â ´ç½Å¿¡°Ô¼ ³ª°¡´Â Àüȸ¦ ¸¶Áö¸· ¸ñÀûÁö±îÁö ¾î¶»°Ô Áß°èÇÒ °ÍÀÎÁö ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù. ¹Ý´ëÆíÀÌ ÀüÈ¿¡ ÀÀ´äÇØ¾ß ¿¬°áÀÌ ÀÌ·ç¾î Áø´Ù.
½Ã½ºÅÛ V IPC ¼³ºñÀÇ °æ¿ì, ÀüÈ´Â »ç¿ëµÇ´Â °´Ã¼ÀÇ Å¸ÀÔÀ» °¡Áö°í Á÷Á¢ÀûÀÎ °ü·ÃÀÌ ÀÖ´Ù. ÀüÈ È¸»ç³ª ¶ó¿ìÆà ¹æ¹ý(routing method)Àº IPC Å°(key)¿Í ÀûÁ¢ ¿¬°üµÇ¾î Áø´Ù.
Å°´Â ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ Å°°ªÀ» ÇϵåÄÚµùÇÔÀ¸·Î½á Ç×»ó °°Àº °ªÀ» °¡Áú ¼ö ÀÖ´Ù. ÀÌ°ÍÀº Å°°¡ ÀÌ¹Ì »ç¿ëµÈ °ÍÀÏ ¼ö ÀÖ´Ù´Â ´ÜÁ¡ÀÌ ÀÖ´Ù. Á¾Á¾ ftok() ÇÔ¼ö´Â Ŭ¶óÀ̾ðÆ®¿Í ¼¹ö ¸ðµÎ¿¡ ÀÇÇØ Å°°ªÀ» ¹ß»ý½ÃÅ°´Âµ¥ »ç¿ëµÈ´Ù.
LIBRARY FUNCTION: ftok(); PROTOTYPE: key_t ftok ( char *pathname, char proj ); RETURNS: new IPC key value if successful -1 if unsuccessful, errno set to return of stat() call
ftok()·Î ºÎÅÍ ¹ÝȯµÈ Å°°ªÀº ù¹ø° ¾Æ±Ô¸ÕÆ®ÀÎ ÆÄÀÏ·Î ºÎÅÍ inode ¹øÈ£, minor ÀåÄ¡¹øÈ£¿Í µÎ¹ø° ¾Æ±Ô¸ÕÆ®ÀÎ ÇѱÛÀÚ ÇÁ·ÎÁ§Æ® È®ÀÎÀÚÀÇ Á¶ÇÕ¿¡ ÀÇÇØ ¹ß»ýÇÑ´Ù. ÀÌ°ÍÀº À¯ÀϼºÀ» º¸ÀåÇÏÁö ¾ÊÁö¸¸, ÀÀ¿ëÇÁ·Î±×·¥Àº Ãæµ¹À» üũÇÏ¿© Å°¸¦ ´Ù½Ã ¹ß»ý½Ãų ¼ö ÀÖ´Ù.
key_t mykey; mykey = ftok("/tmp/myapp",'a');
À§ÀÇ ¿¹¿¡¼, µð·ºÅ丮 "/tmp/myapp"´Â 'a'¶ó´Â ÇѱÛÀÚ¿Í Á¶ÇյȴÙ. ¶Ç ´Ù¸¥ ÀϹÝÀûÀÎ ¿¹´Â ÇöÀç µð·ºÅ丮¸¦ »ç¿ëÇÏ´Â °ÍÀÌ´Ù.
key_t mykey; mykey = ftok(".",'a');
»ç¿ëµÇ´Â Å° ¹ß»ý ¾Ë°í¸®ÁòÀº ÀüÀûÀ¸·Î ÀÀ¿ëÇÁ·Î±×·¥ ÇÁ·Î±×·¡¸ÓÀÇ ¸¶À½¿¡ ´Þ·Á ÀÖ´Ù. ÃøÁ¤ÀÌ µ¥µå¶ô(deadlocks), °æÀï»óÅÂÀÇ ¹æÁöµî¿¡ ÀÖ´Â ÇÑ, ¾î¶² ¹æ¹ýÀÌµç ³ªÅ¸³¯ ¼ö ÀÖ´Ù. ¿¹Á¦ÀÇ ¸ñÀûÀº ftok()ÀÇ »ç¿ë¿¡ ÀÖ´Ù. ¸¸¾à °¢ Ŭ¶óÀ̾ðÆ® ÇÁ·Î¼¼½º°¡ °¢±â À¯ÀÏÇÑ È¨ µð·ºÅ丮·Î ºÎÅÍ ¼öÇàµÉ °ÍÀ̶ó°í °¡Á¤ÇÑ´Ù¸é, ¹ß»ýµÇ´Â Å°´Â ¿ì¸®ÀÇ Çʿ並 ÃæÁ·½ÃÄÑ¾ß ÇÑ´Ù.
¾ò¾îÁø Å°°ªÀº IPC °´Ã¼¸¦ ¸¸µé°í Á¢±ÙÇϱâ À§ÇØ ÀÏ·ÃÀÇ IPC ½Ã½ºÅÛ È£Ãâ¿¡¼ »ç¿ëµÈ´Ù.
ipcs -q: ¸Þ¼¼Áö Å¥(message queues)¸¸À» º¸¿©ÁØ´Ù. ipcs -s: ¼¼¸¶ÆÛ(semaphore)¸¸À» º¸¿©ÁØ´Ù. ipcs -m: °øÀ¯ ¸Þ¸ð¸®(shared memory)¸¸À» º¸¿©ÁØ´Ù ipcs --help: ºÎ°¡ÀûÀÎ ¾Æ±Ô¸ÕÆ®(arguments)
µðÆúÆ®·Î ¼¼°¡Áö °´Ã¼ÀÇ Á¾·ù°¡ ¸ðµÎ º¸¿©Áø´Ù. ´ÙÀ½ÀÇ °£´ÜÇÑ ipcsÀÇ Ãâ·ÂÀ» »ìÆ캸ÀÚ:
------ Shared Memory Segments -------- shmid owner perms bytes nattch status ------ Semaphore Arrays -------- semid owner perms nsems status ------ Message Queues -------- msqid owner perms used-bytes messages 0 root 660 5 1
¿©±â¼ ¿ì¸®´Â "0"À̶ó´Â È®ÀÎÀÚ(Identifier)¸¦ °¡Áø ´ÜÀÏ ¸Þ¼¼Áö Å¥(single message queue)¸¦ º¼ ¼ö ÀÖ´Ù. ±×°ÍÀÇ ÁÖÀÎÀº root »ç¿ëÀÚÀÌ°í, 660(-rw-rw--)ÀÇ 8Áø Çã°¡»çÇ×À» °¡Áö°í ÀÖ´Ù. Å¥¿¡´Â ÇÑ°³ÀÇ ¸Þ¼¼Áö°¡ ÀÖ°í, ¸Þ¼¼ÁöÀÇ ÃÑ Å©±â´Â 5¹ÙÀÌÆ®ÀÌ´Ù.
ipcs ¸í·É¾î´Â IPC °´Ã¼¿¡ ´ëÇØ Ä¿³ÎÀÇ ÀúÀå Á¶Á÷À» ¿³º¼ ¼ö ÀÖ´Â °¡Àå °·ÂÇÑ µµ±¸ÀÌ´Ù.
ipcrm <msg | sem | shm> <IPC ID>
Áö¿ï °´Ã¼°¡ ¸Þ¼¼Áö Å¥(msg)ÀÎÁö ¼¼¸¶ÆÛ(sem)ÀÎÁö °øÀ¯ ¸Þ¸ð¸®(shm)ÀÎÁö¸¦ °£´ÜÈ÷ ÁöÁ¤ÇÑ´Ù. IPC ID´Â ipcs ¸í·É¾î·Î ±¸ÇÒ ¼ö ÀÖ´Ù. È®ÀÎÀÚ´Â °°Àº ŸÀԾȿ¡¼¸¸ À¯ÀÏÇÔÀ¸·Î °´Ã¼ÀÇ Å¸ÀÔÀ» ÁöÁ¤ÇØ ÁÖ¾î¾ß¸¸ ÇÑ´Ù. (¾ÕÀÇ ³»¿ëÀ» »ó±âÇ϶ó)
Copyright (c) 1996,1997 by Euibeom.Hwang & SangEun.Oh All Rights Reserved
Email To:Webmaster ,
Another address
LAST UPDATE Nov 18,1997
Created Nov 17,1997