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

Linux É豸Çý¶¯ Edition 3) workqueue


7.5. Tasklets »úÖÆ
ÉÏÒ»Ò³
 
µÚ 7 Õ ʱ¼ä, ÑÓʱ, ºÍÑÓºó¹¤×÷
 ÏÂÒ»Ò³
http://lsec.cc.ac.cn/~tengfei/doc/ldd3/index.html
Linux É豸Çý¶¯ Edition 3
7.5. Tasklets »úÖÆ
ÁíÒ»¸öÓйØÓÚ¶¨Ê±ÎÊÌâµÄÄÚºËÉèÊ©ÊÇ tasklet »úÖÆ. Ëü´ó²¿·ÖÓÃÔÚÖжϹÜÀí(ÎÒÃǽ«ÔÚµÚ 10 ÕÂÔٴμûµ½).
tasklet ÀàËÆÄں˶¨Ê±Æ÷ÔÚijЩ·½Ãæ. ËüÃÇÒ»Ö±ÔÚÖжÏʱ¼äÔËÐÐ, ËüÃÇÒ»Ö±ÔËÐÐÔÚµ÷¶ÈËüÃǵÄͬһ¸ö CPU ÉÏ, ²¢ÇÒËüÃǽÓÊÕÒ»¸ö
unsigned long ²ÎÊý. ²»ÏóÄں˶¨Ê±Æ÷, µ«ÊÇ, ÄãÎÞ·¨ÇëÇóÔÚÒ»¸öÖ¸¶¨µÄʱ¼äÖ´Ðк¯Êý. ͨ¹ýµ÷¶ÈÒ»¸ö tasklet,
Äã¼òµ¥µØÇëÇóËüÔÚÒÔºóµÄÒ»¸öÓÉÄÚºËÑ¡ÔñµÄʱ¼äÖ´ÐÐ. Õâ¸öÐÐΪ¶ÔÓÚÖжϴ¦ÀíÌØ±ðÓÐÓÃ, ÄÇÀïÓ²¼þÖжϱØÐë±»¾¡¿ì´¦Àí,
µ«ÊǴ󲿷ֵÄʱ¼ä¹ÜÀí¿ÉÒÔ°²È«µØÑÓºóµ½ÒÔºóµÄʱ¼ä. ʵ¼ÊÉÏ, Ò»¸ö tasket, ¾ÍÏóÒ»¸öÄں˶¨Ê±Æ÷,
ÔÚÒ»¸ö"ÈíÖжÏ"µÄÉÏÏÂÎÄÖÐÖ´ÐÐ(ÒÔÔ­×Óģʽ), ÔÚʹÄÜÓ²¼þÖжÏʱִÐÐÒì²½ÈÎÎñµÄÒ»¸öÄں˻úÖÆ.
Ò»¸ö tasklet ´æÔÚΪһ¸öʱ¼ä½á¹¹, Ëü±ØÐëÔÚʹÓÃǰ±»³õʼ»¯. ³õʼ»¯Äܹ»Í¨¹ýµ÷ÓÃÒ»¸öÌØ¶¨º¯Êý»òÕßͨ¹ýʹÓÃijЩºê¶¨ÒåÉùÃ÷½á¹¹:
#include <linux/interrupt.h>
struct tasklet_struct {
/* ... */
void (*func)(unsigned long);
unsigned long data;
};
void tasklet_init(struct tasklet_struct *t,
void (*func)(unsigned long), unsigned long data);
DECLARE_TASKLET(name, func, data);
DECLARE_TASKLET_DISABLED(name, func, data);
tasklet ÌṩÁËÐí¶àÓÐȤµÄÌØÉ«:
Ò»¸ö tasklet Äܹ»±»½ûÖ¹²¢ÇÒÖ®ºó±»ÖØÐÂʹÄÜ; Ëü²»»áÖ´ÐÐÖ±µ½Ëü±»Ê¹ÄÜÓë±»½ûÖ¹ÏàͬµÄµÄ´ÎÊý.
Èçͬ¶¨Ê±Æ÷, Ò»¸ö tasklet ¿ÉÒÔ×¢²áËü×Ô¼º.
Ò»¸ö tasklet Äܱ»µ÷¶ÈÀ´Ö´ÐÐÒÔÕý³£µÄÓÅÏȼ¶»òÕ߸ßÓÅÏȼ¶. ºóÒ»×éÒ»Ö±ÊÇÊ×ÏÈÖ´ÐÐ.
taslet ¿ÉÄÜÁ¢¿ÌÔËÐÐ, Èç¹ûϵͳ²»ÔÚÖØÔØÏÂ, µ«ÊÇ´Ó²»»áÍíÓÚÏÂÒ»¸öʱÖÓàÖßÕ.
Ò»¸ö tasklet ¿ÉÄÜºÍÆäËû tasklet ²¢·¢, µ«ÊǶÔËü×Ô¼ºÊÇÑϸñµØ´®ÐÐµÄ -- ͬÑùµÄ tasklet ´Ó²»Í¬Ê±ÔËÐÐÔÚ³¬¹ýÒ»¸ö´¦ÀíÆ÷ÉÏ. ͬÑù, ÈçÒѾ­Ìáµ½µÄ, Ò»¸ö tasklet ³£³£ÔÚµ÷¶ÈËüµÄͬһ¸ö CPU ÉÏÔËÐÐ.
jit Ä£¿é°üÀ¨ 2 ¸öÎļþ, /proc/jitasklet ºÍ /proc/jitasklethi,
Ëü·µ»ØºÍÔÚ"Äں˶¨Ê±Æ÷"Ò»½ÚÖнéÉܹýµÄ /proc/jitimer ͬÑùµÄÊý¾Ý. µ±Äã¶ÁÆäÖÐÒ»¸öÎļþʱ, ÄãÈ¡»ØÒ»¸ö header ºÍ
sixdata ÐÐ. µÚÒ»¸öÊý¾ÝÐÐÃèÊöÁ˵÷Óýø³ÌµÄÉÏÏÂÎÄ, ²¢ÇÒÆäËûµÄÐÐÃèÊöÁËÒ»¸ö tasklet ¹ý³ÌÁ¬ÐøÔ


