¤³¤Î¾Ï¤ÎÌܼ¡¤Ë¤â¤É¤ë
Á°ÊÇ:Âè1¾Ï ¼þÊճˤˤâ¤É¤ë
¼¡ÊÇ:1.2 ¥á¥Ã¥»¡¼¥¸´ÉÍý¤Ë¤¹¤¹¤à
¥×¥í¥»¥¹ / ¥¿¥¹¥¯´ÉÍýµ¡Ç½¤Ç¤Ï¡¢ ¥·¥ó¥°¥ë¥æ¡¼¥¶ / ¥Þ¥ë¥Á¥×¥í¥»¥¹¤Î¥·¥¹¥Æ¥à¤ò¼Â¸½¤¹¤ë¤¿¤á¤ËɬÍפʳƼï¤Îµ¡Ç½¤òÄ󶡤·¤Æ¤¤¤ë¡£
¥×¥í¥»¥¹¤È¤Ï¥×¥í¥°¥é¥à¤ò OS ¤¬´ÉÍý¤¹¤ëñ°Ì¤Ç¤¢¤ê¡¢ 1 ¤Ä¤Î¥Þ¥·¥ó¾å¤ËÊ£¿ô¤Î¥×¥í¥»¥¹¤¬Â¸ºß¤¹¤ë¡£
¥¿¥¹¥¯¤È¤Ï¥×¥í¥°¥é¥à¤Î¼Â¹Ôñ°Ì¤Ç¤¢¤ê¡¢ 1 ¤Ä¤Î¥×¥í¥»¥¹¤Ë¤Ï 1 ¤Ä¤Þ¤¿¤ÏÊ£¿ô¤Î¥¿¥¹¥¯¤¬Â¸ºß¤·¡¢ Í¥ÀèÅٽ礪¤è¤Ó»þʬ³ä¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Ë¤è¤êƱ»þ¤Ë¼Â¹Ô¤µ¤ì¤ë¡£
1 ¤Ä¤Î¥×¥í¥»¥¹¤Ï´ðËÜŪ¤Ë²¼¿Þ¤Ë¼¨¤¹¤è¤¦¤ÊÆÈΩ¤·¤¿¥¢¥É¥ì¥¹¶õ´Ö¤ò»ý¤Ä¡£

¥×¥í¥»¥¹¤¬À¸À®¤µ¤ì¤ë¤È¡¢ ¥á¥¤¥ó¥¿¥¹¥¯¤¬¼Â¹Ô¤ò³«»Ï¤¹¤ë¡£ ¥á¥¤¥ó¥¿¥¹¥¯¤Ë¤è¤Ã¤Æ¥µ¥Ö¥¿¥¹¥¯¤òµ¯Æ°¤¹¤ë¤³¤È¤Ç¡¢ 1 ¤Ä¤Î¥×¥í¥»¥¹Æâ¤ËÊ£¿ô¤Î¥¿¥¹¥¯¤¬Â¸ºß¤¹¤ë¾õÂ֤ˤʤ롣 ¤Ä¤Þ¤ê¡¢¥×¥í¥»¥¹¤Ë¤Ï 1 ¤Ä¤Î¥á¥¤¥ó¥¿¥¹¥¯¤È 0 ¸Ä°Ê¾å¤Î¥µ¥Ö¥¿¥¹¥¯¤¬Æ±»þ¤Ë¸ºß¤¹¤ë¡£
¥á¥¤¥ó¥¿¥¹¥¯¤È¥µ¥Ö¥¿¥¹¥¯¤òÁí¾Î¤·¤Æ¥¿¥¹¥¯¤È¸Æ¤Ö¡£ ¥¿¥¹¥¯¤Ï¥¿¥¹¥¯ID¤Ë¤è¤ê¼±Ê̤µ¤ì¤ë¡£ ¥¿¥¹¥¯ID¤ÏÀµ¤ÎÀ°¿ô¤È¤Ê¤ë¡£
¥·¥¹¥Æ¥à¤ÎΩ¾å¤²»þ¤Ë¡¢¤Þ¤º½é´ü¥×¥í¥»¥¹¤¬À¸À®¤µ¤ì¡¢ ½é´ü¥×¥í¥»¥¹¤¬½ç¼¡É¬Í×¤Ê¥×¥í¥»¥¹¤òÀ¸À®¤·¤Æ¤¤¤¯¤³¤È¤Ë¤Ê¤ë¡£ ¼«Ê¬¤¬À¸À®¤·¤¿¥×¥í¥»¥¹¤ò»Ò¥×¥í¥»¥¹¤È¸Æ¤Ó¡¢ ¼«Ê¬¤òÀ¸À®¤·¤Æ¤¯¤ì¤¿¥×¥í¥»¥¹¤ò¿Æ¥×¥í¥»¥¹¤È¸Æ¤Ö ( ½é´ü¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹¤Ï¸ºß¤·¤Ê¤¤ )¡£ ½¾¤Ã¤Æ¡¢¥·¥¹¥Æ¥àÁ´ÂΤȤ·¤Æ¤Ï¡¢ ½é´ü¥×¥í¥»¥¹¤ò¥ë¡¼¥È¤È¤¹¤ëÌÚ¹½Â¤¤Î¥×¥í¥»¥¹¹½Â¤¤ò¤È¤ë¡£
¤¢¤ë¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ ¤½¤Î»Ò¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹¤Ï½ªÎ»¤·¤¿¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹¤ËÆþ¤ì´¹¤ê¡¢ Á´ÂΤȤ·¤ÆÌÚ¹½Â¤¤ÏÊݤ¿¤ì¤ë¤³¤È¤Ë¤Ê¤ë¤¬¡¢ Î㳰Ū¤Ë½é´ü¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ ¤½¤Î»Ò¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹¤Ï¸ºß¤·¤Ê¤¤¾õÂ֤Ȥʤ롣
¥×¥í¥»¥¹¤Î¾õÂ֤Ȥ·¤Æ°Ê²¼¤Î 4 ¤Ä¤Î´ðËܾõÂÖ¤¬ÄêµÁ¤µ¤ì¤ë¡£
¥×¥í¥»¥¹¤Î¾õÂ֤ϡ¢¥á¥¤¥ó¥¿¥¹¥¯¤Î¾õÂ֤Ǥ¢¤ë¡£
| ̤À¸À®¾õÂÖ | (Non-Existent) | -- ¥×¥í¥»¥¹¤ÏÀ¸À®¤µ¤ì¤Æ¤¤¤Ê¤¤¾õÂÖ |
| ¼Â¹Ô²Äǽ¾õÂÖ | (Ready) | -- ¼Â¹Ô²Äǽ¤Ç¥Ç¥£¥¹¥Ñ¥Ã¥ÁÂÔ¤Á¾õÂÖ |
| ¼Â¹Ô¾õÂÖ | (Run) | -- ¼Â¹ÔÃæ¾õÂÖ |
| ÂÔ¤Á¾õÂÖ | (Wait) | -- ¥á¥Ã¥»¡¼¥¸¡¢»þ´Ö¡¢Æþ½ÐÎÏÅù¤ÎÂÔ¤Á¾õÂÖ |
¥×¥í¥»¥¹¤Î³Æ¾õÂ֤ϳƼï¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¡¢ ¥¹¥±¥¸¥å¡¼¥ê¥ó¥° ( ¥Ç¥£¥¹¥Ñ¥Ã¥Á¡¢¥×¥ê¥¨¥ó¥×¥È ) ¤Ë¤è¤ê°Ê²¼¤Î¤è¤¦¤ËÁ«°Ü¤¹¤ë¡£

typedef struct {
UW state; /* ¥×¥í¥»¥¹¾õÂÖ */
W priority; /* ¸½ºß¤Î¥×¥í¥»¥¹Í¥ÀèÅÙ( 0 ¡Á 255 ) */
W parpid; /* ¿Æ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID */
} P_STATE;
¥×¥í¥»¥¹¤Î¾õÂÖ ( state ) ¤Ï°Ê²¼¤ÎÆâÍÆ¤Ç¤¢¤ê¡¢ ¤½¤ì¤¾¤ì "1"
¤Ç¤½¤Î¾õÂ֤ˤ¢¤ë¤³¤È¤ò¼¨¤¹¡£

