linuxÇý¶¯Ä£¿é
¹¤×÷¶ÓÁУ¨work queue£©ÊÇÁíÍâÒ»ÖÖ½«¹¤×÷ÍÆºóÖ´ÐеÄÐÎʽ £¬ËüºÍÎÒÃÇÇ°ÃæÌÖÂÛµÄËùÓÐÆäËûÐÎʽ¶¼Óв»Í¬¡£¹¤×÷¶ÓÁпÉÒ԰ѹ¤×÷ÍÆºó£¬½»ÓÉÒ»¸öÄÚºËÏß³ÌÈ¥Ö´ÐУ¬Ò²¾ÍÊÇ˵£¬Õâ¸öϰ벿·Ö¿ÉÒÔÔÚ½ø³ÌÉÏÏÂÎÄÖÐÖ´ÐС£ÕâÑù£¬Í¨¹ý¹¤×÷¶ÓÁÐÖ´ÐеĴúÂëÄÜÕ¼¾¡½ø³ÌÉÏÏÂÎĵÄËùÓÐÓÅÊÆ¡£×îÖØÒªµÄ¾ÍÊǹ¤×÷¶ÓÁÐÔÊÐí±»ÖØÐµ÷¶ÈÉõÖÁÊÇ˯Ãß¡£
ÄÇô£¬Ê²Ã´Çé¿öÏÂʹÓù¤×÷¶ÓÁУ¬Ê²Ã´Çé¿öÏÂʹÓÃtasklet¡£Èç¹ûÍÆºóÖ´ÐеÄÈÎÎñÐèҪ˯Ãߣ¬ÄÇô¾ÍÑ¡Ôñ¹¤×÷¶ÓÁС£Èç¹ûÍÆºóÖ´ÐеÄÈÎÎñ²»ÐèҪ˯Ãߣ¬ÄÇô¾ÍÑ¡Ôñtasklet¡£ÁíÍ⣬Èç¹ûÐèÒªÓÃÒ»¸ö¿ÉÒÔÖØÐµ÷¶ÈµÄʵÌåÀ´Ö´ÐÐÄãµÄϰ벿´¦Àí£¬Ò²Ó¦¸ÃʹÓù¤×÷¶ÓÁС£ËüÊÇΨһÄÜÔÚ½ø³ÌÉÏÏÂÎÄÔËÐеÄϰ벿ʵÏֵĻúÖÆ£¬Ò²Ö»ÓÐËü²Å¿ÉÒÔ˯Ãß¡£ÕâÒâζ×ÅÔÚÐèÒª»ñµÃ´óÁ¿µÄÄÚ´æÊ±¡¢ÔÚÐèÒª»ñÈ¡ÐźÅÁ¿Ê±£¬ÔÚÐèÒªÖ´ÐÐ×èÈûʽµÄI/O²Ù×÷ʱ£¬Ëü¶¼»á·Ç³£ÓÐÓá£Èç¹û²»ÐèÒªÓÃÒ»¸öÄÚºËÏß³ÌÀ´ÍƺóÖ´Ðй¤×÷£¬ÄÇô¾Í¿¼ÂÇʹÓÃtasklet¡£
1. ¹¤×÷¡¢¹¤×÷¶ÓÁк͹¤×÷ÕßÏß³Ì
ÈçǰËùÊö£¬ÎÒÃǰÑÍÆºóÖ´ÐеÄÈÎÎñ½Ð×ö¹¤×÷£¨work£©£¬ÃèÊöËüµÄÊý¾Ý½á¹¹Îªwork_struct£¬ÕâЩ¹¤×÷ÒÔ¶ÓÁнṹ×éÖ¯³É¹¤×÷¶ÓÁУ¨workqueue£©£¬ÆäÊý¾Ý½á¹¹Îªworkqueue_struct£¬¶ø¹¤×÷Ï߳̾ÍÊǸºÔðÖ´Ðй¤×÷¶ÓÁÐÖеŤ×÷¡£ÏµÍ³Ä¬ÈϵŤ×÷ÕßÏß³ÌΪevents,×Ô¼ºÒ²¿ÉÒÔ´´½¨×Ô¼ºµÄ¹¤×÷ÕßÏ̡߳£
2. ±íʾ¹¤×÷µÄÊý¾Ý½á¹¹
¹¤×÷ÓÃ<linux/workqueue.h>Öж¨ÒåµÄwork_struct½á¹¹±íʾ£º
struct work_struct{
unsigned long pending; /* Õâ¸ö¹¤×÷ÕýÔڵȴý´¦ÀíÂð£¿*/
struct list_head entry; /* Á¬½ÓËùÓй¤×÷µÄÁ´±í */
void (*func) (void *); /* ÒªÖ´Ðеĺ¯Êý */
void *data; /* ´«µÝ¸øº¯ÊýµÄ²ÎÊý */
void *wq_data; /* ÄÚ²¿Ê¹Óà */
struct timer_list timer; &n
Ïà¹ØÎĵµ£º
×¢: ¸ÃϵÁÐÎÄÕÂ×ªÔØ×Ôarm+linux chinaunix²©¿ÍȦȦÖ÷Ö®²©¿Í——http://blog.chinaunix.net/u/22630 /article_54997.html ΪÁËÊʺÏÎҵıàÒë»·¾³£¬Ô´´úÂëÓи͝£¬µ«ÊÇÏàÐÅÎÒ¸ü¸ÄºóµÄ´úÂë¸ü¼ÓÊʺÏÏÖÔÚ´ó¶àÊý¶ÁÕßµÄpc»·¾³¡£
×èÈû²Ù×÷ÊÇÖ¸£¬ÔÚÖ´ÐÐÉ豸²Ù×÷ʱ£¬Èô²»ÄÜ»ñµÃ×ÊÔ´£¬Ôò½ø³Ì¹ÒÆðÖ±µ½Âú×ã¿É²Ù×÷µ ......
3)Linux³ÌÐòÉè¼ÆÈëÃÅ--Îļþ²Ù×÷
LinuxÏÂÎļþµÄ²Ù×÷
ǰÑÔ:
ÎÒÃÇÔÚÕâÒ»½Ú½«ÒªÌÖÂÛlinuxÏÂÎļþ²Ù×÷µÄ¸÷¸öº¯Êý.
ÎļþµÄ´´½¨ºÍ¶Áд
ÎļþµÄ¸÷¸öÊôÐÔ
Ŀ¼ÎļþµÄ²Ù×÷
¹ÜµÀÎļþ
----------------------------------------------------------------------------
----
1¡£ÎļþµÄ´´½¨ºÍ¶Áд
ÎÒ¼ÙÉèÄãÒѾ֪µÀÁ˱ ......
5)Linux³ÌÐòÉè¼ÆÈëÃÅ--ÐźŴ¦Àí
LinuxϵÄÐźÅʼþ
ǰÑÔ:ÕâÒ»ÕÂÎÒÃÇÌÖÂÛÒ»ÏÂLinuxϵÄÐźŴ¦Àíº¯Êý.
LinuxϵÄÐźŴ¦Àíº¯Êý:
ÐźŵIJúÉú
ÐźŵĴ¦Àí
ÆäËüÐźź¯Êý
Ò»¸öʵÀý
1¡£ÐźŵIJúÉú
LinuxϵÄÐźſÉÒÔÀà±ÈÓÚDOSϵÄINT»òÕßÊÇWindowsϵÄʼþ.ÔÚÓÐÒ»¸öÐźŷ¢Éúʱ
ºòÏàÐŵÄÐźžͻᷢË͸øÏàÓ¦µÄ½ø³ ......
Sun·¢²¼µÄJDK/JREÓÐÁ½ÖÖ°æ±¾£¬Ò»ÖÖÊÇ.rpm.bin¸ñʽµÄ£¬ÁíÒ»ÖÖÔòÊÇ.bin¸ñʽµÄ£¬Ç°ÕßÎÒûÓÐÊÔ£¬µ«ÊÇÎÒÏëÓ¦¸ÃÊÇÊʺÏÓÚrpmµÄ£¬¿ÉÄܻᰲװµ½/usrÀïÃæÈ¥£¬¶øÇÒ×Ô¶¯»¯³Ì¶È¿ÉÒÔ¸ßһЩ¡£ºóÕßÔòÍêÈ«ÊÇÂÌÉ«Èí¼þ£¬Ö»ÊÇ×öÒ»¸ö½âѹµÄ¶¯×÷¡£ÏÂÃæÎÒ¾ÍÀ´½²ºóÕߵݲװȫ¹¥ÂÔ¡£
1¡¢Ê×ÏÈÎÒÃÇÒªµ½SunµÄÍøÕ¾ÉÏÈ¥ÏÂÔØJDK/JRE£¨µãÕâÀï½øÈ룩£¬×îе ......
Ô×Ó²Ù×÷£ºUPºÍSMPµÄÒìͬ
Ô×Ó²Ù×÷ÊDz»¿É·Ö¸îµÄ£¬ÔÚÖ´ÐÐÍê±Ï²»»á±»ÈÎºÎÆäËüÈÎÎñ»òʼþÖжϡ£ÔÚµ¥´¦ÀíÆ÷ϵͳ£¨UniProcessor£©ÖУ¬Äܹ»ÔÚµ¥ÌõÖ¸ÁîÖÐÍê³ÉµÄ²Ù×÷¶¼¿ÉÒÔÈÏΪÊÇ"Ô×Ó²Ù×÷"£¬ÒòΪÖжÏÖ»ÄÜ·¢ÉúÓÚÖ¸ÁîÖ®¼ä¡£ÕâÒ²ÊÇijЩCPUÖ¸ÁîϵͳÖÐÒýÈëÁËtest_and_set¡¢test_and_clearµÈÖ¸ÁîÓÃÓÚÁÙ½ç×ÊÔ´»¥³âµÄÔÒò¡£µ«ÊÇ£¬ÔڶԳƶà ......