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/group__mod__softirq.html
Deferred Activities
[Linux DDE Common
]
This module emulates deferred activities
at interrupt level inside the Linux kernel.
More...
Softirqs
This is from include/linux/interrupt.h
Softirqs are multithreaded, not serialized BH-like activities. Several
softirqs may run on several CPUs simultaneously - no matter if they are
of the same type.
Properties:
If raise_softirq()
is called, then softirq is guarenteed to be executed on this CPU.
On schedule()
do_softirq() is called if any softirq is active on this CPU.
Softirqs are not serialized in any way.
Linux (2.4.20) has only 4 softirqs:
HI_SOFTIRQ
NET_TX_SOFTIRQ
and NET_RX_SOFTIRQ
TASKLET_SOFTIRQ
Relevant for Linux DDE are for now only the first and the latter - NET_*
softirqs allow transparent mutli-threading in Linux' network code. HI_SOFTIRQ
is for high priority bottom halves as old-style
BHs and sound related drivers. It triggers execution of tasklet_hi_action()
. TASKLET_SOFTIRQ
runs lower priority bottom halves (e.g. in the console subsystem). It triggers execution of tasklet_action()
.
Todo:
only the implementation of tasklets is done in Linux DDE
void
raise_softirq
(int nr)
Raise Softirq.
Tasklets
This is from kernel/softirq.c and include/linux/interrupt.h)
Tasklets are the multithreaded analogue of BHs.
Main feature differing them of generic softirqs: one tasklet is running only on one CPU simultaneously.
Main feature differing them of BHs: different tasklets may be run simultaneously on different CPUs.
Properties:
If tasklet_schedule()
is called, then tasklet is guaranteed to be executed on some cpu at least on
Ïà¹ØÎĵµ£º
´´½¨×ÀÃæÍ¼±ê
Ŀǰ½«ÍøÂçÓ¦ÓÃÀ©Õ¹µ½×ÀÃæÊÇÒ»¸öÇ÷ÊÆ£¬´æÔÚןܶà½â¾ö·½°¸£¬±¾ÎÄÒÔ Mozilla Prism ΪÀý£¬ÀàËÆµÄ·½·¨Í¬ÑùÊÊÓÃÓÚ Google Chrome ¡£
1. µ½ Mozilla Prism µÄÍøÕ¾ÉÏÏÂÔØ Prism£¬µã»÷ Download Now Ö®ºó»áÌáʾÓÐÁ½ÖÖ£¬Ò»ÖÖÊÇÒÔ Mozilla Firefox À©Õ¹µÄ·½Ê½£¬ÊʺÏÒѾ°²×°ÓÐ Firefox µÄÅóÓÑ£»Ò»Ö ......
1. gccµÄ__attribute__±àÒïÊôÐÔ
ÒªÁ˽âLinux Kernel´úÂëµÄ·Ö¶ÎÐÅÏ¢£¬ÐèÒªÁ˽âÒ»ÏÂgccµÄ__attribute__µÄ±àÒïÊôÐÔ£¬__attribute__Ö÷ÒªÓÃÓڸıäËùÉùÃ÷»ò¶¨ÒåµÄº¯Êý»òÊý¾ÝµÄÌØÐÔ£¬ËüÓкܶà×ÓÏÓÃÓڸıä×÷ÓöÔÏóµÄÌØÐÔ¡£±ÈÈç¶Ôº¯Êý£¬noline½«½ûÖ¹½øÐÐÄÚÁªÀ©Õ¹¡¢noreturn±íʾûÓзµ»ØÖµ¡¢pure±íÃ÷º¯Êý³ý·µ»ØÖµÍ⣬²»»áͨ¹ýÆäËü ......
ÔÚÄ³Ð©ÌØÊâµÄÇé¿öÏ£¬ÈçÒòÎªÍøÂç»òÕßXÅäÖõĹØÏµÎÞ·¨Á¬½Óµ½X server»òÕßÖ÷»úÉÏûÓÐX£¬¾Í¿ÉÒÔʹÓþ²Ä¬°²×°µÄ·½Ê½°²×°Êý¾Ý¿â£¬Í¬ÑùÈç¹ûÐèÒª´ó¹æÄ£²¿Êð£¬Ôò¾²Ä¬°²×°½«»á´ó´ó¼õÇáDBAµÄÖØ¸´ÀͶ¯Á¦£¬¶øÇÒ¾²Ä¬°²×°²»ÐèÒªX£¬´Ó°²×°Ð§ÂÊ
ÔÚÄ³Ð©ÌØÊâµÄÇé¿öÏ£¬ÈçÒòÎªÍøÂç»òÕßXÅäÖõĹØÏµÎÞ·¨Á¬½Óµ½X server»òÕßÖ÷»úÉÏûÓÐX£ ......
http://hi.baidu.com/j_fo/blog/item/55f4014f1a226937aec3ab01.html
Linux Kernel Thread µÄÌÖÂÛ
2007-05-14 11:45
kernel thread
Gearheads Written by Sreekrishnan Venkateswaran
Thursday, 15 September 2005
Threads are programming abstractions used in concurrent processing. A ke ......
http://hi.baidu.com/styl_007/blog/item/82b833f475036ce67609d7b6.html
Öжϴ¦ÀíµÄtasklet£¨Ð¡ÈÎÎñ£©»úÖÆ£²»¹ýÈç´Ë
2009-08-10 18:30
ÖжϷþÎñ³ÌÐòÒ»°ã¶¼ÊÇÔÚÖжÏÇëÇ󹨱յÄÌõ¼þÏÂÖ´ÐеÄ
,
ÒÔ±ÜÃâǶÌ×¶øÊ¹ÖжϿØÖƸ´ÔÓ»¯¡£µ«ÊÇ£¬ÖжÏÊÇÒ»¸öËæ»úʼþ£¬ËüËæÊ±»áµ½À´£¬Èç¹û¹ØÖжϵÄʱ¼äÌ«³¤£¬
CPU
¾Í²»Äܼ°Ê±ÏìÓ¦Æä ......