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.Ö´ÐÐÖжϴ¦ÀíµÄÄں˷¾¶²»Äܱ»Ö´ÐÐÑÓ³Ùº¯Êý»òϵͳµ÷Ó÷þÎñÀý³ÌµÄÄں˿ØÖÆÂ·¾¶Öжϡ£
ÓÚÊÇÓÐÈçϽáÂÛ£º
a.Öжϴ¦Àí³ÌÐòºÍtasklet²»±ØÊÇ¿ÉÖØÈëµÄ£»
b.½ö±»ÈíÖжϺÍtasklet·ÃÎʵÄÿCPU±äÁ¿²»ÐèҪͬ²½£»
c.½ö±»Ò»ÖÖtasklet·ÃÎʵÄÊý¾Ý²»ÐèҪͬ²½¡£
ÈíÖжϣ¨¼´±ãÊÇͬһÖÖÀàÐ͵ÄÈíÖжϣ©¿ÉÒÔ²¢·¢µØÔËÐÐÔÚ¶à¸öCPUÉÏ¡£
ͬÀàÐ͵Ätasklet×ÜÊDZ»´®Ðл¯Ö´ÐУ¬²»»áÔÚÁ½¸öCPUÉÏͬʱÔËÐÐÏàͬÀàÐ͵Ätasklet¡£
Ò»¸ötasklet¿ÉÒÔ±»µ÷¶È¶à´Î£¬µ«Êµ¼ÊÖ»»áÔËÐÐÒ»´Î¡£
static inline void tasklet_schedule(struct tasklet_struct *t)
{
if (!test_and_set_bit
(TASKLET_STATE_SCHED, &t->state))
__tasklet_schedule(t);
}
ÁíÍâ²Î¼ûdo_softirq > _do_softirq > tasklet_action
Ò»¸öÖжϴ¦Àí³ÌÐò¼È¿ÉÒÔÇÀÕ¼ÆäËûµÄÖжϴ¦Àí³ÌÐò£¬Ò²¿ÉÒÔÇÀÕ¼Òì³£´¦Àí³ÌÐò£»
Òì ......
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/e64df724f12926348744f91b.html
Ãû´Ê½âÊÍ£ºman epollÖ®ºó£¬µÃµ½ÈçϽá¹û£º
NAME
epoll - I/O event notification facility
SYNOPSIS
#include <sys/epoll.h>
DEscrīptION
epoll is a variant of poll(2) that can be used either as Edge or Level
Triggered interface and scales well to large numbers of watched fds.
Three system calls are provided to set up and control an epoll set:
epoll_create(2), epoll_ctl(2), epoll_wait(2).
An epoll set is connected to a file descrīptor created by
epoll_create(2). Interest for certain file descrīptors is then
registered via
epoll_ctl(2). Finally, the actual wait is started by epoll_wait(2).
Æäʵ£¬Ò»ÇеĽâÊͶ¼ÊǶàÓàµÄ£¬°´ÕÕÎÒĿǰµÄÁ˽⣠......
[¸ßÐÔÄܼ¼Êõ] Linux2.6ÄÚºËepoll½éÉÜ(0.1°æ±¾)
ת×Ô£º http://mechgouki.blogdriver.com/mechgouki/601157.html
[×÷Õß]£ºëøêÅ,2005/3/30,0.1°æ±¾
[°æÈ¨ÉùÃ÷]£º´ËÎĵµ×ñÑGNU×ÔÓÉÎĵµÐí¿ÉÖ¤(GNU Free Documentation License).ÈκÎÈË¿ÉÒÔ×ÔÓɸ´ÖÆ,·Ö·¢,ÐÞ¸Ä,²»¹ýÈç¹û·½±ã,Çë×¢Ã÷³ö´¦ºÍ×÷Õß:)
(1)µ¼ÑÔ£º
Ê×ÏÈ£¬ÎÒÇ¿ÁÒ½¨Òé´ó¼ÒÔĶÁRichard StevensÖø×÷¡¶TCP/IP Illustracted Volume 1,2,3¡·ºÍ¡¶UNIX Network Programming Volume 1,2¡·¡£ËäÈ»ËûÀ뿪ÎÒÃÇ´ó¼ÒÒѾ5Äê¶àÁË£¬µ«ÊÇËûµÄÊéÒÀÈ»ÊǽøÈëÍøÂç±à³ÌµÄ×îÖ±½ÓµÄµÀ·¡£ÆäÖеÄ3¾íµÄ¡¶TCP/IP Illustracted¡·¾í1ÊDZضÁ£Èç¹ûÄã²»Á˽âtcpÐÒé¸÷¸öÑ¡ÏîµÄÏêϸ¶¨Ò壬Äã¾ÍʧȥÁËÓÅ»¯³ÌÐòÖØÒªµÄÒ»¸öÊֶΡ£¾í2,3¿ÉÒÔÑ¡¶Áһϡ£±ÈÈç¾í2½²½âµÄÊÇ4.4BSDÄÚºËTCP/IPÐÒéջʵÏÖ----Õâ¸ö°æ±¾µÄÐÒéÕ»¼¸ºõÓ°ÏìÁËÏÖÔÚËùÓеÄÖ÷Á÷os£¬µ«ÊÇÒòΪÄê´ú¾ÃÔ¶£¬ÄÚÈݲ»Ò»¶¨ÄÇôvogue.ÔÚÕâÀïÎÒ¶àÍÆ¼öÒ»±¾¡¶The Linux Networking Architecture--Design and Implementation of Network Protocols in the Linux Kernel¡·£¬ÒÔ2.4Äں˽²½âLinux TCP/IPʵÏÖ£¬Ï൱²»´í.×÷Ϊһ¸öÏÖʵÊÀ½çÖеÄʵÏÖ£¬ºÜ¶àʱºòÄã±ØÐë×÷ºÜ¶àȨºâ£¬Õâʱºò²Î¿¼Ò»¸ö¾Ã¾¿¼ÑéµÄϵͳ¸üÓÐʵ¼ÊÒâ ......
Linux¿ª»úÁ÷³Ì--¶ÁÊé±Ê¼Ç
˵Ã÷£ºÎªÁËѧϰLinuxµÄ¿ª»úÁ÷³Ì£¬ÔÚÍøÂçÉϲ鿴Á˺ܶàÎÄÕ£¬¾õµÃÉÔÓÐÁìÎò£¬±ãÏëдµã¶«Î÷³öÀ´£¬ÒÔ·À½«À´ÍüÈ´¡£µ«ÕæÕýҪдʱȴÓÖ¾õµÃÍøÉϵÄÎÄÕ°ѸÃдµÄ¶¼Ð´ÁË£¬×Ô¼ºÔÙҲд²»³öʲôÁË¡£ÍøÉÏÓÐһλ½Ð"Äñ¸ç"ͬ°ûµÄÎÄÕ½²µÄÌØ±ðÈ«Ãæ£¬Ë¼Â·Ò²ºÜÇåÎú¡£ÔÚÕâ¶ùÎÒ²»¹ÜЩʲô¶¼ÄÑÃâÓгϮµÄÏÓÒÉ£¬¾ÍÎÒÏÖÔÚµÄˮƽ£¬ÏëÒª´´ÐÂÒ²ºÜÄÑ£¬¼ÈÈ»ÄÑÓд´Ð£¬ÄǾÍË÷ÐÔµ±×÷±Ê¼Ç°É£¬¸ù¾ÝÄñ¸çµÄÎÄÕÂÕâ¶ù¼òµ¥µÄ¼Ç¼һµãlinux¿ª»úµÄÁ÷³Ì¡£°Ñ“Äñ¸ç”µÄ¸öÈËÍøÕ¾Á´½ÓÔÚ´Ë£¬Ï£ÍûÏëÒªÁ˽⿪»úÁ÷³ÌµÄÅóÓÑÖ±½ÓÈ¥ËûÄǶù¿´£¬ ......
¼¶±ð£º ³õ¼¶
·®Ææ (fanqi@cn.ibm.com), Xseries eServer ¹¤³Ìʦ, IBM TSS China Beijing
2004 Äê 11 ÔÂ 01 ÈÕ
Linux I/O ÖØ¶¨ÏòËäÈ»ºÜ¼òµ¥£¬µ«Ôڽű¾±àд¡¢ÏµÍ³¹ÜÀíʱȴҪ³£³£´ò½»µÀ£¬¸ãÇåÆäÖÐʹÓü¼Çɷdz£ÓÐÓá£
Ê×ÏÈ˵һÏÂʲôÊÇI/OÖØ¶¨Ïò£¬ËùνI/OÖØ¶¨Ïò¼òµ¥À´Ëµ¾ÍÊÇÒ»¸ö¹ý³Ì£¬Õâ¸ö¹ý³Ì²¶×½Ò»¸öÎļþ£¬»òÕßÃüÁ³ÌÐò£¬½Å±¾£¬ÉõÖÁ½Å±¾ÖеĴúÂë¿é£¨code block£©µÄÊä³ö£¬È»ºó°Ñ²¶×½µ½µÄÊä³ö£¬×÷ΪÊäÈë·¢Ë͸øÁíÍâÒ»¸öÎļþ£¬ÃüÁ³ÌÐò£¬»òÕ߽ű¾¡£
Èç¹û̸µ½I/OÖØ¶¨Ïò£¬¾ÍÉæ¼°µ½Îļþ±êʶ·û(File Descriptor)µÄ¸ÅÄî, ÔÚLinuxϵͳÖУ¬ÏµÍ³ÎªÃ¿Ò»¸ö´ò¿ªµÄÎļþÖ¸¶¨Ò»¸öÎļþ±êʶ·ûÒÔ±ãϵͳ¶ÔÎļþ½øÐиú×Ù£¬ÕâÀïÓÐЩºÍCÓïÑÔ±à³ÌÀïµÄÎļþ¾ä±úÏàËÆ£¬Îļþ±êʶ·ûÊÇÒ»¸öÊý×Ö£¬²»Í¬Êý×Ö´ú±í²»Í¬µÄº¬Ò壬ĬÈÏÇé¿öÏ£¬ÏµÍ³Õ¼ÓÃÁË3¸ö£¬·Ö±ðÊÇ0±ê×¼ÊäÈ루stdin£©,1±ê×¼Êä³ö(stdout), 2±ê×¼´íÎó(stderr), ÁíÍâ3-9ÊDZ£ÁôµÄ±êʶ·û£¬¿ÉÒÔ°ÑÕâЩ±êʶ·ûÖ¸¶¨³É±ê×¼ÊäÈ룬Êä³ö»òÕß´íÎó×÷ΪÁÙʱÁ¬½Ó¡£Í¨³£ÕâÑù¿ÉÒÔ½â¾öºÜ¶à¸´ÔÓµÄÖØ¶¨ÏòÇëÇó¡£
±ê×¼ÊäÈëͨ³£Ö¸¼üÅ̵ÄÊäÈë
±ê×¼Êä³öͨ³£Ö¸ÏÔʾÆ÷µÄÊä³ö
±ê×¼´íÎóͨ³£Ò²ÊǶ¨Ïòµ½ÏÔʾÆ÷
Çë¿´ÒÔÏÂÀý×Ó£¬À´ÃèÊöÒ»ÏÂËûÃǵĹØÏµ#ls /dev
Õâ¸öÃüÁîÁгö/de ......
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
Tutorial Work In Progress
What is D-Bus?
D-Bus applications
Concepts
Native Objects and Object Paths
Methods and Signals
Interfaces
Proxies
Bus Names
Addresses
Big Conceptual Picture
Messages - Behind the Scenes
Calling a Method - Behind the Scenes
Emitting a Signal - Behind the Scenes
Introspection
GLib API: Using Remote Objects
D-Bus - GLib type mappings
A sample program
Program initalization
Understanding method invocation
Connecting to object signals
Error handling and remote exceptions
More examples of method invocation
Generated Bindings
GLib API: Implementing Objects
Server-side Annotations
Python API
Qt API: Using Remote Objects
Qt API: Implementing Object ......