Ïà¹ØÎĵµ£º

linuxÆô¶¯¹ý³Ì

linuxÆô¶¯Á÷³Ì£º
ϵͳԤ´¦Àí³ÌÐò->GRUB  (´Ë½×¶Î¿ÉÒÔÀí½âΪbootloader½×¶Î)
->kernel   (´Ë½×¶ÎΪkernel)
->initrd->initÆô¶¯->inittab->rc.sysinit->functions(PATH)->modules->rcX.d(¶ÁÅäÖÃÎļþ)
1.->×Ö·ûģʽ->tty->bash
2.->ͼÐÎģʽ->½øÈëX Window-> ......

linux µÝ¹é²éÕÒÎļþÄÚÈÝ

µÝ¹é²éÕÒÎļþÄÚÈÝ£º
grep   -n   -ri   "slewing"   ./
ÔÚµ±Ç°Ä¿Ïµݹé²éÕÒËùÓеÄÎļþ
       -i, --ignore-case
              Ignore  case  distinctions  ......

linux tasklet 2

http://hi.baidu.com/j_fo/blog/item/7412bb018deab109728da572.html
LinuxÄÚºË irq/soft irq/tasklet/ͬ²½
2009-10-08 21:22
1.Öжϴ¦Àí³ÌÐò½áÊøÖ®Ç°£¬²»ÔÊÐí²úÉúÏàͬµÄÖжÏʼþ£»£¨½ûÓÃPICÉϸÃÖжϣ¬µ«¿ÉÒÔ²úÉúÆäËûÖжϣ©
2.Öжϴ¦Àí³ÌÐò¡¢ÈíÖжϡ¢tasklet¼È²»¿É±»ÇÀÕ¼Ò²²»Äܱ»×èÈû£¬×î¶à·¢ÉúÖжÏǶÌ×£»
3.Ö´ÐÐÖÐ¶Ï ......

linux 2.6 kernel epoll

http://hi.baidu.com/j_fo/blog/item/a43fa60fa6e2f4eaab6457d5.html
Linux2.6ÄÚºËepoll½éÉÜ
2008-11-05 16:35
http://blog.csdn.net/rstevens/archive/2007/10/30/1858067.aspx
http://hi.baidu.com/jmlover/blog/item/24c28b131e6b48d7f7039ee6.html
http://hi.baidu.com/jmlover/blog/item/e64df724f12926348744f9 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