Linux ÏÂÏß³Ìͬ²½
½øÐжàÏ̱߳à³Ì£¬×îÍ·Ì۵ľÍÊÇÄÇЩ¹²ÏíµÄÊý¾Ý¡£ÒòΪÄãÎÞ·¨ÖªµÀÄĸöÏ̻߳áÔÚÄĸöʱºò¶ÔËü½øÐвÙ×÷£¬ÄãÒ²ÎÞ·¨µÃÖªÄǸöÏ̻߳áÏÈÔËÐУ¬ÄĸöÏ̻߳áºóÔËÐС£ÏÂÃæ½éÉÜһЩ¼¼Êõ£¬Í¨¹ýËûÃÇ£¬Äã»áºÏÀí°²ÅÅÄãµÄÏß³ÌÖ®¼ä¶Ô×ÊÔ´µÄ¾ºÕù¡£
l »¥³âÌåMutex
l ÐźŵÆSemophore
l Ìõ¼þ±äÁ¿Conditions
ÏÈ˵һÏ»¥³âÁ¿¡£
ʲôʱºò»áÓÃÉÏ»¥³âÁ¿ÁË£¿±ÈÈçÄãÏÖÔÚÓÐһȫ¾ÖÁ´±í£¬ÄãÓм¸¸ö¹¤×÷Ï̡߳£Ã¿Ò»¸öÏ̴߳ӸÃÁ´±íÖÐÈ¡³öÍ·½Úµã£¬È»ºó¶Ô¸ÃÍ·½Úµã½øÐд¦Àí¡£±ÈÈçÏÖÔÚÏß³Ì1ÕýÔÚÈ¡³öÍ·½Úµã£¬ËûµÄ²Ù×÷ÈçÏ£º
Item * p =queue_list;
Queue_list=queue_list->next;
Process_job(p);
Free(p);
µ±Ïß³Ì1´¦ÀíÍêµÚÒ»²½£¬Ò²¾ÍÊÇItem *p=queue_listºó£¬ÕâʱºòϵͳֹͣÏß³Ì1µÄÔËÐУ¬¸Ä¶øÔËÐÐÏß³Ì2¡£Ïß³Ì2ÕÕÑùÈ¡³öÍ·½Úµã£¬È»ºó½øÐд¦Àí£¬×îºóÊÍ·ÅÁ˸ýڵ㡣¹ýÁ˶Îʱ¼ä£¬Ïß³Ì1ÖØÐµõ½ÔËÐС£¶øÕâ¸öʱºò£¬ÆäʵpËùÖ¸ÏòµÄ½ÚµãÒѾ±»Ïß³Ì2Êͷŵô£¬¶øÏß³Ì1¶Ô´ËºÁÎÞÖªÏþ¡£Ëû»á½Ó×ÅÔËÐÐprocess_job(p)¡£¶øÕ⽫µ¼ÖÂÎÞ·¨Ô¤Áϵĺó¹û£¡
¶ÔÓÚÕâÖÖÇé¿ö£¬ÏµÍ³¸øÎÒÃÇÌṩÁË»¥³âÁ¿¡£ÄãÔÚÈ¡³öÍ·½Úµãǰ±ØÐëÒªµÈ´ý»¥³âÁ¿£¬Èç¹û´ËʱÓÐÆäËûÏß³ÌÒѾ»ñµÃ¸Ã»¥³âÁ¿£¬ÄÇôÏ߳̽«»á×èÈûÔÚÕâ¸öµØ·½¡£Ö»Óеȵ½ÆäËûÏß³ÌÊͷŵô¸Ã»¥³âÁ¿ºó£¬ÄãµÄÏ̲߳ÅÓпÉÄܵõ½¸Ã»¥³âÁ¿¡£ÎªÊ²Ã´ÊÇ¿ÉÄÜÁË£¿ÒòΪ¿ÉÄÜ´ËʱÓв»Ö¹ÄãÒ»¸öÏß³ÌÔڵȺò¸Ã»¥³âÁ¿£¬¶øÏµÍ³ÎÞ·¨±£Ö¤ÄãµÄÏ߳̽«»áÓÅÏÈÔËÐС£
»¥³âÁ¿µÄÀàÐÍΪpthread_mutex_t¡£Äã¿ÉÒÔÉùÃ÷¶à¸ö»¥³âÁ¿¡£ÔÚÉùÃ÷¸Ã±äÁ¿ºó£¬ÄãÐèÒªµ÷ÓÃpthread_mutex_init()À´´´½¨¸Ã±äÁ¿¡£pthread_mutex_initµÄ¸ñʽÈçÏ£º
int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutex-
attr_t *mutexattr);
µÚÒ»¸ö²ÎÊý£¬mutext£¬Ò²¾ÍÊÇÄã֮ǰÉùÃ÷µÄÄǸö»¥³âÁ¿£¬µÚ¶þ¸ö²ÎÊýΪ¸Ã»¥³âÁ¿µÄÊôÐÔ¡£Õâ¸ö½«ÔÚºóÃæÏêϸÌÖÂÛ¡£
ÔÚ´´½¨¸Ã»¥³âÁ¿Ö®ºó£¬Äã±ã¿ÉÒÔʹÓÃËüÁË¡£ÒªµÃµ½»¥³âÁ¿£¬ÄãÐèÒªµ÷ÓÃÏÂÃæµÄº¯Êý£º
int pthread_mutex_lock(pthread_mutex_t *mutex);
¸Ãº¯ÊýÓÃÀ´¸ø»¥³âÁ¿ÉÏËø£¬Ò²¾ÍÊÇÎÒÃÇÇ°ÃæËù˵µÄµÈ´ý²Ù×÷¡£»¥³âÁ¿Ò»µ©±»ÉÏËøºó£¬ÆäËûÏß³ÌÈç¹ûÏë¸ø¸Ã»¥³âÁ¿ÉÏËø£¬ÄÇô¾Í»á×èÈûÔÚÕâ¸ö²Ù×÷ÉÏ¡£Èç¹ûÔÚ´Ë֮ǰ¸Ã»¥³âÁ¿ÒѾ±»ÆäËûÏß³ÌÉÏËø£¬ÄÇô¸Ã²Ù×÷½«»áÒ»Ö±×èÈûÔÚÕâ¸öµØ·½£
Ïà¹ØÎĵµ£º
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
½üÈÕ£¬ÔÚLinuxCON 2009´ó»áÉÏ£¬×ÀÃæ
Linux
ÓÖ³ÉΪҵ½ç¹Ø×¢µÄ½¹µãÖ®Ò»¡£¸÷ÖÖ²»Í¬µÄÉùÒô£¬É¤ÃŶ¼ºÜ´ó¡£ÔÚÕâ·×·×ÈÂȵķÕΧÖУ¬
Linux
ÈçºÎ×ß³ö×ÀÃæÀ§¾³£¿
& ......
The physical memory map for Linux is completely independent from the virtual map and is designed to maximize contiguous space. Given that the kernel image will always be at the start of DRAM, the Linux kernel maximizes contiguous space by allocating runtime memory from the end of physical DRAM movin ......
ÆäÖÐÓÐһЩº¯ÊýµÄ×÷ÓÃÍêÈ«Ïàͬ£¬Ö»ÊDzÎÊý²»Í¬¡££¨¿ÉÄܺܶàÊìϤC++ÅóÓÑÂíÉϾÍÄÜÁªÏëÆðº¯ÊýÖØÔØ£¬µ«ÊDZðÍüÁËLinuxºËÐÄÊÇÓÃCÓïÑÔдµÄ£¬ËùÒÔÖ»
ÄÜÈ¡³É²»Í¬µÄº¯ÊýÃû£©¡£»¹ÓÐһЩº¯ÊýÒѾ¹ýʱ£¬±»ÐµĸüºÃµÄº¯ÊýËù´úÌæÁË£¨gccÔÚÁ´½ÓÕâЩº¯Êýʱ»á·¢³ö¾¯¸æ£©£¬µ«ÒòΪ¼æÈݵÄÔÒò»¹±£Áô×Å£¬ÕâЩº¯ÊýÔÚǰ
Ãæ±êÉÏ“*”ºÅÒÔÊ ......
LinuxµÄÖ÷ÒªÌØµã
¡¡¡¡×÷Ϊһ¸ö²Ù×÷ϵͳ£¬Linux¼¸ºõÂú×ãµ±½ñUnix²Ù×÷ϵͳµÄËùÓÐÒªÇó£¬Òò´Ë£¬Ëü¾ßÓÐUnix²Ù×÷ϵͳµÄ»ù±¾ÌØÕ÷¡£
1.·ûºÏPOSIX 1003.1±ê×¼
¡¡ ¡¡POSIX 1003.1±ê×¼¶¨ÒåÁËÒ»¸ö×îСµÄUnix²Ù×÷ϵͳ½Ó¿Ú£¬ÈκβÙ×÷ϵͳֻÓзûºÏÕâÒ»±ê×¼£¬²ÅÓпÉÄÜÔËÐÐUnix³ÌÐò¡£Unix¾ßÓзḻµÄÓ¦ÓóÌÐò£¬µ±½ñ¾ø ´ó¶àÊý²Ù×÷ϵͳ¶¼°Ñ ......