¥×¥í¥»¥¹¤Î½ªÎ»¤Ë¤è¤ê¡¢¤¹¤Ù¤Æ¤Î¥¿¥¹¥¯¤¬½ªÎ»¤¹¤ë¡£ ¤Þ¤¿¡¢¥á¥¤¥ó¥¿¥¹¥¯¤Î½ªÎ»¤Ë¤è¤ê¡¢¤¹¤Ù¤Æ¤Î¥µ¥Ö¥¿¥¹¥¯¤¬¶¯À©½ªÎ»¤µ¤ì¡¢ ¥×¥í¥»¥¹¤Î½ªÎ»¤È¤Ê¤ë¡£¥µ¥Ö¥¿¥¹¥¯¤Î½ªÎ»¤Ï¡¢¥×¥í¥»¥¹¤Î½ªÎ»¤Ë¤Ï¤Ê¤é¤Ê¤¤¡£
¥×¥í¥»¥¹¤Ë¤Ï¡¢À¸À®»þ¤Ë 0 ¡Á 255 ( 0 ¤¬ºÇ¹âÍ¥ÀèÅÙ ) ¤ÎÍ¥ÀèÅÙ¤¬Í¿¤¨¤é¤ì¤ë¡£ ¤³¤ÎÍ¥ÀèÅ٤ϥᥤ¥ó¥¿¥¹¥¯¤ÎÍ¥ÀèÅ٤Ȥʤ롣 ¥×¥í¥»¥¹Í¥ÀèÅ٤ȸÀ¤Ã¤¿¾ì¹ç¡¢¤½¤ì¤Ï¥á¥¤¥ó¥¿¥¹¥¯¤ÎÍ¥ÀèÅÙ¤ÈÅù²Á¤Ç¤¢¤ë¡£ ³Æ¥×¥í¥»¥¹¤Ï¤½¤ÎÍ¥ÀèÅ٤ˤè¤ê¡¢²¼µ¤Î3¤Ä¤Î¥°¥ë¡¼¥×¤ËʬÎव¤ì¤ë¡£
¤Þ¤¿¡¢¥µ¥Ö¥¿¥¹¥¯¤Ë¤â¥¿¥¹¥¯À¸À®»þ¤ËÍ¥ÀèÅÙ¤¬Í¿¤¨¤é¤ì¤ë¡£
³Æ¥¿¥¹¥¯¤Ï¡¢¤½¤ÎÍ¥ÀèÅ٤˽¾¤Ã¤Æ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤¬¹Ô¤Ê¤ï¤ì¤ë¡£
¸·Ì©¤ËÍ¥ÀèÅÙ½ç¤Ë¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì(0¤¬ºÇ¹âÍ¥ÀèÅÙ)¡¢ Ʊ°ìÍ¥ÀèÅ٤ξì¹ç¤Ï¡¢ ¥é¥¦¥ó¥É¥í¥Ó¥óÊý¼°¤ÇÊ¿Åù¤Ë¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤ë¡£
¤³¤Î¥°¥ë¡¼¥×ÆâÁ´ÂΤǥ饦¥ó¥É¥í¥Ó¥ó¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤¬¹Ô¤Ê¤ï¤ì¡¢ Í¥ÀèÅÙ¤ÏÁêÂÐŪ¤Ê¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ÎÉÑÅÙ¤ò¼¨¤¹
(128¤¬ºÇ¹âÍ¥ÀèÅÙ) ¡£
½¾¤Ã¤Æ¡¢Í¥ÀèÅÙ¤¬Ä㤤¥¿¥¹¥¯¤Ç¤âɬ¤º¼Â¹Ô¤µ¤ì¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£
¤³¤Î¥°¥ë¡¼¥×ÆâÁ´ÂΤǥ饦¥ó¥É¥í¥Ó¥ó¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤¬¹Ô¤Ê¤ï¤ì¡¢ Í¥ÀèÅÙ¤ÏÁêÂÐŪ¤Ê¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ÎÉÑÅÙ¤ò¼¨¤¹
(192¤¬ºÇ¹âÍ¥ÀèÅÙ)¡£
½¾¤Ã¤Æ¡¢Í¥ÀèÅÙ¤¬Ä㤤¥¿¥¹¥¯¤Ç¤âɬ¤º¼Â¹Ô¤µ¤ì¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£
¼ÂºÝ¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Ï¡¢Á´ÂΤȤ·¤Æ°Ê²¼¤Î¤è¤¦¤Ë¹Ô¤Ê¤ï¤ì¤ë¡£
ÀäÂÐÍ¥ÀèÅÙ¥°¥ë¡¼¥×¤Ë°¤¹¤ë¼Â¹Ô²Äǽ¾õÂ֤Υ¿¥¹¥¯¤¬¤¢¤ì¤Ð¡¢ ¤½¤ÎÃæ¤ÎºÇ¹âÍ¥ÀèÅ٤Υ¿¥¹¥¯¤ò¼Â¹Ô¾õÂ֤Ȥ·¡¢ ¼Â¹Ô¤¹¤ë¡£¤Ê¤±¤ì¤Ð¡¢2. ¤Ø¿Ê¤à¡£
¥é¥¦¥ó¥É¥í¥Ó¥ó¥°¥ë¡¼¥× 1 ¤Ë°¤¹¤ë¼Â¹Ô²Äǽ¾õÂ֤Υ¿¥¹¥¯¤¬¤¢¤ì¤Ð¡¢ ¤½¤ÎÃæ¤ÎÁêÂÐÍ¥ÀèÅ٤˽¾¤Ã¤Æ¡¢ ÁªÂò¤µ¤ì¤¿¥¿¥¹¥¯¤ò¼Â¹Ô¾õÂ֤Ȥ·¡¢ ¼Â¹Ô¤¹¤ë(ºÇ¹âÍ¥ÀèÅ٤Ȥϸ¤é¤Ê¤¤)¡£ ¤Ê¤±¤ì¤Ð¡¢2. ¤Ø¿Ê¤à¡£
¥é¥¦¥ó¥É¥í¥Ó¥ó¥°¥ë¡¼¥× 2 ¤Ë°¤¹¤ë¼Â¹Ô²Äǽ¾õÂ֤Υ¿¥¹¥¯¤¬¤¢¤ì¤Ð¡¢ ¤½¤ÎÃæ¤ÎÁêÂÐÍ¥ÀèÅ٤˽¾¤Ã¤Æ¡¢ÁªÂò¤µ¤ì¤¿¥¿¥¹¥¯¤ò¼Â¹Ô¾õÂ֤Ȥ·¡¢ ¼Â¹Ô¤¹¤ë(ºÇ¹âÍ¥ÀèÅ٤Ȥϸ¤é¤Ê¤¤)¡£ ¤Ê¤±¤ì¤Ð¡¢¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ò»Ï¤á¤«¤é¤ä¤êľ¤¹¡£
Ä̾ÀäÂÐÍ¥ÀèÅÙ¥°¥ë¡¼¥×¤Ï¡¢¥·¥¹¥Æ¥à¥×¥í¥»¥¹¤ä¥ê¥¢¥ë¥¿¥¤¥à¥×¥í¥»¥¹¤Ë»ÈÍѤµ¤ì¡¢ °ìÈ̤Υ¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥»¥¹¤Ï¥é¥¦¥ó¥É¥í¥Ó¥ó¥°¥ë¡¼¥× 1¡¢¤Þ¤¿¤Ï 2 ¤ò»ÈÍѤ¹¤ë¡£
°ìÅÙÀ¸À®¤µ¤ì¤¿¥×¥í¥»¥¹ / ¥¿¥¹¥¯¤ÎÍ¥ÀèÅÙ¤ÎÊѹ¹¤Ï¡¢ Ʊ°ì¥°¥ë¡¼¥×Æâ¤Ç¤Î¤ß²Äǽ¤Ç¤¢¤ê¡¢ ¥°¥ë¡¼¥×¤¬°Û¤Ê¤ëÍ¥ÀèÅ٤ؤÎÊѹ¹¤Ï¤Ç¤¤Ê¤¤¡£
¥×¥í¥»¥¹¤Ë¤Ï¡¢¤½¤Î¼Â¹Ô´Ä¶¤È¤·¤Æ°Ê²¼¤Î¤è¤¦¤Ê¾ðÊó¤¬ÊÝ»ý¤µ¤ì¤Æ¤¤¤ë¡£
¥×¥í¥»¥¹¤òÀ¸À®¤·¤¿¾ì¹ç(cre_prc)¤Ï¡¢ À¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Î¼Â¹Ô´Ä¶¤Ï°Ê²¼¤Î¤è¤¦¤ËÀßÄꤵ¤ì¤ë¡£
| ¼«Ê¬ / ¿Æ / »Ò¤Î¥×¥í¥»¥¹ ID | ¼«Ê¬ / ¿Æ¤Î¥×¥í¥»¥¹ ID |
| ¥×¥í¥»¥¹¤ÎÍ¥ÀèÅÙ | À¸À®»þ¤Ë»ØÄꤷ¤¿Í¥ÀèÅÙ |
| ¥æ¡¼¥¶¾ðÊó | À¸À®»þ¤Î¿Æ¥×¥í¥»¥¹¤Î¥æ¡¼¥¶¾ðÊó |
| ¸½ºß¤Îºî¶È¥Õ¥¡¥¤¥ë | À¸À®»þ¤Î¿Æ¥×¥í¥»¥¹¤Îºî¶È¥Õ¥¡¥¤¥ë |
| ¥ª¡¼¥×¥óÃæ¤Î¥Õ¥¡¥¤¥ë | ̵¤· |
| ¥á¥Ã¥»¡¼¥¸¥¥å¡¼ | ¶õ |
¥æ¡¼¥¶¾ðÊó¤Ï¡¢ ¤½¤Î¥×¥í¥»¥¹¤òÀ¸À®¤·¤Æ»ÈÍѤ·¤Æ¤¤¤ë¥æ¡¼¥¶¤Ë´Ø¤¹¤ë¾ðÊó¤Ç¤¢¤ê¡¢ °Ê²¼¤Ë¼¨¤¹ÆâÍÆ¤ò»ý¤Ä¡£
¥æ¡¼¥¶¤Î̾¾Î¤Ç¤¢¤ê¡¢12 ʸ»ú¤Î̾Á°¤Î¸å¤Ë 2 ʸ»úʬ ( 32 ¥Ó¥Ã¥È ) ¤Î±£¤·Ì¾¤òÉÕ¤±¤¿¤â¤Î¤Ç¤¢¤ë¡£ 12 ʸ»ú¤è¤ê¾¯¤Ê¤¤Ì¾Á°¤Î¾ì¹ç¤Ï 0 ¤¬¥Ñ¥Ã¥É¤µ¤ì¡¢Ì¾Á°¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢14 ʸ»ú¤¬¤¹¤Ù¤Æ 0 ¤È¤Ê¤ë¡£
¥æ¡¼¥¶¤¬½ê°¤¹¤ë 4 ¤Ä¤Î¥°¥ë¡¼¥×¤Î̾¾Î¤Ç¤¢¤ê¡¢ ¤½¤ì¤¾¤ì 12 ʸ»ú¤Î̾Á°¤Î¸å¤Ë 2 ʸ»úʬ ( 32 ¥Ó¥Ã¥È) ¤Î±£¤·Ì¾¤òÉÕ¤±¤¿¤â¤Î¤Ç¤¢¤ë¡£ 12 ʸ»ú¤è¤ê¾¯¤Ê¤¤Ì¾Á°¤Î¾ì¹ç¤Ï 0 ¤¬¥Ñ¥Ã¥É¤µ¤ì¡¢ ̾Á°¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢14 ʸ»ú¤¬¤¹¤Ù¤Æ 0 ¤È¤Ê¤ë¡£
¥æ¡¼¥¶¤ÎÆÃ¸¢¥ì¥Ù¥ë¤Ç¤¢¤ê¡¢0 ¡Á 15 ¤ÎÈϰϤÎÃͤò¼è¤ê¡¢ 0 ¤¬ºÇ¹â¥ì¥Ù¥ë¤È¤Ê¤ë¡£
¥Í¥Ã¥È¥ï¡¼¥¯·Ðͳ¤Ç¾¤Î¥Þ¥·¥ó¤ò¥¢¥¯¥»¥¹¤¹¤ë¾ì¹ç¤Î¥æ¡¼¥¶¥ì¥Ù¥ë¤Ç¡¢ 1 ¡Á 15 ¤ÎÈϰϤÎÃͤò¼è¤ê¡¢ 1 ¤¬ºÇ¹â¥ì¥Ù¥ë¤Ç¤¢¤ë¡£¤³¤Î¾ì¹ç¡¢ ¥Í¥Ã¥È¥ï¡¼¥¯¥æ¡¼¥¶¥ì¥Ù¥ë¤Î 0 ¤ÏŬÍѤµ¤ì¤Ê¤¤¡£
¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¾ì¹ç¤Î¥Ç¥Õ¥©¡¼¥ë¥È¤Î¥¢¥¯¥»¥¹¥â¡¼¥É¡£
¥æ¡¼¥¶¾ðÊó¤Ï¡¢ °Ê²¼¤Ë¼¨¤¹¹½Â¤ÂΤÇÄêµÁ¤µ¤ì¡¢ ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤ê¼è½Ð¤· / ÀßÄ꤬²Äǽ¤Ç¤¢¤ë¡£ ¤¿¤À¤·¡¢±£¤·Ì¾¤ò¼è¤ê½Ð¤¹¤³¤È¤Ï¤Ç¤¤º¡¢ ±£¤·Ì¾¤ÎÉôʬ¤Ë¤Ï¾ï¤Ë 0 ¤¬ÆÀ¤é¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£
typedef struct {
TC usr_name[14]; /*¥æ¡¼¥¶Ì¾(12ʸ»ú¡Ü±£¤·Ì¾2ʸ»ú)*/
TC grp_name1[14]; /*¥°¥ë¡¼¥×̾1(12ʸ»ú¡Ü±£¤·Ì¾2ʸ»ú)*/
TC grp_name2[14]; /*¥°¥ë¡¼¥×̾2(12ʸ»ú¡Ü±£¤·Ì¾2ʸ»ú)*/
TC grp_name3[14]; /*¥°¥ë¡¼¥×̾3(12ʸ»ú¡Ü±£¤·Ì¾2ʸ»ú)*/
TC grp_name4[14]; /*¥°¥ë¡¼¥×̾4(12ʸ»ú¡Ü±£¤·Ì¾2ʸ»ú)*/
W level; /*¥æ¡¼¥¶¥ì¥Ù¥ë(0¡Á15)*/
W net_level; /*¥Í¥Ã¥È¥ï¡¼¥¯¥æ¡¼¥¶¥ì¥Ù¥ë(1¡Á15)*/
} P_USER;
½é´ü¥×¥í¥»¥¹¤Î¥æ¡¼¥¶¾ðÊó¤Ï¡¢Åö½é¤Ï¥·¥¹¥Æ¥à¤ÇÄêµÁ¤µ¤ì¤¿¸ÇÄêŪ¤ÊÆâÍÆ¤ò»ý¤Ä¤¬¡¢ ¤½¤Î¸å¡¢¥æ¡¼¥¶¡¼¤¬³ÎÄꤷ¤¿»þÅÀ¤Ç¡¢¼ÂºÝ¤Î¥æ¡¼¥¶¾ðÊó¤¬ÀßÄꤵ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£
¥×¥í¥»¥¹¤ÎÀ¸À®¤Ï¡¢ÂоݤȤ¹¤ë¥Õ¥¡¥¤¥ë¡¢¥×¥í¥»¥¹¤ÎÍ¥ÀèÅÙ¡¢ ¤ª¤è¤Ó¥×¥í¥»¥¹¤ËÅϤ¹¥á¥Ã¥»¡¼¥¸¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤ê¹Ô¤Ê¤ï¤ì¤ë¡£
»ØÄꤷ¤¿¥Õ¥¡¥¤¥ëÆâ¤ÎºÇ½é¤Î¼Â¹Ô¥×¥í¥°¥é¥à¥ì¥³¡¼¥É¤ÎÆâÍÆ¤¬À¸À®¤¹¤ë¥×¥í¥»¥¹¤Î¥×¥í¥°¥é¥à¥³¡¼¥É¤È¤Ê¤ë¡£ ¼Â¹Ô¥×¥í¥°¥é¥à¥ì¥³¡¼¥É¤Ï¡¢ÀèÆ¬¥ì¥³¡¼¥É¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
¥×¥í¥»¥¹¤ËÅϤ¹¥á¥Ã¥»¡¼¥¸¤Ï°Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç»ØÄꤵ¤ì¤ë¡£ ¤³¤ì¤Ï¥×¥í¥»¥¹´Ö¥á¥Ã¥»¡¼¥¸¤ÈƱ°ì¤Î¹½Â¤¤ò»ý¤Ä¡£
typedef struct {
W msg_type; /*¥á¥Ã¥»¡¼¥¸¥¿¥¤¥×*/
W msg_size; /*¥á¥Ã¥»¡¼¥¸¥µ¥¤¥º(¥Ð¥¤¥È¿ô)*/
UB msg_body[n]; /*¥á¥Ã¥»¡¼¥¸ËÜÂÎ(msg_size ¥Ð¥¤¥È)*/
} MESSAGE;
À¸À®¤µ¤ì¤¿¥×¥í¥»¥¹¤Ï°Ê²¼¤Ë¼¨¤¹2¤Ä¤Î¤É¤Á¤é¤«¤Î·Á¼°¤Ë¤è¤ê¡¢ ¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¼è¤ë¤³¤È¤¬¤Ç¤¤ë
( ¤¿¤À¤·¡¢·Á¼°-B ¤Ï¡¢¼ÂºÝ¤Ë¤Ï¥é¥¤¥Ö¥é¥ê¤È¤·¤Æ¼Â¸½¤µ¤ì¤ë )¡£
MAIN() ¤ª¤è¤Ó main() ¤«¤é¤Î¥ê¥¿¡¼¥ó¤Ï¥×¥í¥»¥¹¤Î½ªÎ»¤È¤Ê¤ê¡¢
ext_prc() ¤Ë¤è¤ë½ªÎ»¤ÈƱÅù¤Ç¤¢¤ë¡£ ½ªÎ»¥³¡¼¥É¤Ï¡¢Àµ¾ï½ªÎ»¥á¥Ã¥»¡¼¥¸¤ËÀßÄꤵ¤ì¡¢¿Æ¥×¥í¥»¥¹¤ËÄÌÃΤµ¤ì¤ë¡£
W MAIN (MESSAGE *msg)
/* MESSAGE *msg; ¥á¥Ã¥»¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿*/
{
< ¥×¥í¥°¥é¥à¤Î¼Â¹Ô¥³¡¼¥É >
return ½ªÎ»¥³¡¼¥É;
}
msg_type ¤Ë̵´Ø·¸¤Ë¤¹¤Ù¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¼è¤ë¤³¤È¤¬²Äǽ¡£
W main (W ac, TC **argv)
/* W ac; ʸ»úÎó¹àÌÜ¿ô*/
/* TC **argv; ʸ»úÎó¹àÌܤΥݥ¤¥ó¥¿ÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿*/
{
< ¥×¥í¥°¥é¥à¤Î¼Â¹Ô¥³¡¼¥É >
return ½ªÎ»¥³¡¼¥É;
}
À¸À®»þ¤Ë»ØÄꤷ¤¿¥á¥Ã¥»¡¼¥¸¤Î msg_type = 0 ¤Î¾ì¹ç¤Ë¤Î¤ß¡¢ ¤³¤Î·Á¼°¤¬Å¬ÍѲÄǽ¤Ç¡¢¤³¤Î¾ì¹ç¤Ï
msg_body[] ¤Ï TNULL ¤Ç½ªÎ»¤¹¤ë 1 ¤Ä¤Îʸ»úÎó¤È¸«¤Ê¤µ¤ì¤ë¡£
ʸ»úÎó¤Ï¶õÇò¤Ç¶èÀÚ¤é¤ì¡¢Ê£¿ô¤Î¹àÌܤËʬ²ò¤µ¤ì¤ë¡£ ¥×¥í¥°¥é¥à¤Ø¤Ï¡¢³Æ¹àÌܤÎʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤È¤·¤ÆÅϤµ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£
msg_body[] ¤¬ TNULL ¤Ç½ªÎ»¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢ ºÇ¸å¤Îʸ»ú¤Ï
TNULL ¤È¸«¤Ê¤µ¤ì¤ë¡£
¤³¤Î·Á¼°¤Î¾ì¹ç¤Ï¡¢À¸À®»þ¤Ë»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤Î msg_type ¡â 0 ¤Î»þ¤Ï¡¢ac=
0, *argv¡áNULL ¤È¤Ê¤ê¡¢ ¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¼è¤ë¤³¤È¤Ï¤Ç¤¤Ê¤¤¡£

