linux tasklet 3
http://hi.baidu.com/styl_007/blog/item/82b833f475036ce67609d7b6.html
Öжϴ¦ÀíµÄtasklet£¨Ð¡ÈÎÎñ£©»úÖÆ£²»¹ýÈç´Ë
2009-08-10 18:30
ÖжϷþÎñ³ÌÐòÒ»°ã¶¼ÊÇÔÚÖжÏÇëÇ󹨱յÄÌõ¼þÏÂÖ´ÐеÄ
,
ÒÔ±ÜÃâǶÌ×¶øÊ¹ÖжϿØÖƸ´ÔÓ»¯¡£µ«ÊÇ£¬ÖжÏÊÇÒ»¸öËæ»úʼþ£¬ËüËæÊ±»áµ½À´£¬Èç¹û¹ØÖжϵÄʱ¼äÌ«³¤£¬
CPU
¾Í²»Äܼ°Ê±ÏìÓ¦ÆäËûµÄÖжÏÇëÇ󣬴ӶøÔì³ÉÖжϵĶªÊ§¡£Òò´Ë£¬LinuxÄں˵ÄÄ¿±ê¾ÍÊǾ¡¿ÉÄÜ¿ìµÄ´¦ÀíÍêÖжÏÇëÇ󣬾¡ÆäËùÄܰѸü¶àµÄ´¦ÀíÏòºóÍÆ³Ù¡£ÀýÈ磬¼ÙÉèÒ»¸öÊý¾Ý¿éÒѾ´ïµ½ÁËÍøÏߣ¬µ±ÖжϿØÖÆÆ÷½ÓÊܵ½Õâ¸öÖжÏÇëÇóÐźÅʱ£¬
Linux
ÄÚºËÖ»ÊǼòµ¥µØ±êÖ¾Êý¾Ýµ½À´ÁË£¬È»ºóÈô¦ÀíÆ÷»Ö¸´µ½ËüÒÔǰÔËÐеÄ״̬£¬ÆäÓàµÄ´¦ÀíÉÔºóÔÙ½øÐУ¨Èç°ÑÊý¾ÝÒÆÈëÒ»¸ö»º³åÇø£¬½ÓÊÜÊý¾ÝµÄ½ø³Ì¾Í¿ÉÒÔÔÚ»º³åÇøÕÒµ½Êý¾Ý£©¡£Òò´Ë£¬Äں˰ÑÖжϴ¦Àí·ÖΪÁ½²¿·Ö£ºÉϰ벿£¨
tophalf
£©ºÍϰ벿£¨
bottomhalf
£©£¬Éϰ벿£¨¾ÍÊÇÖжϷþÎñ³ÌÐò£©ÄÚºËÁ¢¼´Ö´ÐУ¬¶øÏ°벿£¨¾ÍÊÇһЩÄں˺¯Êý£©Áô×ÅÉÔºó´¦Àí£¬
Ê×ÏÈ£¬Ò»¸ö¿ìËٵēÉϰ벿”À´´¦ÀíÓ²¼þ·¢³öµÄÇëÇó£¬Ëü±ØÐëÔÚÒ»¸öеÄÖжϲúÉú֮ǰÖÕÖ¹¡£Í¨³££¬³ýÁËÔÚÉ豸ºÍһЩÄڴ滺³åÇø£¨Èç¹ûÄãµÄÉ豸Óõ½ÁË
DMA
£¬¾Í²»Ö¹ÕâЩ£©Ö®¼äÒÆ¶¯»ò´«ËÍÊý¾Ý£¬È·¶¨Ó²¼þÊÇ·ñ´¦ÓÚ½¡È«µÄ״̬֮Í⣬ÕâÒ»²¿·Ö×öµÄ¹¤×÷ºÜÉÙ¡£
ϰ벿ÔËÐÐʱÊÇÔÊÐíÖжÏÇëÇóµÄ£¬¶øÉϰ벿ÔËÐÐʱÊǹØÖжϵģ¬ÕâÊǶþÕßÖ®¼äµÄÖ÷񻂿±ð¡£
µ«ÊÇ£¬Äں˵½µ×ʲʱºòÖ´ÐÐϰ벿£¬ÒÔºÎÖÖ·½Ê½×é֯ϰ벿£¿Õâ¾ÍÊÇÎÒÃÇÒªÌÖÂÛµÄϰ벿ʵÏÖ»úÖÆ£¬ÕâÖÖ»úÖÆÔÚÄں˵ÄÑݱä¹ý³ÌÖв»¶ÏµÃµ½¸Ä½ø£¬ÔÚÒÔǰµÄÄÚºËÖУ¬Õâ¸ö»úÖÆ½Ð×ö
bottomhalf(
¼ò³Æ
bh)
£¬ÔÚ
2.4
ÒÔºóµÄ°æ±¾ÖÐÓÐÁËеķ¢Õ¹ºÍ¸Ä½ø£¬¸Ä½øµÄÄ¿±êʹϰ벿¿ÉÒÔÔÚ¶à´¦Àí»úÉϲ¢ÐÐÖ´ÐУ¬²¢ÓÐÖúÓÚÇý¶¯³ÌÐòµÄ¿ª·¢Õß½øÐÐÇý¶¯³ÌÐòµÄ¿ª·¢¡£ÏÂÃæÖ÷Òª½éÉܳ£ÓõÄСÈÎÎñ
(Tasklet)
»úÖÆ¼°
2.6
ÄÚºËÖеŤ×÷¶ÓÁлúÖÆ¡£
СÈÎÎñ»úÖÆ
ÕâÀïµÄСÈÎÎñÊÇÖ¸¶ÔÒªÍÆ³ÙÖ´Ðеĺ¯Êý½øÐÐ×éÖ¯µÄÒ»ÖÖ»úÖÆ
¡£ÆäÊý¾Ý½á¹¹Îª
tasklet_struct
£¬Ã¿¸ö½á¹¹´ú±íÒ»¸ö¶ÀÁ¢µÄСÈÎÎñ£¬Æä¶¨ÒåÈçÏ£º
structtasklet_struct {
structtasklet_struct *next; /*
Ö¸ÏòÁ´±íÖеÄÏÂÒ»¸ö½á¹¹
*/
unsignedlong state; /*
СÈÎÎñµÄ״̬
*/
atomi
Ïà¹ØÎĵµ£º
1. gccµÄ__attribute__±àÒïÊôÐÔ
ÒªÁ˽âLinux Kernel´úÂëµÄ·Ö¶ÎÐÅÏ¢£¬ÐèÒªÁ˽âÒ»ÏÂgccµÄ__attribute__µÄ±àÒïÊôÐÔ£¬__attribute__Ö÷ÒªÓÃÓڸıäËùÉùÃ÷»ò¶¨ÒåµÄº¯Êý»òÊý¾ÝµÄÌØÐÔ£¬ËüÓкܶà×ÓÏÓÃÓڸıä×÷ÓöÔÏóµÄÌØÐÔ¡£±ÈÈç¶Ôº¯Êý£¬noline½«½ûÖ¹½øÐÐÄÚÁªÀ©Õ¹¡¢noreturn±íʾûÓзµ»ØÖµ¡¢pure±íÃ÷º¯Êý³ý·µ»ØÖµÍ⣬²»»áͨ¹ýÆäËü ......
½üÀ´ÐèҪдһ¸öÔÚLINUXϵÄͼÐÎÎļþ´¦Àí³ÌÐò£¬×ʼֻ֧³ÖBMP¸ñʽ£¬ºóÀ´ÒªÇóÒ²´¦ÀíJPG¡£¼±µÃץͷ°¡£¬ÒÔǰ¿ÉûÈÏÕæÑо¿¹ýJPG…………
ÔÚÍøÉÏÕÒµ½ÁËlibjpeg£¬¿ÉÒÔÓÃÕâ¸ö¿âʵÏÖJPGͼƬµÄ¸÷ÖÖ²Ù×÷£º
ÏÂÔØ£ºhttp://freeware.sgi.com/sou ......
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¡£µ±ºóÌ¨Ï ......
ÔÌû£ºhttp://www.cnscn.org/read.php?tid-44684.html
iptablesÓÐÈýÖÖÁ´
1£ºINPUT (½øÀ´µÄÁ´)
2£ºOUTPUT(³öÈ¥µÄÁ´)
3£ºFORWARD(ת·¢µÄÁ´)
iptables -A INPUT -p icmp -j DROP
-A(Ìí¼ÓÒ»¸öÁ´) -p ÐÒé -j(Ìí¼Ó¶¯×÷) ˵Ã÷Ìí¼ÓÒ»¸ö½øÀ´µÄÁ´¡£ÐÒéÊÇicmp¶¯×÷¾Ü¾ø¡£
iptables -L -n (ÓÃÊ÷ÐνṹÀ´¿´Ò»ÏÂiptablesµÄÉèÖÃ)
......
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 ......