ÏÖÔÚÔÚLinuxÖÐʹÓý϶àµÄ½ø³Ì¼äͨÐÅ·½Ê½Ö÷ÒªÓÐÒÔϼ¸ÖÖ£º¹ÜµÀ¼°ÓÐÃû¹ÜµÀ¡¢Ðźš¢ÏûÏ¢¶ÓÁС¢¹²ÏíÄÚ´æ¡¢ÐźÅÁ¿¡¢Ì×½Ó×Ö¡£
½ø³Ì¿ÉÒÔͨ¹ý3ÖÖ·½Ê½À´ÏìÓ¦Ò»¸öÐźţº
1.ºöÂÔÐźţº¼´¶ÔÐźŲ»×öÈκδ¦Àí¡£µ«ÊÇÓÐÁ½¸öÐźŲ»ÄܺöÂÔ£ºSIGKILL¼°SIGSTOP
2.²¶×½Ðźţº¶¨ÒåÐźŴ¦Àíº¯Êý¡£µ±Ðźŷ¢Éúʱ£¬Ö´ÐÐÏàÓ¦µÄ´¦Àíº¯Êý
3.Ö´ÐÐĬÈϲÙ×÷£ºLinux¶ÔÿÖÖÐźŶ¼¹æ¶¨ÁËĬÈϲÙ×÷¡£
Ò»¸öÍêÕûµÄÐźÅÉúÃüÖÜÆÚ¿ÉÒÔ·ÖΪ3¸÷½×¶Î¡£Õâ3¸ö½×¶ÎÓÉ4¸öÖØÒªÊ¼þÀ´¿Ì»£ºÐźŲúÉú¡¢ÐźÅÔÚ½ø³ÌÖÐ×¢²á¡¢ÐźÅÔÚ½ø³ÌÖÐ×¢Ïú¡¢Ö´ÐÐÐźŴ¦Àíº¯Êý¡£
ÐźŵĴ¦Àí°üÀ¨Ðźŵķ¢ËÍ¡¢²¶»ñÒÔ¼°ÐźŵĴ¦Àí£º
·¢ËÍÐźŵĺ¯Êý£ºkill¡¢raise¡£
²¶»ñÐźŵĺ¯Êý£ºalarm¡¢pause¡£
ÉèÖÃÐźŴ¦ÀíµÄº¯Êý£ºsignal¡£
¹²ÏíÄÚ´æµÄʵÏÖ·ÖΪ3¸ö²½Ö裺
1.´´½¨¹²ÏíÄڴ棬ÕâÀïÓõ½µÄº¯ÊýÊÇshmget£¬Ò²¾ÍÊÇÔÚÄÚ´æÖлñµÃÒ»¶Î¹²ÏíÄÚ´æÇøÓò¡£
2.Ó³Éä¹²ÏíÄڴ棬Ҳ¾ÍÊǰÑÕâ¶Î´´½¨¹²ÏíÄÚ´æÓ³Éäµ½¾ßÌåµÄ½ø³Ì¿Õ¼äÈ¥£¬ÕâÀïʹÓõĺ¯ÊýÊÇshmat¡£½ÓמͿÉÒÔʹÓÃÕâ¶Î¹²ÏíÄÚ´æÁË£¬¼´¿ÉÒÔʹÓò»´ø»º³åµÄI/O¶ÁдÃüÁî¶ÔÆä²Ù×÷¡£
3.³·ÏúÓ³ÉäµÄ²Ù×÷£¬Æäº¯ÊýΪshmdt.
ÏûÏ¢¶ÓÁеÄʵÏÖ°üÀ¨´´½¨»ò´ò¿ªÏûÏ¢¶ÓÁС¢Ìí¼ÓÏûÏ¢¡¢¶ÁÈ¡ÏûÏ¢ºÍ¿ØÖÆÏûÏ¢¶ÓÁÐÕâ4ÖÖ²Ù×÷¡£
1.´´½¨»ò´ò¿ªÏûÏ¢¶ÓÁÐ
ʹÓú¯Êýmsgget£¬ÕâÀï´´½¨µÄÏûÏ¢¶ÓÁеÄÊýÁ¿»áÊܵ½ÏµÍ³ÏûÏ¢¶ÔÁÐÊýÁ¿µÄÏÞÖÆ¡£
2.Ìí¼Óµ½ÏûÏ¢¶ÔÁÐ
ʹÓú¯Êýmsgsnd£¬Ëü°ÑÏûÏ¢Ìí¼Óµ½ÒÑ´ò¿ªµÄÏûÏ¢¶ÔÁÐĩβ¡£
3.¶ÁÈ¡ÏûÏ¢¶ÔÁÐÄÚÈÝ
ʹÓú¯Êýmsgrcv£¬Ëü°ÑÏûÏ¢´ÓÏûÏ¢¶ÔÁÐÖÐÈ¡×ߣ¬ÓëFIFO²»Í¬µÄÊÇ£¬ÕâÀï¿ÉÒÔÖ¸¶¨È¡×ßijһÀàÐ͵ÄÏûÏ¢¡£
4.¿ØÖÆÏûÏ¢¶ÔÁÐ
ʹÓú¯Êýmsgctl£¬Ëü¿ÉÒÔÍê³É¶àÏÄÜ
ʹÓÃÏß³ÌÖ÷Òª°üÀ¨ÒÔϼ¸¸ö²½Ö裺
1.´´½¨Ïß³Ì
Õâ¸ö²½Öèʵ¼ÊÉϾÍÊÇÈ·¶¨Ïß³ÌËùÒªÖ´Ðеĺ¯Êý£¬ÕâÀïʹÓõĺ¯ÊýÊÇpthread_create.
2.µ÷ÓÃÏà¹ØÏ̺߳¯Êý
ÔÚÏ̴߳´½¨ÒԺ󣬾ͿªÊ¼ÔËÐÐÏà¹ØµÄÏ̺߳¯Êý¡£
3.Ïß³ÌÍ˳ö
ÔÚÏ̵߳÷Óú¯ÊýÔËÐÐÍêÖ®ºó£¬¸ÃÏß³ÌÒ²¾Í×Ô¶¯½áÊøÁË¡£ÁíÍâÒ»ÖÖÍ˳öÏ̵߳ķ½·¨¾ÍÊÇʹÓú¯Êýpthread_exit£¬ÕâÊÇÏ̵߳ÄÖ÷¶¯ÐÐΪ¡£
4.Ïß³Ì×ÊÔ´»ØÊÕ
ÓÉÓÚÒ»¸ö½ø³ÌÖеĶà¸öÏß³ÌÊǹ²ÏíÊý¾Ý¶ÎµÄ£¬Òò´Ëͨ³£ÔÚÏß³ÌÍ˳öºó£¬Í˳öÏß³ÌËùÕ¼ÓõÄ×ÊÔ´²¢²»»áËæ×ÅÏ̵߳ÄÖÕÖ¹¶øµÃµ½ÊÍ·Å¡£ÕýÈç½ø³ÌÖ®¼ä¿ÉÒÔÓÃwaitϵͳµ÷ÓÃÀ´Í¬²½ÖÕÖ¹²¢ÊÍ·Å×ÊÔ´Ò»Ñù£¬Ïß³ÌÖ®¼äÒ²ÓÐÀàËÆ»úÖÆ£¬ÄǾÍÊÇpthread_joinº¯Êý¡£pthread_join¿ÉÒÔÓÃÓÚ½«µ±Ç°Ö÷Ïß³Ì¹ÒÆð£¬µÈ´ý×ÓÏ̵߳ĽáÊø¡£Õâ¸öº¯ÊýÊÇÒ»¸öÏß³Ì×èÈûµÄº¯Êý£¬µ÷ÓÃËüµÄÏ߳̽«Ò»Ö±µÈ´ý±»µÈ´ýµÄÏ߳̽áÊøÎªÖ¹¡£µ±¸Ãº¯Êý·µ»ØÊ±¡¢±»µÈ´ýÏ̵߳Ä×ÊÔ´¾Í±»Êջء£
mutexÏ̷߳ÃÎÊ¿ØÖÆ
ÓÉÓÚÏ̹߳²Ïí½ø³ÌµÄ×ÊÔ´ºÍµØÖ·¿Õ¼ä£¬Òò´ËÔÚ¶ÔÕâЩ×ÊÔ´½øÐвÙ×÷ʱ£¬±ØÐ뿼Âǵ½Ï̼߳ä×ÊÔ´·ÃÎʵÄΨһÐÔÎÊÌ⣬POSIXÖÐÏß³Ìͬ²½µÄ·½·¨Ö÷ÒªÓл¥³âËøºÍÐźÅÁ¿µÄ·½Ê½¡£
»¥³âËø¿ÉÒÔ·ÖΪ¿ìËÙ»¥³âËø¡¢µÝ¹é»¥³âËøºÍ¼ì´í»¥³âËø£¬Õâ3ÖÐËøµÄÇø±ðÖ÷ÒªÔÚÓÚÆäËüδռÓл¥³âËøµÄÏß³ÌÔÚÏ£ÍûµÃµ½»¥³âËøÊ±ÊÇ·ñÐèÒª×èÈûµÈ´ý¡£
»¥³âËøµÄ²Ù×÷Ö÷Òª°üÀ¨ÒÔϼ¸¸ö²½Ö裺
1.»¥³âËø³õʼ»¯£ºpthread_mutex_init.
2.»¥³âËøÉÏËø£ºpthread_mutex_lock.
3.»¥³âËøÅжÏÉÏËø£ºpthread_mutex_trylock.
4.»¥³âËø½ÓËø£ºpthread_mutex_unlock.
5.Ïû³ý»¥³âËø£ºpthread_mutex_destory¡£
ÐźÅÁ¿Ï߳̿ØÖÆ
º¯Êý˵Ã÷£º
1.sem_initÓÃÓÚ´´½¨Ò»¸öÐźÅÁ¿£¬²¢Äܳõʼ»¯ËüµÄÖµ
2.sem_waitºÍsem_trywaitÏ൱ÓÚP²Ù×÷£¬ËüÃǶ¼Äܽ«ÐźÅÁ¿µÄÖµ¼õÒ»£¬Á½ÕßµÄÇø±ðÔÚÓÚÈôÐźÅÁ¿Ð¡ÓÚ0ʱ£¬sem_wait½«»á×èÈû½ø³Ì£¬¶øsem_trywaitÔò»áÁ¢¼´·µ»Ø¡£
3.sem_poseÏ൱ÓÚV²Ù×÷£¬Ëü½«ÐźÅÁ¿µÄÖµ¼Óһͬʱ·¢³öÐźŻ½ÐѵȴýµÄ½ø³Ì¡£
4.sem_getvalueÓÃÓڵõ½ÐźÅÁ¿µÄÖµ
5.sem_destoryÓÃÓÚɾ³ýÐźÅÁ¿
ÊØ»¤½ø³Ì·Ö4¸ö²½Öè´´½¨£º
1.´´½¨×Ó½ø³Ì£¬¸¸½ø³ÌÍ˳ö
2.ÔÚ×Ó½ø³ÌÖд´½¨ÐµĻỰ
3.¸Ä±äµ±Ç°Ä¿Â¼Îª¸ùĿ¼
4.ÖØÉèÎļþȨÏÞÑÚÂë
5¹Ø±ÕÎļþÃèÊö·û