Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

LinuxÖеŤ×÷¶ÓÁÐ (2.6.0~2.6.19 and 2.6.20 ~ now)

http://blog.chinaunix.net/u2/69889/showart_971040.html
LinuxÖеŤ×÷¶ÓÁÐ
£Ûǰ¼Ç£ÝLinux×Ô´Ó2.6.20Ö®ºó£¬¹¤×÷¶ÓÁз¢ÉúÁËһЩ±ä»¯£¬Ä¿Ç°´ÓÍøÂçÉÏËÑË÷µÄ×ÊÁÏÒ»°ã¶¼ÊǽéÉÜÀϰ汾µÄ¹¤×÷¶ÓÁУ¬ºÜÉÙ¼ûµ½¶Ôа汾µÄ½éÉÜ¡£±¾ÎĶÔÐÂÀϰ汾¶¼×öÁ˼òÒª¸ÅÊö£¬²¢·Ö±ðÌṩÁ˼òµ¥µÄʵ×÷°¸Àý¡£
*******************************************************************************************************************
¹¤×÷¶ÓÁÐ
(work
queue)
ÊÇ
Linux
kernel
Öн«¹¤×÷ÍÆºóÖ´ÐеÄÒ»ÖÖ»úÖÆ¡£ÕâÖÖ»úÖÆºÍ
BH
»ò
Tasklets
²»Í¬Ö®´¦ÔÚÓÚ¹¤×÷¶ÓÁÐÊǰÑÍÆºóµÄ¹¤×÷½»ÓÉÒ»¸öÄÚºËÏß³ÌÈ¥Ö´ÐУ¬Òò´Ë¹¤×÷¶ÓÁеÄÓÅÊÆ¾ÍÔÚÓÚËüÔÊÐíÖØÐµ÷¶ÈÉõÖÁ˯Ãß¡£
¹¤×÷¶ÓÁÐÊÇ
2.6
Äں˿ªÊ¼ÒýÈëµÄ»úÖÆ£¬ÔÚ
2.6.20
Ö®ºó£¬¹¤×÷¶ÓÁеÄÊý¾Ý½á¹¹·¢ÉúÁËһЩ±ä»¯£¬Òò´Ë±¾ÎÄ·Ö³ÉÁ½¸ö²¿·Ö¶Ô
2.6.20
֮ǰºÍÖ®ºóµÄ°æ±¾·Ö±ð×ö½éÉÜ¡£
1
¡¢
2.6.0~2.6.19
Êý¾Ý½á¹¹£º
struct
work_struct {
    unsigned
long pending;
    struct
list_head entry;
    void
(*func)(void *);
    void
*data;
    void
*wq_data;
    struct
timer_list timer;
};
pending
ÊÇÓÃÀ´¼Ç¼¹¤×÷ÊÇ·ñÒѾ­¹ÒÔÚ¶ÓÁÐÉÏ£»
entry
ÊÇÑ­»·Á´±í½á¹¹£»
func
×÷Ϊº¯ÊýÖ¸Õ룬ÓÉÓû§ÊµÏÖ£»
data
ÓÃÀ´´æ´¢Óû§µÄ˽ÈËÊý¾Ý£¬´ËÊý¾Ý¼´ÊÇ
func
µÄ²ÎÊý£»
wq_data
Ò»°ãÓÃÀ´Ö¸Ïò¹¤×÷ÕßỊ̈߳¨¹¤×÷ÕßÏ̲߳ο¼ÏÂÎÄ£©£»
timer
ÊÇÍÆºóÖ´ÐеĶ¨Ê±Æ÷¡£
work_struct
µÄÕâЩ±äÁ¿À
func
ºÍ
data
ÊÇÓû§Ê¹Óõ쬯äËûÊÇÄÚ²¿±äÁ¿£¬ÎÒÃÇ¿ÉÒÔ²»ÓÃÌ«¹ý¹ØÐÄ¡£
 
