Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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²Ù×÷ϵͳµÄConfigure²ÎÊý½âÊÍ˵Ã÷

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

linux tasklet

http://blog.chinaunix.net/u/24474/showart_227121.html
Çý¶¯³ÌÐòʹÓÃtasklet»úÖÆ
ת×Ô£ºhttp://blog.chinaunix.net/u/15169/showart.php?id=82989
Çý
¶¯³ÌÐòÔÚ³õʼ»¯Ê±£¬Í¨¹ýº¯Êýtask_init½¨Á¢Ò»¸ötasklet£¬È»ºóµ÷Óú¯Êýtasklet_schedule½«Õâ¸ötasklet·ÅÔÚ
tasklet_vecÁ´±íµÄÍ·²¿£¬²¢»½ÐѺǫ́Ïß³Ìksoftirqd¡£µ±ºóÌ¨Ï ......

תÌù£ºLinux I/OÖØ¶¨ÏòµÄһЩС¼¼ÇÉ

¼¶±ð£º ³õ¼¶
·®Ææ (fanqi@cn.ibm.com), Xseries eServer ¹¤³Ìʦ, IBM TSS China Beijing
2004 Äê 11 ÔÂ 01 ÈÕ
Linux I/O ÖØ¶¨ÏòËäÈ»ºÜ¼òµ¥£¬µ«Ôڽű¾±àд¡¢ÏµÍ³¹ÜÀíʱȴҪ³£³£´ò½»µÀ£¬¸ãÇåÆäÖÐʹÓü¼Çɷdz£ÓÐÓá£
Ê×ÏÈ˵һÏÂʲôÊÇI/OÖØ¶¨Ïò£¬ËùνI/OÖØ¶¨Ïò¼òµ¥À´Ëµ¾ÍÊÇÒ»¸ö¹ý³Ì£¬Õâ¸ö¹ý³Ì²¶×½Ò»¸öÎļþ£¬»òÕßÃüÁ³ÌÐò ......

linux D Bus tutorial

http://dbus.freedesktop.org/doc/dbus-tutorial.html
D-Bus Tutorial
Havoc
Pennington
Red Hat, Inc.
<hp@pobox.com
>
David
Wheeler
John
Palmieri
Red Hat, Inc.
<johnp@redhat.com
>
Colin
Walters
Red Hat, Inc.
<walters@redhat.com
>
Version 0.5.0
Table of Contents
......

linux tasklet 4

ÒýÓà 2 Â¥ cokeliu µÄ»Ø¸´:
лл! ÇëÎÊÊÇ·ñÿµ÷ÓÃÒ»´Îtasklet_schedule(B task); B taskÈÎÎñ±»¼Óµ½Á´±íÉÏÖ»»á±»Ö´ÐÐÒ»´Î?
Êǵģ¬Ö»±»¼ÓÒ»´Î
µÚÒ»´Îtasklet_schedule(B task)¸øËûÒ»¸ö״̬TASK_STATE_SCHED
×÷±ê¼Ç£¬ÒÔºóµÄtasklet_schedule(B task)»á¼ì²éÕâ¸ö±ê¼Ç
http://os.inf.tu-dresden.de/l4env/doc/html/dde_linux ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