ID 013008
Á¦¸ñ message queue parameter ¼³Á¤Çϱâ
ºÐ·ù OS
Product  
O/S Solaris 2.x
Å°¿öµå message queue Q /etc/system msginfo msgsys msgmap msgmax msgmnb msgmni msgssz msgtql msgseg

1. message queue °³·« ¼³¸í Name Default Max Brief Description ------ ------- -------------- ------------------------------------- msgmap 100 2147483647 ¸Þ¼¼Áö map¿¡ ÀÖ´Â entry °¹¼ö msgmax 2048 2147483647* ¸Þ¼¼Áö ÃÖ´ë Å©±â msgmnb 4096 2147483647* ¸Þ¼¼Áö Å¥ÀÇ ÃÖ´ë Å©±â msgmni 50 2147483647 ¸Þ¼¼Áö Å¥ identifierÀÇ °¹¼ö msgssz 8 2147483647* ¸Þ¼¼Áö segmentÀÇ Å©±â msgtql 40 2147483647 ½Ã½ºÅÛ ¸Þ¼¼Áö Çì´õ °¹¼ö msgseg 1024 32767* ¸Þ¼¼Áö segmentÀÇ ¼ö (MUST BE < 32768) 2. message queue ¼¼ºÎ ¼³¸í msgmap ¸Þ¼¼Áö Å¥ resource mapÀÇ Å©±â¸¦ Á¤ÀÇÇÑ´Ù. ÀÌ map¿¡ ÀÖ´Â ÇϳªÀÇ entry´Â ¿¬¼ÓÀûÀÎ °¡¿ëÇÑ °ø°£¸¦ Â÷ÁöÇÑ´Ù. ÀÌ°ÍÀº msgsnd(2) ½Ã½ºÅÛ ÄÝ¿¡ ÀÇÇØ ¾ò¾îÁö´Â ¸Þ¼¼Áö Å¥ segment¸¦ À§ÇÑ °ø°£À¸·Î »ç¿ëµÈ´Ù. msgmax ÇϳªÀÇ ¸Þ¼¼Áö¿¡ ´ëÇÑ Å©±â¸¦ Á¦ÇÑÇÑ´Ù. ¸Þ¼¼ÁöÀÇ Å©±â°¡ ÀÌ °ªº¸´Ù Å©¸é msgsnd(2) ½Ã½ºÅÛ ÄÝÀº EINVAL ¿À·ù°ªÀ» ¸®ÅÏÇÑ´Ù. ÀÌ °ªÀº ÃÖ´ë 2GB±îÁö »ç¿ëÇÒ ¼ö ÀÖÁö¸¸ ½Ã½ºÅÛÀÇ ´Ù¸¥ ¿ä¼ÒµéÀÌ 65535·Î Á¦ÇÑµÈ °ÍÀÌ Àֱ⠶§¹®¿¡ 65535º¸´Ù Å« °ªÀ» »ç¿ëÇÒ °æ¿ì¿¡ ¿¹±âÄ¡ ¸øÇÑ °á°ú°¡ ¹ß»ýÇÒ ¼ö µµ ÀÖ´Ù. msgmnb ÇϳªÀÇ ¸Þ¼¼Áö Å¥°¡ ¼ö¿ëÇÒ ¼ö ÀÖ´Â ¸Þ¼¼ÁöÀÇ ÃÖ´ë Å©±â¸¦ Á¦ÇÑÇÑ´Ù. ÀÌ °ªÀº ¸Þ¼¼Áö Å¥¿¡ º¸°üµÇ¾î ÀÖ´Â ¸Þ¼¼ÁöµéÀÇ Å©±â(byte)ÀÇ ÇÕ°èÀÌ´Ù. À§¿¡ ±â¼úµÈ ÃÖ´ë°ªÀº Solaris 2.4 ÀÌ»óÀÇ ¹öÀüÀÌ°í, ±× ÀÌÀüÀÇ ¹öÀü¿¡¼­´Â ÃÖ´ë°ªÀÌ 65535·Î Á¦ÇѵȴÙ. msgmni ½Ã½ºÅÛ¿¡ °¡¿ëÇÑ ¸Þ¼¼Áö Å¥ identifierÀÇ °¹¼ö¸¦ Á¤ÀÇÇÑ´Ù. ½Ã½ºÅÛÀº ÀÌ °ª¸¸Å­ÀÇ msgmni control structure¿¡ ÇØ´çµÇ´Â Ä¿³Î ¸Þ¸ð¸®¸¦ ¹Ì¸® ÇÒ´çÇÑ´Ù. ÇϳªÀÇ control structure´Â 144 ¹ÙÀÌÆ®ÀÌ´Ù. msgtql ½Ã½ºÅÛ¿¡¼­ °¡¿ëÇÑ ¸Þ¼¼Áö Å¥ Çì´õ¸¦ °¹¼ö¸¦ Á¤ÀÇÇÑ´Ù. ¸Þ¼¼Áö Å¥¿¡ µé¾î ÀÖÁö¸¸ ¾ÆÁ÷ ÀÐÇôÁöÁö ¾ÊÀº ¸Þ¼¼Áö´Â ÇϳªÀÇ ¸Þ¼¼Áö Å¥ Çì´õ¸¦ Â÷ÁöÇÑ´Ù. ½Ã½ºÅÛÀº ÀÌ °ª¸¸Å­ÀÇ msgtql control structure¿¡ ÇØ´çµÇ´Â Ä¿³Î ¸Þ¸ð¸®¸¦ ¹Ì¸® ÇÒ´çÇÑ´Ù. ÇϳªÀÇ control structure´Â 12 ¹ÙÀÌÆ®ÀÌ´Ù. msgssz & msgseg ÀÌ µÎ°³ÀÇ °ª¿¡ ÀÇÇÏ¿©, ¸ðµç Å¥¿¡ ÀÖ´Â ¸ðµç ¸Þ¼¼Áö¿¡ ´ëÇÑ °¡¿ëÇÑ Àüü ¹ÙÀÌÆ® ¼ö¸¦ Á¤ÀÇÇÑ´Ù. ½Ã½ºÅÛÀº ¸Þ¼¼Áö Å¥µé¿¡ ´ëÇÏ¿© Ä¿³Î ¸Þ¸ð¸®¸¦ ¹Ì¸® ÇÒ´çÇÑ´Ù. ¸Þ¸ð¸®ÀÇ ÃÑÇÕÀº msgssz * msgsseg ÀÌ´Ù. msgssz * msgssegÀÇ °ªÀº 2147483647À» ³Ñ¾î¼­´Â ¾ÈµÈ´Ù. 3. message queue parameter ¼³Á¤Çϱâ message queue parameter¸¦ ½Ã½ºÅÛ¿¡ ¼³Á¤ÇÏ·Á¸é /etc/system È­ÀÏ¿¡ ´ÙÀ½°ú °°Àº ¶óÀÎÀ» Ãß°¡ÇÏ°í, ½Ã½ºÅÛÀ» rebootingÇÏ¸é º¯°æ»çÇ×ÀÌ ¹Ý¿µµÈ´Ù. set msgsys:msginfo_variable = value ¿©±â¼­ 'variable'Àº À§¿¡¼­ ¼³¸íÇÑ Name Çʵ忡 ÀÖ´Â °ªÀÌ´Ù. ¿¹¸¦ µé¸é, set msgsys:msginfo_msgmap = 150 msgmap(message queue resource map)ÀÇ °ªÀ» 150À¸·Î º¯°æÇÑ´Ù. 4. message queue parameter °ªÀ» Á¶»çÇϱ⠽ýºÅÛ¿¡ ¼³Á¤µÇ¾î ÀÖ´Â message queue parameterÀÇ °ªÀº 'sysdef' ¸í·É¾î·Î È®ÀÎÇÒ ¼ö ÀÖ´Ù. $ sysdef .... Skip .... * * IPC Semaphores * 100 entries in msg map (MSGMAP) 2048 max message size (MSGMAX) 4096 max bytes on queue (MSGMNB) 50 message queue identifiers (MSGMNI) 8 message segment size (MSGSSZ) 40 system message headers (MSGTQL) 1024 message segments (MSGSEG) .... Skip .... À§¿¡ ÀÖ´Â °ªµéÀÌ 0·Î º¸ÀÏ ¼ö µµ ÀÖ´Ù. ÀÌ °æ¿ì´Â message queue moduleÀÌ Ä¿³Î¿¡ ¿Ã¶ó¿Í ÀÖÁö ¾Ê±â ¶§¹®ÀÌ´Ù. Solaris 2.x¿¡¼­´Â dynamic kernelÀ» »ç¿ëÇÑ´Ù. ÀÌ´Â kernel moduleµéÀÌ »ç¿ëµÉ ¶§, kernel¿¡ °áÇյǰí, »ç¿ëÇÏÁö ¾ÊÀ¸¸é Ä¿³Î¿¡¼­ Á¦°ÅµÈ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. °­Á¦ÀûÀ¸·Î message queue moduleÀ» Ä¿³Î¿¡ loadÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ 'modload'¸í·É¾î¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. # modload -p sys/msgsys ±×¸®°í ´Ù½Ã sysdef ¸í·É¾î´Â »ç¿ëÇϸé, message queue parameter¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Ù. 5. Ä¿³Î ¸Þ¸ð¸®ÀÇ Á¦¾à Solaris 2.5 ÀÌ»ó ¹öÀü¿¡¼­´Â message queue°¡ ¸Þ¸ð¸®ÀÇ 1/4 ÀÌ»óÀÌ ÇÒ´çµÇÁö ¸øÇϵµ·Ï Çϸç, ±× ÀÌ»óÀÌ ÇÒ´çµÇ¸é °æ°í ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÏ°í, message queue moduleÀ» loadÇÏÁö ¾Ê´Â´Ù. 6. Âü°í ¹®Çå ½Ã½ºÅÛ¿¡ ¼³Ä¡µÈ ¸Þ´º¾ó ÆäÀÌÁö¸¦ Âü°íÇÑ´Ù. msgget(2), msgctl(2), msgop(2), msgsnd(2), msgrcv(2) ¿¹Á¦) man msgget