API
£º
1)
INIT_WORK(_work, _func, _data)
³õʼ»¯Ö¸¶¨¹¤×÷£¬Ä¿µÄÊǰÑÓû§Ö¸¶¨µÄº¯Êý
_func
¼°
_func
ÐèÒªµÄ²ÎÊý
_data
¸³¸ø
work_struct
µÄ
func
¼°
data
±äÁ¿¡£
2)
int schedule_work(struct work_struct *work)
¶Ô¹¤×÷½øÐе÷¶È£¬¼´°Ñ¸ø¶¨¹¤×÷µÄ´¦Àíº¯ÊýÌá½»¸øÈ±Ê¡µÄ¹¤×÷¶ÓÁк͹¤×÷ÕßÏ̡߳£¹¤×÷ÕßÏ̱߳¾ÖÊÉÏÊÇÒ»¸öÆÕͨµÄÄÚºËỊ̈߳¬ÔÚĬÈÏÇé¿öÏ£¬Ã¿¸ö
CPU
¾ùÓÐÒ»¸öÀàÐÍΪ“
events”
µÄ¹¤×÷ÕßỊ̈߳¬µ±µ÷ÓÃ
schedule_work
ʱ£¬Õâ¸ö¹¤×÷ÕßÏ̻߳ᱻ»½ÐÑÈ¥Ö´Ðй¤×÷Á´±íÉϵÄËùÓй¤×÷¡£
3)
int schedule_delayed_work(struct work_struct *work, unsigned long
delay)
ÑÓ³ÙÖ´Ðй¤×÷£¬Óë
schedu


Ïà¹ØÎĵµ£º

Linux²Ù×÷ϵͳµÄConfigure²ÎÊý½âÊÍ˵Ã÷

Linux»·¾³ÏµÄÈí¼þ°²×°£¬²¢²»ÊÇÒ»¼þÈÝÒ×µÄÊÂÇ飻Èç¹ûͨ¹ýÔ´´úÂë±àÒëºóÔÚ°²×°£¬µ±È»ÊÂÇé¾Í¸üΪ¸´ÔÓһЩ£»ÏÖÔÚ°²×°¸÷ÖÖÈí¼þµÄ½Ì³Ì¶¼·Ç³£ÆÕ±é£»µ«Íò±ä²»ÀëÆäÖУ¬¶Ô»ù´¡ÖªÊ¶µÄÔúÊµÕÆÎÕ£¬°²×°¸÷ÖÖÈí¼þµÄÎÊÌâ¾ÍÓ­Èжø½âÁË¡£Configure½Å±¾ÅäÖù¤¾ß¾ÍÊÇ»ù´¡Ö®Ò»£¬ËüÊÇautoconfµÄ¹¤¾ßµÄ»ù±¾Ó¦Óá£
ÓëһЩ¼¼ÇÉÏà±È£¬ConfigureÏԵûù´ ......

[¸ßÐÔÄܼ¼Êõ] Linux2.6ÄÚºËepoll½éÉÜ(0.1°æ±¾)

[¸ßÐÔÄܼ¼Êõ] Linux2.6ÄÚºËepoll½éÉÜ(0.1°æ±¾)
ת×Ô£º http://mechgouki.blogdriver.com/mechgouki/601157.html
[×÷Õß]£ºëøêÅ,2005/3/30,0.1°æ±¾
[°æÈ¨ÉùÃ÷]£º´ËÎĵµ×ñÑ­GNU×ÔÓÉÎĵµÐí¿ÉÖ¤(GNU Free Documentation License).ÈκÎÈË¿ÉÒÔ×ÔÓɸ´ÖÆ,·Ö·¢,ÐÞ¸Ä,²»¹ýÈç¹û·½±ã,Çë×¢Ã÷³ö´¦ºÍ×÷Õß:)
(1)µ¼ÑÔ£º
Ê×ÏÈ£¬ÎÒÇ¿ÁÒ½¨Òé ......

linux tasklet 3

http://hi.baidu.com/styl_007/blog/item/82b833f475036ce67609d7b6.html
Öжϴ¦ÀíµÄtasklet£¨Ð¡ÈÎÎñ£©»úÖÆ£­²»¹ýÈç´Ë
2009-08-10 18:30
ÖжϷþÎñ³ÌÐòÒ»°ã¶¼ÊÇÔÚÖжÏÇëÇ󹨱յÄÌõ¼þÏÂÖ´ÐеÄ
,
ÒÔ±ÜÃâǶÌ×¶øÊ¹ÖжϿØÖƸ´ÔÓ»¯¡£µ«ÊÇ£¬ÖжÏÊÇÒ»¸öËæ»úʼþ£¬ËüËæÊ±»áµ½À´£¬Èç¹û¹ØÖжϵÄʱ¼äÌ«³¤£¬
CPU
¾Í²»Äܼ°Ê±ÏìÓ¦Æä ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