LinuxµÄ¹¤×÷¶ÓÁÐ
1£¬ÏÈ¿´¿´¹¤×÷¶ÓÁкÍtaskletµÄÇø±ð£º
£¨1£© ¶¨Ê±Æ÷ºÍtasklet£º
Tasklets resemble kernel timers in 3 ways.
1)They are always run at interrupt time,
2)they always run on the same CPU that schedules them,
3)and they receive an unsigned long argument. Unlike kernel timers, however, you can’t ask to execute the function at a specific time.
£¨2£© taskletºÍ¹¤×÷¶ÓÁУº
Workqueues are, superficially, similar to tasklets; they allow kernel code to request that a function be called at some future time. There are, however, some significant differences between the two, including:
1) Tasklets run in software interrupt context with the result that all tasklet code must be atomic. Instead, workqueue functions run in the context of a special kernel process; as a result, they have more flexibility. In particular, workqueue functions can sleep.
2)Tasklets always run on the processor from which they were originally submitted. Workqueues work in the same way, by default.
3)Kernel code can request that the execution of workqueue functions be delayed for an explicit interval.
2£¬¹¤×÷¶ÓÁÐ(work queue)ÊÇLinux kernelÖн«¹¤×÷ÍÆºóÖ´ÐеÄÒ»ÖÖ»úÖÆ¡£ÕâÖÖ»úÖÆºÍBH»òTasklets²»Í¬Ö®´¦ÔÚÓÚ¹¤×÷¶ÓÁÐÊǰÑÍÆºóµÄ¹¤×÷½»ÓÉÒ»¸öÄÚºËÏß³ÌÈ¥Ö´ÐУ¬Òò´Ë¹¤×÷¶ÓÁеÄÓÅÊÆ¾ÍÔÚÓÚËüÔÊÐíÖØÐµ÷¶ÈÉõÖÁ˯Ãß¡£¹¤×÷¶ÓÁÐÊÇ2.6Äں˿ªÊ¼ÒýÈëµÄ»úÖÆ£¬ÔÚ2.6.20Ö®ºó£¬¹¤×÷¶ÓÁеÄÊý¾Ý½á¹¹·¢ÉúÁËһЩ±ä»¯£¬Òò´Ë±¾ÎÄ·Ö³ÉÁ½¸ö²¿·Ö¶Ô2.6.20֮ǰºÍÖ®ºóµÄ°æ±¾·Ö±ð×ö½éÉÜ¡£
£¨1£©2.6.0~2.6.19
Êý¾Ý½á¹¹£º
struct work_struct {
unsigned long pending;
struct list_head entry;
void (*func)(void *);
void *data
Ïà¹ØÎĵµ£º
2¡£ ¼¼ÊõÍøµã£º
csdn.net
chinaunix.net
ibm.com/developerworks/cn/linux
LinuxÄÚ´æÊ¹ÓÃÏê½â£º
http://blog.chinaunix.net/u2/67750/showart_2154542.html
3¡£ Linux¼¼Êõµã
ϵͳ¹ÜÀíÃüÁî(expect.)
shell±à³Ì
ÕýÔò±í´ïʽ
busybox
Îļþϵͳ
4¡£ ÆäËü¼¼Êõµã
pclint£¨¾²Ì¬´úÂë¼ì²é¹¤¾ß£©
source monitor ......
Ê×ÏÈÎҵIJÙ×÷ϵͳÊÇDebian Linux£¬ÎÒDebianÓõÄÊÇXfce×ÀÃæ»·¾³£¬×òÌìÎÒÓÃÁËÃüÁîapt-get install gnome,°²×°ÁËÒ»¶ÑÈí¼þÖ®ºóÖØÆô£¬¾Í½øÈë²»ÁËͼÐνçÃæÁË£¬Ö»ÄܽøÈë×Ö·û½çÃæ£¬½ñÌì¿ÉºÃÕÛÌÚÁË¡£
¡¡¡¡ÉÏÎçÔÚÍøÉϲé×ÊÁÏ£¬¿ÉÄÜ×ܽáÁ˼¸¸ö°É
¡¡¡¡1¡¢ÔÚ×Ö·û½çÃæÊäÈëÃüÁîstartx
¡¡¡¡2¡¢ÐÞ¸ÄinitµÄĬÈϼ¶£¬ËùÔÚÎļþµÄλÖÃ/etc/initt ......
È«ÎÄÃèÊöÁË´Ówindowx xpϵͳÖУ¬Í¨¹ýÓ²ÅÌÖдæÔÚµÄubuntuµÄiso°²×°Îļþ£¬ Òýµ¼ÏµÍ³Íê³ÉLinuxµÄ°²×°¡£
ÔÀí£º ÉèÖÃϵͳµÄÆô¶¯·½Ê½£¬Í¨¹ýÐÞ¸Äboot.iniÎļþ£¬ÀûÓÃgrub for dos Òýµ¼ÏµÍ³´ÓisoÆô¶¯£¬´Ó¶øË³ÀûÆô¶¯UbuntuµÄ°²×°¡£
(×¢Ò⣺Ubuntu isoÎļþ¿ÉÒÔ²»Óð²×°£¬Ö±½ÓʹÓá£Ï൱ÓÚLive CDÒ»Ñù£¬ Ö»ÊÇ´¦ÀíµÄ½á¹û² ......
I learned some experience while Nanjing found 0x03 error. At begining, we don't know why our GSRM(a linux process) hang in a short time 5 seconds sometimes. It didn't handle any message at that time and the interruption is not regularly. So we assume we have Linux OS problem. We did following checks ......
2005Äê9ÔÂ22ÈÕ£¬Ç廪ÔÚ¶Á²©Ê¿ÉúÍõÛóÔÚˮľÉçÇøBLOGÉÏ·¢±íÁË¡¶Ç廪ÃεķÛËé--д¸øÇ廪´óѧµÄÍËѧÉêÇë¡·Ã÷È·ÒªÇóÍËѧ, ÒýÆðÉç»á¸÷½ç¹ã·ºÕùÂÛ. Ëû´´×÷µÄ³¤ÆªÎÄÕ¡¶ÍêÈ«ÓÃLinux¹¤×÷¡·, ÑóÑóÁ½Íò¶à×Ö, ´Ó²»Í¬½Ç¶È¾Ó¸ßÁÙϵIJûÊöÁËËûÑÛÖÐLinuxÍêÈ«ÓÅÔ½ÓÚWindowsµÄ¸÷ÖÖÀíÓÉ, ÕâÆªÎÄÕ²¢²»¼òµ¥µÄÊÇһƪÂÛÊö"WindowsÄÜ×öµÄÊÂLinux¶¼Ä ......