main()¤Ç¤Î°ú¿ô¤Î¹½Â¤¥×¥í¥»¥¹¤ÏÊ£¿ô¤Î¥¿¥¹¥¯¤Ç¹½À®¤µ¤ì¤ë¤¿¤á¡¢ ³Æ¥¿¥¹¥¯¤¬Æ±»þʹÔŪ¤Ëưºî¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£ ¥¿¥¹¥¯¤Ï¡¢¥×¥í¥°¥é¥à¤Îή¤ì¤Ë±è¤Ã¤Æ¼Â¹Ô¤µ¤ì¤ë¤¬¡¢ Î㳰Ū¤Ë°Ê²¼¤Î¥Ï¥ó¥É¥é(´Ø¿ô)¤ÏÈ󯱴ü¤Ë³ä¤ê¹þ¤ó¤Ç¼Â¹Ô¤µ¤ì¤ë¡£
¥á¥Ã¥»¡¼¥¸¼õ¿®¤Ë¤è¤êÈ󯱴ü¤Ë¼Â¹Ô¤µ¤ì¤ë´Ø¿ô¡£
¼«¥×¥í¥»¥¹Æâ¤ÎÎ㳰ȯÀ¸¤Ë¤è¤êÈ󯱴ü¤Ë¼Â¹Ô¤µ¤ì¤ë´Ø¿ô¡£
¤³¤ì¤é¤Î´Ø¿ô¤Ï¤¤¤º¤ì¤â¥×¥í¥»¥¹¤Î°ìÉô¤È¤·¤Æ¡¢ ¤½¤Î¥×¥í¥»¥¹¤Î¥á¥â¥ê¶õ´Ö¡¢¤ª¤è¤Ó´Ä¶¤Î²¼¤Ç¼Â¹Ô¤µ¤ì¡¢ »ÈÍѲÄǽ¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ëÅù¤ÎÀ©¸Â¤ÏÆÃ¤Ë¤Ê¤¤¡£ ¼Â¹Ô½ªÎ»¸å¤Ï¡¢³ä¤ê¹þ¤Þ¤ì¤¿°ÌÃÖ¤ËÌá¤ë¤«¡¢ ¤Þ¤¿¤ÏǤ°Õ¤Î°ÌÃ֤˾ÀÜ¥¸¥ã¥ó¥×¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£
¥á¥Ã¥»¡¼¥¸¥Ï¥ó¥É¥é¤Î¾ÜºÙ¤Ë´Ø¤·¤Æ¤Ï¡Ö1.2.3 ¥á¥Ã¥»¡¼¥¸¥Ï¥ó¥É¥é¡×¤ò¡¢ Îã³°½èÍý¥Ï¥ó¥É¥é¤Î¾ÜºÙ¤Ë´Ø¤·¤Æ¤Ï¡Ö1.10 ¥·¥¹¥Æ¥à´ÉÍýµ¡Ç½¡×¤ò»²¾È¤Î¤³¤È¡£
¤Þ¤¿¡¢¥×¥í¥»¥¹¤Ï¤½¤Î¼Â¹Ô»þ¤Ë°Ê²¼¤Î¤è¤¦¤Ê¥×¥í¥»¥¹Åý·×¾ðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤¤ë¡£
typedef struct {
UW etime; /*Î߷׷вá»þ´Ö (ÉÃñ°Ì)*/
UW utime; /*¥×¥í¥»¥¹¤ÇÈñ¤ä¤·¤¿Îß·×CPU»þ´Ö*/
UW stime; /*¥·¥¹¥Æ¥à¤ÇÈñ¤ä¤·¤¿Îß·×CPU»þ´Ö*/
W tmem; /*¼Â¹Ô¤ËɬÍפȤ¹¤ëÁ´ÂΤΥá¥â¥ê¥µ¥¤¥º*/
W wmem; /*¸½ºß³ä¤êÉÕ¤±¤é¤ì¤Æ¤¤¤ë¼Â¥á¥â¥ê¥µ¥¤¥º*/
W resv[11]; /*ͽÌó*/
} P_INFO;
utime ¤È stime ¤Ï¡¢¥×¥í¥»¥¹¤Ë´Þ¤Þ¤ì¤ë¡¢ ¤½¤Î»þÅÀ¤Ç¸ºß¤¹¤ë¤¹¤Ù¤Æ¤Î¥¿¥¹¥¯¤Î¹ç·×»þ´Ö¤È¤Ê¤ë¡£
¤·¤¿¤¬¤Ã¤Æ¡¢¤½¤ì°ÊÁ°¤Ë½ªÎ»¤·¤¿¥¿¥¹¥¯¤¬Èñ¤ä¤·¤¿»þ´Ö¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ utime
¤È stime ¤ò¹ç·×¤·¤¿¤â¤Î¤¬¡¢ ¤½¤Î¥×¥í¥»¥¹¤¬Èñ¤ä¤·¤¿ÎßÀÑ CPU »þ´Ö¤È¤Ê¤ë¡£
typedef struct {
UW state; /* ¥×¥í¥»¥¹¾õÂÖ */
W priority; /* ¸½ºß¤Î¥×¥í¥»¥¹Í¥ÀèÅÙ( 0 ¡Á 255 ) */
W parpid; /* ¿Æ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID */
} P_STATE;
typedef struct {
TC usr_name[14]; /* ¥æ¡¼¥¶Ì¾(12ʸ»ú¡Ü±£¤·Ì¾2ʸ»ú) */
TC grp_name1[14]; /* ¥°¥ë¡¼¥×̾1(12ʸ»ú¡Ü±£¤·Ì¾2ʸ»ú) */
TC grp_name2[14]; /* ¥°¥ë¡¼¥×̾2(12ʸ»ú¡Ü±£¤·Ì¾2ʸ»ú) */
TC grp_name3[14]; /* ¥°¥ë¡¼¥×̾3(12ʸ»ú¡Ü±£¤·Ì¾2ʸ»ú) */
TC grp_name4[14]; /* ¥°¥ë¡¼¥×̾4(12ʸ»ú¡Ü±£¤·Ì¾2ʸ»ú) */
W level; /* ¥æ¡¼¥¶¥ì¥Ù¥ë(0 ¡Á 15) */
W net_level; /* ¥Í¥Ã¥È¥ï¡¼¥¯¥æ¡¼¥¶¥ì¥Ù¥ë(1¡Á15) */
} P_USER;
typedef struct {
UW etime; /* Î߷׷вá»þ´Ö (ÉÃñ°Ì) */
UW utime; /* ¥×¥í¥»¥¹¤ÇÈñ¤·¤¿Îß·×CPU»þ´Ö */
/* (OSÆâ¤Ç¤Î½èÍý»þ´Ö¤Ï½ü³°¤¹¤ë) */
/* (¥ß¥êÉÃñ°Ì) */
UW stime; /* ¥·¥¹¥Æ¥à¤ÇÈñ¤·¤¿Îß·×CPU»þ´Ö */
/* (¥ß¥êÉÃñ°Ì) */
W tmem; /* ¼Â¹Ô¤ËɬÍפȤ¹¤ëÁ´ÂΤΥá¥â¥ê¥µ¥¤¥º */
/* (¥Ð¥¤¥Èñ°Ì) */
W wmem; /* ¸½ºß³ä¤êÉÕ¤±¤é¤ì¤Æ¤¤¤ë¼Â¥á¥â¥ê¥µ¥¤¥º */
/* (¥Ð¥¤¥Èñ°Ì) */
W resv[11]; /* ͽÌó */
} P_INFO;
#define TERM_NRM 0x0000 /* »ØÄê¥×¥í¥»¥¹¤Î¤ß¤Î¶¯À©½ªÎ» */ #define TERM_ALL 0x0001 /* »Ò¥×¥í¥»¥¹¤Þ¤Ç´Þ¤á¤¿¶¯À©½ªÎ» */
#define P_ABS 0x0000 /* Í¥ÀèÅÙ¤ÎÀäÂлØÄê (¡æ0) */ #define P_REL 0x0001 /* Í¥ÀèÅÙ¤ÎÁêÂлØÄê */ #define P_TASK 0x0002 /* ¥¿¥¹¥¯¤òÂоݤȤ¹¤ë */
#define P_WAIT 0x2000 /* ÂÔ¤Á¾õÂÖ */ #define P_READY 0x4000 /* ¼Â¹Ô²Äǽ¾õÂÖ */ #define P_RUN 0x8000 /* ¼Â¹Ô¾õÂÖ */
|
WERR cre_prc(LINK* lnk, W pri, MESSAGE* msg)
LINK* lnk ÂÐ¾Ý¼Â¿È W pri ¥×¥í¥»¥¹Í¥ÀèÅÙ 0 ¡å pri ¡å 255 Ǥ°Õ¤ÎÍ¥ÀèÅÙ = -1 ¼«¥×¥í¥»¥¹¤ÈƱ¤¸Í¥ÀèÅÙ MESSAGE* msg ¥×¥í¥»¥¹µ¯Æ°»þ¥á¥Ã¥»¡¼¥¸
¡ä0 Àµ¾ï(À¸À®¤·¤¿¥×¥í¥»¥¹ ID) ¡ã0 ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)
»ØÄꤷ¤¿¼Â¿ÈÆâ¤Î¼Â¹Ô¥×¥í¥°¥é¥à¥ì¥³¡¼¥É¤ò¡¢ ¿·¤·¤¤¥×¥í¥»¥¹¤È¤·¤ÆÀ¸À®¤¹¤ë¡£ Ʊ»þ¤Ë¥á¥¤¥ó¥¿¥¹¥¯¤¬À¸À®¤µ¤ì¼Â¹Ô¤ò³«»Ï¤¹¤ë¡£
¡Ö1.1.6 ¥×¥í¥»¥¹¤ÎÀ¸À®¡×¤ò»²¾È¤Î¤³¤È¡£
ER_ACCES : ¥Õ¥¡¥¤¥ë(lnk)¤Î¥¢¥¯¥»¥¹¸¢(E)¤¬¤Ê¤¤¡£ ER_ADR : ¥¢¥É¥ì¥¹(lnk,msg)¤Î¥¢¥¯¥»¥¹¤Ïµö¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ ER_BUSY : ¥Õ¥¡¥¤¥ë(lnk)¤Ï´û¤ËÇÓ¾Ū¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë°Ù¡¢ Ʊ»þ¤Ë¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤«¤Ã¤¿¡£ ER_IO : Æþ½ÐÎÏ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ ER_NOEXS : ¥Õ¥¡¥¤¥ë(lnk)¤Ï¸ºß¤·¤Æ¤¤¤Ê¤¤¡£ ER_NOFS : ¥Õ¥¡¥¤¥ë(lnk)¤Î°¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÏÀܳ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ ER_NOMEM : ¥á¥â¥êÎΰ褬ÉÔ¤·¤¿¡£ ER_NOSPC : ¥·¥¹¥Æ¥à¤Î¥á¥â¥êÎΰ褬ÉÔ¤·¤¿(¥×¥í¥»¥¹¿ô¤¬Â¿¤¹¤®¤ë)¡£ ER_PPRI : Í¥ÀèÅÙ¤ÎÃͤ¬Èϰϳ°¤Ç¤¢¤ë(-1,-0¡Á255 °Ê³°)¡£ ER_REC : ¥Õ¥¡¥¤¥ë¤Ë¥×¥í¥°¥é¥à¥ì¥³¡¼¥É¤Ï¸ºß¤·¤Ê¤¤¡¢ ¤Þ¤¿¤Ï¥×¥í¥°¥é¥à¥ì¥³¡¼¥É¤ÎÆâÍÆ¤¬°Û¾ï¤Ç¤¢¤ë¡£ ER_SZOVR : ¥×¥í¥»¥¹µ¯Æ°¥á¥Ã¥»¡¼¥¸¤Î¥µ¥¤¥º¤¬¥·¥¹¥Æ¥à¤ÎÀ©¸Â¤ò±Û¤¨¤¿¡£
|
VOID ext_prc(W code)
W code ¥×¥í¥»¥¹½ªÎ»¥³¡¼¥É
¥ê¥¿¡¼¥ó¤·¤Ê¤¤
¼«¥×¥í¥»¥¹¤òÀµ¾ï½ªÎ»¤·¡¢ »ØÄꤷ¤¿ code ¤ò´Þ¤à¥×¥í¥»¥¹Àµ¾ï½ªÎ»¥á¥Ã¥»¡¼¥¸¤ò¿Æ¥×¥í¥»¥¹¤ËÁ÷¿®¤¹¤ë¡£
¼«¥×¥í¥»¥¹¤Ç»ÈÍÑÃæ¤Î¥Õ¥¡¥¤¥ëÅù¤Î¥ê¥½¡¼¥¹¤Ï°ìÉô¤Î¥ê¥½¡¼¥¹ ( cre_sem
Åù¥ª¥×¥·¥ç¥ó¤Ë DELEXIT »ØÄ꤬¤Ê¤¤¤â¤Î)¤ò½ü¤¡¢ ¤¹¤Ù¤Æ¼«Æ°Åª¤Ë²òÊü¤µ¤ì¤ë¡£
ȯÀ¸¤·¤Ê¤¤¡£
|
ERR ter_prc(W pid, W code, W opt)
W pid ÂÐ¾Ý¥×¥í¥»¥¹ ID > 0 Ǥ°Õ¤Î¥×¥í¥»¥¹ = 0 ¼«¥×¥í¥»¥¹(»ØÄêÉÔ²Ä:¥¨¥é¡¼) = -1 ¿Æ¥×¥í¥»¥¹ W code ¶¯À©½ªÎ»¥³¡¼¥É W opt ¶¯À©½ªÎ»Â°À ( TERM_NRM ¡Â TERM_ALL ) TERM_NRM »ØÄꤷ¤¿¥×¥í¥»¥¹¤Î¤ß¤Î¶¯À©½ªÎ»¡£ TERM_ALL »ØÄꤷ¤¿¥×¥í¥»¥¹¤ª¤è¤Ó¤½¤ÎÁ´¤Æ¤Î»Ò¹¤Î¥×¥í¥»¥¹¤Î¶¯À© ½ªÎ»¡£¿Æ¥×¥í¥»¥¹¤Þ¤¿¤Ï¤µ¤é¤Ë¤½¤Î¿Æ¤Î¥×¥í¥»¥¹¤ò»ØÄꤷ ¤¿¾ì¹ç¤Ë¤Ï¡¢¼«¥×¥í¥»¥¹¤â¶¯À©½ªÎ»¤µ¤»¤é¤ì¤ë¡£ ¤³¤Î¾ì¹ç¡¢»ØÄꤷ¤¿¥×¥í¥»¥¹¤Î»Ò¹¤Î¶¯À©½ªÎ»¥á¥Ã¥»¡¼¥¸ ¤ÏÁ÷¿®¤µ¤ì¤Ê¤¤¡£
¡á0 Àµ¾ï ¡ã0 ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)
»ØÄꤷ¤¿¥×¥í¥»¥¹¤ò¶¯À©½ªÎ»¤·¡¢ »ØÄꤷ¤¿ code ¤ò´Þ¤à¥×¥í¥»¥¹¶¯À©½ªÎ»¥á¥Ã¥»¡¼¥¸¤ò»ØÄꤷ¤¿¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹¤ËÁ÷¿®¤¹¤ë¡£
¼«¥×¥í¥»¥¹¤è¤ê¹â¤¤¥æ¡¼¥¶¥ì¥Ù¥ë¤Î¥×¥í¥»¥¹¤Ï¶¯À©½ªÎ»¤Ç¤¤Ê¤¤¡£
ER_SELF : ¼«¥×¥í¥»¥¹¤ò»ØÄꤷ¤¿(pid = 0¤Þ¤¿¤Ï¼«¥×¥í¥»¥¹¤ÎPID)¡£ ER_NOPRC : ¥×¥í¥»¥¹(pid)¤Ï¸ºß¤·¤Æ¤¤¤Ê¤¤¡£ ER_LEVEL : ¼«¥×¥í¥»¥¹¤è¤ê¹â¤¤¥æ¡¼¥¶¥ì¥Ù¥ë¤Î¥×¥í¥»¥¹¤ò»ØÄꤷ¤¿¡£ ER_PAR : ¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¢¤ë(opt=TERM_NRM,TERM_ALL°Ê³°¤ò»ØÄꤷ¤¿)¡£
|
WERR chg_pri(W id, W pri, W opt)
W id ÂÐ¾Ý¥×¥í¥»¥¹ ID ¤Þ¤¿¤Ï¥¿¥¹¥¯ ID W pri Êѹ¹¤¹¤ëÍ¥ÀèÅÙ W opt Í¥ÀèÅÙ°À ( P_ABS ¡Â P_REL ) | [ P_TASK ] P_ABS ÀäÂлØÄê¡§»ØÄꤷ¤¿Í¥ÀèÅÙ¤ËÊѹ¹¡£ P_REL ÁêÂлØÄê¡§(¸½ºß¤ÎÍ¥ÀèÅÙ)¡Üpri ¤ËÊѹ¹¡£ T_TASK ¥¿¥¹¥¯¤òÂоݤȤ¹¤ë¡£
¡æ0 Àµ¾ï(Êѹ¹¸å¤ÎÍ¥ÀèÅÙ 0¡Á255) P_TASK »ØÄꤢ¤ê id ¤Î¥¿¥¹¥¯¤ÎÍ¥ÀèÅÙ P_TASK »ØÄê¤Ê¤· id ¤Î¥×¥í¥»¥¹¤Î¥á¥¤¥ó¥¿¥¹¥¯¤ÎÍ¥ÀèÅÙ ¡ã0 ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)
»ØÄꤷ¤¿¥×¥í¥»¥¹ / ¥¿¥¹¥¯¤ÎÍ¥ÀèÅÙ¤òÊѹ¹¤¹¤ë¡£
P_TASK ¤Î»ØÄ꤬¤Ê¤¤¾ì¹ç :
id ¡á 0 ¼«¥×¥í¥»¥¹Æâ¤ÎÁ´¥¿¥¹¥¯¤ÎÍ¥ÀèÅÙ¤òÊѹ¹¤¹¤ë¡£ id ¡á -1 ¿Æ¥×¥í¥»¥¹Æâ¤ÎÁ´¥¿¥¹¥¯¤ÎÍ¥ÀèÅÙ¤òÊѹ¹¤¹¤ë¡£ id ¡ä 0 id ¤Ç»ØÄꤷ¤¿¥×¥í¥»¥¹ ID ¤Î¥×¥í¥»¥¹Æâ¤ÎÁ´¥¿¥¹¥¯¤ÎÍ¥ÀèÅÙ¤òÊѹ¹¤¹¤ë¡£
P_TASK ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç
id ¡á 0 ¼«¥¿¥¹¥¯¤ÎÍ¥ÀèÅÙ¤òÊѹ¹¤¹¤ë¡£ id ¡ä 0 id ¤Ç»ØÄꤷ¤¿¥¿¥¹¥¯ ID ¤Î¥¿¥¹¥¯¤ÎÍ¥ÀèÅÙ¤òÊѹ¹¤¹¤ë¡£ »ØÄê¤Ç¤¤ë¥¿¥¹¥¯¤Ï¡¢¼«¥×¥í¥»¥¹Æâ¤Î¥¿¥¹¥¯¤Î¤ß¤Ç¤¢¤ë¡£
»ØÄê¤Ç¤¤ëÍ¥ÀèÅÙ¤ÎÈϰϤϡ¢ Âоݥ¿¥¹¥¯¤¬Â°¤¹¤ë¥×¥í¥»¥¹¤Î¸½ºß¤ÎÍ¥ÀèÅÙ¥°¥ë¡¼¥×Æâ¤È¤Ê¤ë¡£
ER_NOPRC : ¥×¥í¥»¥¹(id)¤Ï¸ºß¤·¤Æ¤¤¤Ê¤¤¡£ ER_ID : ¥¿¥¹¥¯(id)¤Ï¸ºß¤·¤Æ¤¤¤Ê¤¤¡£¤Þ¤¿¤Ï¡¢¼«¥×¥í¥»¥¹Æâ¤Î¥¿¥¹¥¯¤Ç¤Ï¤Ê¤¤¡£ ER_PPRI : Í¥ÀèÅÙ¤ÎÃͤ¬Èϰϳ°¤Ç¤¢¤ë(¿·Í¥ÀèÅ٤ϸ½ºßÍ¥ÀèÅ٤Υ°¥ë¡¼¥×³°)¡£ ER_PAR : ¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¢¤ë(opt=P_ABS,P_REL,P_TASK°Ê³°¤ò»ØÄꤷ¤¿)¡£
|
WERR prc_sts(W pid, P_STATE* buff, TC* name)
W pid ÂÐ¾Ý¥×¥í¥»¥¹ ID > 0 Ǥ°Õ¤Î¥×¥í¥»¥¹ = 0 ¼«¥×¥í¥»¥¹ = -1 ¿Æ¥×¥í¥»¥¹ P_STATE* buff ¥×¥í¥»¥¹¾õÂ֤γÊǼÎΰè NULL ³ÊǼ¤·¤Ê¤¤ TC* name ¥×¥í¥»¥¹Ì¾(¼Â¿È̾)¤Î³ÊǼÎΰè(ºÇÂç¼Â¿È̾+1ʸ»úʬ¤ÎÎΰè) NULL ³ÊǼ¤·¤Ê¤¤
¡ä0 Àµ¾ï(»ØÄê¥×¥í¥»¥¹ ID) ¡ã0 ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)
»ØÄꤷ¤¿¥×¥í¥»¥¹¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë¡£
pid = 0, buf = NULL, name = NULL ¤È¤·¤Æ¼«¥×¥í¥»¥¹ ID ¤Î¼èÆÀ¤Ë¤â»ÈÍѤ¹¤ë¡£
ER_ADR : ¥¢¥É¥ì¥¹(buff,path)¤Î¥¢¥¯¥»¥¹¤Ïµö¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ ER_NOPRC : ¥×¥í¥»¥¹(pid)¤Ï¸ºß¤·¤Æ¤¤¤Ê¤¤¡£
|
ERR chg_usr(P_USER* buff)
P_USER* buff Êѹ¹¤¹¤ë¥æ¡¼¥¶¾ðÊó
¡á0 Àµ¾ï ¡ã0 ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)
¼«¥×¥í¥»¥¹¤Î¥æ¡¼¥¶¾ðÊó¤ò»ØÄꤷ¤¿ÆâÍÆ¤ËÊѹ¹¤¹¤ë¡£ Êѹ¹¤·¤¿ÆâÍÆ¤Ï¡¢¤½¤ì°Ê¸åÀ¸À®¤·¤¿»Ò¥×¥í¥»¥¹¤Ë·Ñ¾µ¤µ¤ì¤ë¡£
ËÜ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥·¥¹¥Æ¥à¥×¥í¥»¥¹¤Ç¤Î¤ß¼Â¹Ô²Äǽ¤Ç¡¢ °ìÈ̤Υ¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥»¥¹¤Ç¤Ï¼Â¹Ô¤Ç¤¤Ê¤¤¡£
ER_ADR : ¥¢¥É¥ì¥¹(buff)¤Î¥¢¥¯¥»¥¹¤Ïµö¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ ER_PAR : ¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¢¤ë(¥æ¡¼¥¶¾ðÊó¤¬ÉÔÀµ)¡£
|
WERR get_usr(W pid, P_USER* buff)
W pid ÂÐ¾Ý¥×¥í¥»¥¹ ID > 0 Ǥ°Õ¤Î¥×¥í¥»¥¹ = 0 ¼«¥×¥í¥»¥¹ = -1 ¿Æ¥×¥í¥»¥¹ P_USER* buff ¥æ¡¼¥¶¾ðÊó¤Î³ÊǼÎΰè NULL ³ÊǼ¤·¤Ê¤¤
¡ä0 Àµ¾ï(»ØÄê¥×¥í¥»¥¹ ID) ¡ã0 ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)
»ØÄꤷ¤¿¥×¥í¥»¥¹¤Î¥æ¡¼¥¶¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£ ¼è¤ê½Ð¤·¤¿¥æ¡¼¥¶¡¼Ì¾¤ª¤è¤Ó¥°¥ë¡¼¥×̾ 1 ¡Á 4 ¤Î±£¤·Ì¾¤Ï¾ï¤Ë 0 ¤È¤Ê¤ê¡¢ ¼è¤ê½Ð¤¹¤³¤È¤Ï¤Ç¤¤Ê¤¤¡£
pid = 0, buf = NULL ¤È¤·¤Æ¼«¥×¥í¥»¥¹ ID ¤Î¼èÆÀ¤Ë¤â»ÈÍѤ¹¤ë¡£
ER_ADR : ¥¢¥É¥ì¥¹(buff)¤Î¥¢¥¯¥»¥¹¤Ïµö¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ ER_NOPRC : ¥×¥í¥»¥¹(pid)¤Ï¸ºß¤·¤Æ¤¤¤Ê¤¤¡£
|
ERR get_inf(W pid, P_INFO* buff)
W pid ÂÐ¾Ý¥×¥í¥»¥¹ ID > 0 Ǥ°Õ¤Î¥×¥í¥»¥¹ = 0 ¼«¥×¥í¥»¥¹ = -1 ¿Æ¥×¥í¥»¥¹ P_INFO* buff Åý·×¾ðÊó¤Î³ÊǼÎΰè
¡á0 Àµ¾ï ¡ã0 ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)
»ØÄꤷ¤¿¥×¥í¥»¥¹¤ÎÅý·×¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£
ER_ADR : ¥¢¥É¥ì¥¹(buff)¤Î¥¢¥¯¥»¥¹¤Ïµö¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ ER_NOPRC : ¥×¥í¥»¥¹(pid)¤Ï¸ºß¤·¤Æ¤¤¤Ê¤¤¡£
|
WERR cre_tsk(FP entry, W pri, W arg)
FP entry ¥µ¥Ö¥¿¥¹¥¯³«»Ï¥¢¥É¥ì¥¹ W pri ¥µ¥Ö¥¿¥¹¥¯Í¥ÀèÅÙ W arg ¥µ¥Ö¥¿¥¹¥¯µ¯Æ°¥Ñ¥é¥á¡¼¥¿
¡ä0 Àµ¾ï(À¸À®¤·¤¿¥µ¥Ö¥¿¥¹¥¯ ID) ¡ã0 ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)
¼«¥×¥í¥»¥¹Æâ¤Î¥µ¥Ö¥¿¥¹¥¯¤òÀ¸À®¤·¤Æ¼Â¹Ô¤¹¤ë¡£
¥µ¥Ö¥¿¥¹¥¯¤ÎÍ¥ÀèÅ٤ϡ¢¼«¥×¥í¥»¥¹¤ÎÍ¥ÀèÅÙ¥°¥ë¡¼¥×¤ÎÈÏ°ÏÆâ¤Ç¤Î¤ß»ØÄê¤Ç¤¤ë¡£ ¥µ¥Ö¥¿¥¹¥¯¤Ï°Ê²¼¤Î·Á¼°¤Î´Ø¿ô¤È¤·¤ÆÄêµÁ¤µ¤ì¤ë¡£
VOID subtask(W arg)
{
/* arg ¤Ï cre_tsk() ¤Ç»ØÄꤷ¤¿¥Ñ¥é¥á¡¼¥¿ */
< ¥µ¥Ö¥¿¥¹¥¯¥³¡¼¥É >
/* ¥¿¥¹¥¯½ªÎ» */
ext_tsk();
}
¥µ¥Ö¥¿¥¹¥¯¤ò return ¤Ç½ªÎ»¤¹¤ë¤³¤È¤Ï¤Ç¤¤Ê¤¤¡£
ER_ADR : ¥¢¥É¥ì¥¹(entry)¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ ER_PPRI : Í¥ÀèÅÙ(pri)¤¬¼«¥×¥í¥»¥¹¤ÎÍ¥ÀèÅÙ¥°¥ë¡¼¥×¤ÎÈϰϤòͤ¨¤Æ¤¤¤ë¡£ ER_LIMIT : ¥µ¥Ö¥¿¥¹¥¯¿ô¤ÎÀ©¸Â¤òͤ¨¤¿¡£ ER_NOMEM : ¥á¥â¥ê¡¼Îΰ褬ÉÔ¤·¤¿¡£
|
VOID ext_tsk()
¤Ê¤·
¥ê¥¿¡¼¥ó¤·¤Ê¤¤¡£
¼«¥¿¥¹¥¯¤ò½ªÎ»¤¹¤ë¡£
¥á¥¤¥ó¥¿¥¹¥¯¤¬½ªÎ»¤·¤¿¾ì¹ç¤Ï¥×¥í¥»¥¹¤â½ªÎ»¤¹¤ë¡£
ȯÀ¸¤·¤Ê¤¤¡£
|
ERR ter_tsk(W tskid)
W tskid Âоݥ¿¥¹¥¯ ID
¡á0 Àµ¾ï ¡ã0 ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)
»ØÄ꥿¥¹¥¯¤ò¶¯À©½ªÎ»¤¹¤ë¡£
»ØÄê¤Ç¤¤ë¥¿¥¹¥¯¤Ï¡¢¼«¥×¥í¥»¥¹Æâ¤Î¥µ¥Ö¥¿¥¹¥¯¤Î¤ß¤Ç¤¢¤ë¡£ ¼«¥¿¥¹¥¯¤ª¤è¤Ó¥á¥¤¥ó¥¿¥¹¥¯¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤¤Ê¤¤¡£
ER_ID : ¥¿¥¹¥¯ID(tskid)¤¬ÉÔÀµ¤Ç¤¢¤ë¡£
|
ERR slp_tsk(W time)
W time ¥¿¥¤¥à¥¢¥¦¥È»þ´Ö > 0 »ØÄê»þ´Ö ( ¥ß¥êÉà ) ÂÔ¤Ä = -1 ̵¸Â¤ËÂÔ¤Ä
¡á0 Àµ¾ï ¡ã0 ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)
¼«¥¿¥¹¥¯¤òµ¯¾²ÂÔ¤Á¾õÂ֤ˤ¹¤ë¡£
time ¤Ç»ØÄꤷ¤¿¥¿¥¤¥à¥¢¥¦¥È»þ´Ö¤À¤±·Ð²á¤¹¤ë¤«¡¢ ¾¥¿¥¹¥¯¤«¤é¥¿¥¹¥¯µ¯¾²¤µ¤ì¤¿¾ì¹ç¤ËÂÔ¤Á¾õÂÖ¤¬²ò½ü¤µ¤ì¤ë¡£
ER_NONE : ¥¿¥¤¥à¥¢¥¦¥È»þ´Ö¤¬·Ð²á¤·¤¿¤¬¡¢µ¯¾²¤µ¤ì¤Ê¤«¤Ã¤¿¡£ ER_MINTR : ¥á¥Ã¥»¡¼¥¸¥Ï¥ó¥É¥é¤¬µ¯Æ°¤µ¤ì¤¿¤¿¤á¡¢ÂÔ¤Á¤¬ÃæÃǤµ¤ì¤¿¡£ ER_PAR : ¥Ñ¥é¥á¡¼¥¿(time)¤¬ÉÔÀµ¤Ç¤¢¤ë¡£
|
ERR wup_tsk(W tskid)
W tskid Âоݥ¿¥¹¥¯ ID
¡á0 Àµ¾ï ¡ã0 ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)
tskid ¤Ç»ØÄꤷ¤¿¥¿¥¹¥¯¤¬µ¯¾²ÂÔ¤Á¾õÂ֤Ǥ¢¤Ã¤¿»þ¤Ë¡¢¤½¤ÎÂÔ¤Á¤ò²ò½ü¤¹¤ë¡£
»ØÄꤷ¤¿¥¿¥¹¥¯¤¬µ¯¾²ÂÔ¤Á¾õÂ֤Ǥʤ¤¾ì¹ç¤Ï¡¢µ¯¾²Í×µá¤Ï¥¥å¡¼¥¤¥ó¥°¤µ¤ì¤ë¡£
»ØÄꤹ¤ë¥¿¥¹¥¯¤Ï¼«¥×¥í¥»¥¹Æâ¤Î¥¿¥¹¥¯¤Ç¤Ê¤¯¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ ¾¥×¥í¥»¥¹¤Î¥¿¥¹¥¯¤òµ¯¾²¤¹¤ë¤³¤È¤Ï¤Ç¤¤Ê¤¤¡£¤Þ¤¿¡¢¼«¥¿¥¹¥¯¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤¤Ê¤¤¡£
ER_ID : ¥¿¥¹¥¯ID(tskid)¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ ER_LIMIT : µ¯¾²Í×µá¤Î¥¥å¡¼¥¤¥ó¥°¿ô¤¬À©¸Â¤òͤ¨¤¿¡£
|
WERR can_wup(W tskid)
W tskid Âоݥ¿¥¹¥¯ ID > 0 Ǥ°Õ¤Î¥¿¥¹¥¯ = 0 ¼«¥¿¥¹¥¯
¡æ0 Àµ¾ï(µ¯¾²Í׵᤬¥¥å¡¼¥¤¥ó¥°¤µ¤ì¤Æ¤¤¤¿¿ô) ¡ã0 ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)
tskid ¤Ç»ØÄꤷ¤¿¥¿¥¹¥¯¤Ë¥¥å¡¼¥¤¥ó¥°¤µ¤ì¤Æ¤¤¤ëµ¯¾²Í×µá¤ò¤¹¤Ù¤Æ¥¥ã¥ó¥»¥ë¤¹¤ë¡£
»ØÄê¤Ç¤¤ë¥¿¥¹¥¯¤Ï¡¢¼«¥×¥í¥»¥¹Æâ¤Î¥¿¥¹¥¯¤Î¤ß¤Ç¤¢¤ë¡£
ER_ID : ¥¿¥¹¥¯ID(tskid)¤¬ÉÔÀµ¤Ç¤¢¤ë¡£
|
ERR dly_tsk(W time)
W time ÃÙ±ä»þ´Ö( ¥ß¥êÉáæ 0 )
¡á0 Àµ¾ï ¡ã0 ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)
¼«¥¿¥¹¥¯¤ò»ØÄꤷ¤¿»þ´Ö¤À¤±ÂÔ¤Á¾õÂ֤ˤ¹¤ë¡£
time = 0 ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢ ¼Â¹Ô¤òÃæÃǤ·¤ÆºÆ¥¹¥±¥¸¥å¡¼¥ë¤ò¹Ô¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
¤Ä¤Þ¤ê¡¢¥¿¥¹¥¯¤Î¾õÂÖ¤ò¼Â¹Ô¾õÂÖ¤«¤é¡¢¼Â¹Ô²Äǽ¾õÂ֤ذܹԤµ¤»¤ë¤³¤È¤Ë¤Ê¤ë¡£
ER_MINTR : ¥á¥Ã¥»¡¼¥¸¥Ï¥ó¥É¥é¤¬µ¯Æ°¤µ¤ì¤¿¤¿¤á¡¢ÂÔ¤Á¤¬ÃæÃǤµ¤ì¤¿¡£ ER_PAR : ¥Ñ¥é¥á¡¼¥¿(time)¤¬ÉÔÀµ¤Ç¤¢¤ë¡£
|
W get_tid()
¤Ê¤·
¡ä0 Àµ¾ï(¼«¥¿¥¹¥¯ ID)
¼«¥¿¥¹¥¯¤Î¥¿¥¹¥¯ ID ¤ò¼è¤ê½Ð¤¹¡£
ȯÀ¸¤·¤Ê¤¤¡£