Rechercher une page de manuel
sem_overview
Langue: ja
Version: 2006-03-25 (openSuse - 09/10/07)
Section: 7 (Divers)
Sommaire
̾Á°
sem_overview - POSIX ¥»¥Þ¥Õ¥©¤Î³µÍ×ÀâÌÀ
POSIX ¥»¥Þ¥Õ¥©¤ò»ÈÍѤ¹¤ë¤È¡¢¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É´Ö¤Ç¤½¤ÎÆ°ºî¤ò Ʊ´ü¤µ¤»¤ë¤³¤È¤¬¤Ç¤¤ë¡£¥»¥Þ¥Õ¥©¤ÏÀ°¿ô¤Ç¤¢¤ê¡¢¤½¤ÎÃͤϷ褷¤Æ 0 ̤Ëþ¤Ë¤Ê¤ë¤³¤È¤Ïµö¤µ¤ì¤Ê¤¤¡£ ¥»¥Þ¥Õ¥©¤ËÂФ·¤Æ¤Ç¤¤ëÁàºî¤Ï 2 ¤Ä¤Ç¤¢¤ë: ¥»¥Þ¥Õ¥©Ãͤò 1 Áý¤ä¤¹ (sem_post(3)); ¥»¥Þ¥Õ¥©Ãͤò 1 ¸º¤é¤¹ (sem_wait(3))¡£ ¥»¥Þ¥Õ¥©¤ÎÃͤ¬¤¹¤Ç¤Ë 0 ¤Î¾ì¹ç¡¢¥»¥Þ¥Õ¥©Ãͤ¬ 0 ¤è¤êÂ礤¯¤Ê¤ë¤Þ¤Ç sem_wait(3) Áàºî¤ÏÄä»ß (block) ¤¹¤ë¡£
POSIX ¥»¥Þ¥Õ¥©¤Ë¤Ï¡¢Ì¾Á°ÉÕ¤¥»¥Þ¥Õ¥© (named semaphore) ¤È ̾Á°¤Ê¤·¥»¥Þ¥Õ¥© (unnamed semaphore) ¤Î 2¤Ä¤Î·Á¤¬¤¢¤ë¡£
̾Á°ÉÕ¤¥»¥Þ¥Õ¥©
̾Á°ÉÕ¤¥»¥Þ¥Õ¥©¤Ï /somename ¤È¤¤¤¦·Á¼°¤Î̾Á°¤Ç¼±Ê̤µ¤ì¤ë¡£ sem_open(3) ¤ËƱ¤¸Ì¾Á°¤òÅϤ¹¤³¤È¤Ë¤è¤ê¡¢2 ¤Ä¤Î¥×¥í¥»¥¹´Ö¤ÇƱ¤¸Ì¾Á°¤Î¥»¥Þ¥Õ¥© ¤ËÂФ·Áàºî¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤¤ë¡£sem_open(3) ´Ø¿ô¤Ï¡¢¿·¤·¤¤Ì¾Á°ÉÕ¤¥»¥Þ¥Õ¥©¤òºîÀ®¤¹¤ë¤«¡¢´û¤Ë¸ºß¤¹¤ë̾Á°ÉÕ¤ ¥»¥Þ¥Õ¥©¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ ¥»¥Þ¥Õ¥©¤ò¥ª¡¼¥×¥ó¤·¤¿¸å¤Ï¡¢ sem_post(3) ¤È sem_wait(3) ¤ò»È¤Ã¤Æ¥»¥Þ¥Õ¥©¤òÁàºî¤Ç¤¤ë¡£ ¥×¥í¥»¥¹¤¬¥»¥Þ¥Õ¥©¤Î»ÈÍѤò½ª¤¨¤¿ºÝ¤Ï¡¢ sem_close(3) ¤ò»È¤Ã¤Æ¥»¥Þ¥Õ¥©¤ò¥¯¥í¡¼¥º¤Ç¤¤ë¡£ ¤¢¤ë¥»¥Þ¥Õ¥©¤ò¤É¤Î¥×¥í¥»¥¹¤â»ÈÍѤ·¤Ê¤¯¤Ê¤ë¤È¡¢ sem_unlink(3) ¤ò»È¤Ã¤Æ¤½¤Î¥»¥Þ¥Õ¥©¤ò¥·¥¹¥Æ¥à¤«¤éºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£
̾Á°¤Ê¤·¥»¥Þ¥Õ¥© (¥á¥â¥ê¥Ù¡¼¥¹¡¦¥»¥Þ¥Õ¥©)
̾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤Ï̾Á°¤ò»ý¤¿¤Ê¤¤¡£¤½¤ÎÂå¤ï¤ê¡¢¥»¥Þ¥Õ¥©¤Ï¡¢ Ê£¿ô¥¹¥ì¥Ã¥É´Ö¤Ç¶¦Í¤µ¤ì¤¿¥á¥â¥êÎΰ衢¤â¤·¤¯¤ÏÊ£¿ô¥×¥í¥»¥¹´Ö¤Ç ¶¦Í¤µ¤ì¤¿¥á¥â¥êÎΰè¤ËÃÖ¤«¤ì¤ë (Á°¼Ô¤ò ¥¹¥ì¥Ã¥É¶¦Í¥»¥Þ¥Õ¥© (thread-shared semaphore)¡¢ ¸å¼Ô¤ò ¥×¥í¥»¥¹¶¦Í¥»¥Þ¥Õ¥© (process-shared semaphore) ¤È¸Æ¤Ö)¡£¥¹¥ì¥Ã¥É¶¦Í¥»¥Þ¥Õ¥©¤Ï¡¢Æ±¤¸¥×¥í¥»¥¹Æâ¤Î¥¹¥ì¥Ã¥É´Ö¤Ç¶¦Í¤µ¤ì¤¿ ¥á¥â¥êÎΰ衢Î㤨¤ÐÂç°èÊÑ¿ô (global variable) ¤ËÇÛÃÖ¤µ¤ì¤ë¡£ ¥×¥í¥»¥¹¶¦Í¥»¥Þ¥Õ¥©¤Ï¡¢¶¦Í¥á¥â¥êÎΰè (Î㤨¤Ð¡¢ semget(2) ¤ò»È¤Ã¤ÆºîÀ®¤Ç¤¤ë System V ¶¦Í¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ä shm_open(3) ¤ò»È¤Ã¤ÆºîÀ®¤Ç¤¤ë POSIX ¶¦Í¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È) Æâ¤ËÇÛÃÖ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£Ì¾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤Ï¡¢»ÈÍѤ¹¤ëÁ°¤Ë sem_init(3) ¤ò»È¤Ã¤Æ½é´ü²½¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¥»¥Þ¥Õ¥©¤Ï sem_post(3) ¤È sem_wait(3) ¤ò»È¤Ã¤ÆÁàºî¤Ç¤¤ë¡£ ¥»¥Þ¥Õ¥©¤¬¤â¤Ï¤äɬÍפʤ¯¤Ê¤Ã¤¿¤È¤¤ä¡¢ ¥»¥Þ¥Õ¥©¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¥á¥â¥ê¤ò²òÊü¤¹¤ëÁ°¤Ë¤Ï¡¢ sem_destroy(3) ¤ò»È¤Ã¤Æ¥»¥Þ¥Õ¥©¤òÇË´þ¤¹¤Ù¤¤Ç¤¢¤ë¡£
Linux ¸Çͤξܺٻö¹à
¥Ð¡¼¥¸¥ç¥ó
¥Ð¡¼¥¸¥ç¥ó 2.6 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢Linux ¤Ï ̾Á°¤Ê¤·¤Î¥¹¥ì¥Ã¥É¶¦Í¥»¥Þ¥Õ¥©¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤¿¡£ Linux 2.6 ¤È NPTL ¥¹¥ì¥Ã¥É¼ÂÁõ¤òÄ󶡤·¤Æ¤¤¤ë glibc ¤¬Æþ¤Ã¤¿ ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢POSIX ¥»¥Þ¥Õ¥©¤Î´°Á´¤Ê¼ÂÁõ¤¬Ä󶡤µ¤ì¤ë¡£»ý³À
POSIX ̾Á°ÉÕ¤¥»¥Þ¥Õ¥©¤Ï¥«¡¼¥Í¥ëÆâ¤ÇÊÝ»ý¤µ¤ì¤ë¡£ sem_unlink(3) ¤Çºï½ü¤µ¤ì¤Ê¤±¤ì¤Ð¡¢¥»¥Þ¥Õ¥©¤Ï ¥·¥¹¥Æ¥à¤¬¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤ë¤Þ¤Ç¸ºß¤·Â³¤±¤ë¡£¥ê¥ó¥¯
POSIX ¥»¥Þ¥Õ¥© API ¤ò»ÈÍѤ·¤¿¥×¥í¥°¥é¥à¤Ï cc -lrt ¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¡¢¥ê¥¢¥ë¥¿¥¤¥à¥é¥¤¥Ö¥é¥ê librt ¤È¥ê¥ó¥¯¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à·Ðͳ¤Ç¤Î̾Á°ÉÕ¤¥»¥Þ¥Õ¥©¤Ø¤Î¥¢¥¯¥»¥¹
Linux ¤Ç¤Ï¡¢Ì¾Á°ÉÕ¤¥»¥Þ¥Õ¥©¤Ï²¾ÁÛ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à (virtual file system) Æâ¤Ë sem.name ¤È¤¤¤¦·Á¤Î̾Á°¤ÇºîÀ®¤µ¤ì¤ë¡£²¾ÁÛ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÏÄ̾ï /dev/shm °Ê²¼¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£½àµò
POSIX.1-2001.Ãí°Õ
System V ¥»¥Þ¥Õ¥© (semget(2), semop(2) ¤Ê¤É) ¤Ï¸Å¤¤¥»¥Þ¥Õ¥© API ¤Ç¤¢¤ë¡£ POSIX ¥»¥Þ¥Õ¥©¤Ï System V ¤è¤ê¤â ´Êñ¤Ç¡¢¤¦¤Þ¤¯À߷פµ¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Æ¤¤¤ë¡£ °ìÊý¤Ç¡¢POSIX ¥»¥Þ¥Õ¥©¤Ï System V ¥»¥Þ¥Õ¥©¤ÈÈæ¤Ù¤ë¤È ÍøÍѤǤ¤ë¥·¥¹¥Æ¥à¤¬¾¯¤Ê¤¤ (Æäˡ¢¸Å¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¾¯¤Ê¤¤)¡£Îã
³Æ¼ï¤Î POSIX ¥»¥Þ¥Õ¥©´Ø¿ô¤ò»ÈÍѤ·¤¿Î㤬 sem_wait(3) ¤ËµºÜ¤µ¤ì¤Æ¤¤¤ë¡£´ØÏ¢¹àÌÜ
sem_close(3), sem_destroy(3), sem_init(3), sem_getvalue(3), sem_open(3), sem_post(3), sem_unlink(3), sem_wait(3), pthreads(7)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre