Linux½ø³Ì¹ÜÀíÖ®CFSµ÷¶ÈÆ÷·ÖÎö
------------------------------------------
±¾ÎÄϵ±¾Õ¾Ô´´,»¶ÓתÔØ!
תÔØÇë×¢Ã÷³ö´¦:http://ericxiao.cublog.cn/
------------------------------------------
Ò»:Ç°ÑÔ
CFSµ÷¶ÈÔÚ2.6.23°æ±¾µÄkernelÖб»¼ÓÈë.ÒýÓÃIngo
MolnarµÄÒ»¾ä»°:80%µÄÉè¼Æ¿ÉÒÔÓÃÒ»¾ä»°À´¸ÅÀ¨:CFSÖÐÒ»¸ö”ÀíÏëµÄ¶àÈÎÎñ´¦ÀíÆ÷”.Ò²´Ó¸Ã°æ±¾¿ªÊ¼,linuxµÄµ÷¶È²¿·Ý²ÉÓÃÄ£¿é»¯Éè¼Æ.ÎÒ
ÃÇÔÚ½ÓÏÂÀ´µÄ·ÖÎöÖÐ,·ÖΪ¼¸¸öÖØÒªµÄ״̬½øÐзÖÎö.±¾ÎĵĴúÂë·ÖÎö»ùÓÚ2.6.28µÄkernel.·ÖÎö´úÂë»ù±¾Î»ÓÚlinux-2.6.28-
rc7/kernel/sched.cºÍlinux-2.6.28-rc7/kernel/sched_fair.cλÖÃ.
¶þ:CFS·ÖÎö
ÔÚÉÏÃæ˵¹ý,linuxµ÷¶È´úÂë²ÉÓÃÁËÄ£¿é»¯Éè¼Æ,ʲô½ÐÄ£¿é»¯?¼ò¶øÑÔÖ®,¾ÍÊÇÒÔºóÈç¹ûÒª¸ü¸Äµ÷¶ÈÆ÷,²»ÐèÒª¸ü¸Äµ÷¶ÈÖ´Ðв¿·ÝµÄ´úÂë,Ö»ÐèÒªÌî³ä¶ÔÓ¦¼¸¸öº¯Êý¼´¿É.ÏÂÃæ·ÖΪ¼¸¸ö״̬½øÐзÖÎö.
2.1: tickÖжÏ
ÔÚtickÖжϴ¦Àíº¯ÊýÖÐ,»áµ÷ÓÃscheduler_tick()º¯Êý.¸Ãº¯Êý´úÂëÈçÏÂ:
void scheduler_tick(void)
{
/*È¡µÃµ±Ç°CPU*/
int cpu = smp_processor_id();
/*È¡µÃµ±Ç°CPU¶ÔÓ¦µÄrunqueue*/
struct rq *rq = cpu_rq(cpu);
/*µ±Ç°ÔËÐеĽø³Ì*/
struct task_struct *curr = rq->curr;
sched_clock_tick();
spin_lock(&rq->lock);
/*¸üÐÂrqµÄµ±Ç°Ê±¼ä´Á.¼´Ê¹rq->clock±äΪµ±Ç°Ê±¼ä´Á*/
update_rq_clock(rq);
/*¸üÐÂrqµÄ¸ºÔØ*/
update_cpu_load(rq);
/*µ÷Óõ÷¶ÈÄ£¿éµÄtask_tickº¯Êý*/
curr->sched_class->task_tick(rq, curr, 0);
spin_unlock(&rq->lock);
#ifdef CONFIG_SMP
rq->idle_at_tick = idle_cpu(cpu);
trigger_load_balance(rq, cpu);
#endif
}
ÎÒÃÇ´ÓÉÏÃæµÄ´úÂëÖпÉÒÔ¿´µ½,¾¹ýÒ»²¿·Ý¹²Í¬´¦ÀíÖ®ºó,Á÷³Ì»áתÈëµ÷¶ÈÄ£¿éµÄtask_tick()º¯Êý.
¶ÔÓ¦CFS,ËüµÄsched_class½á¹¹ÈçÏÂ:
static const struct sched_class fair_sched_class = {
.next = &idle_sched_class,
.enqueue_task
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌṩÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
Linux VNCÔ¶³Ì×ÀÃæ
2009-07-27 09:46
VNC£¬È«³ÆΪVirtual Network Computing£¬ÊÇÒ»¸ö×ÀÃæ¹²Ïíϵͳ¡£ËüµÄ¹¦ÄÜ£¬ÀàËÆÓÚwindowsÖеÄÔ¶³Ì ×ÀÃ湦ÄÜ¡£VNCʹÓÃÁËRFB(Remote FrameBuffer£¬Ô¶³ÌÖ¡»º³å£©ÐÒéÀ´ÊµÏÖÔ¶³Ì¿ØÖÆÁíÍâһ̨¼ÆËã»ú¡£Ëü°Ñ¼üÅÌ¡¢Êó±ê¶¯×÷·¢Ë͵½Ô¶³Ì¼ÆËã»ú£¬²¢°ÑÔ¶³Ì¼ÆËã»úµÄÆÁÄ»·¢»Øµ½±¾µØ£¬ VNC Viewer¿ÉÒÔº ......
Linux Tomcat°²×°
2009-12-10 15:35
ΪÁËѧϰjava£¬ÐèÒªÒ»¸ö·þÎñÆ÷£¬Òò´Ë¾ö¶¨ÓñȽÏÁ÷ÐеÄtomcat¡£¸ù¾ÝÍøÉ϶԰²×°tomcatµÄ½éÉÜ£¬×Ô¼º½øÐÐÁË°²×°£¬ÏÖÔÚÒѾ³É¹¦ÁË£¬ÏÖÔÚ°Ñ°²×°µÄ¹ý³Ì½øÐмǼ£¬Ò²¹©´ó¼Òѧϰ²Î¿¼¡£
Ò»¡¢´Ó¹Ù·½ÍøÕ¾ÉÏÏÂÔØtomcatÈí¼þ°ü¡£
http://tomcat.apache.org/
  ......
LINUXÏ°²×°QQ
Òª°²×°QQÊ×ÏÈÒª°²×°Java»·¾³¡£
g-r_j'LOVfGuest1¡¢°²×°JAVA»·¾³
UB?v1h(Bd`)[3W9IGuest´ò¿ªÖնˣ¬Ö´ÐÐÒÔÏÂÃüÁ»òʹÓá¶ÐÂÁ¢µÃÈí¼þ¹ÜÀíÆ÷¡·£¬ÔÚÆäÖзֱðËÑË÷“sun-java5-jre“ºÍ“sun-java5-jdk”²¢±ê¼Ç°²×°¡£EETOPרҵ²©¿Í---µç×Ó¹¤³Ìʦ×Ô¼ºµÄ¼ÒÔ°sv ......
LinuxϵÄÉ豸Çý¶¯³ÌÐò±»×é֯Ϊһ×éÍê³É²»Í¬ÈÎÎñµÄº¯ÊýµÄ¼¯ºÏ£¬Í¨¹ýÕâЩº¯ÊýʹµÃWindowsµÄÉ豸²Ù×÷ÓÌÈçÎļþÒ»°ã¡£ÔÚÓ¦ÓóÌÐò¿´À´£¬Ó²¼þÉ豸ֻÊÇÒ»¸öÉ豸Îļþ£¬Ó¦ÓóÌÐò¿ÉÒÔÏó²Ù×÷ÆÕͨÎļþÒ»Ñù¶ÔÓ²¼þÉ豸½øÐвÙ×÷£¬Èçopen ()¡¢close ()¡¢read ()¡¢write () µÈ¡£
LinuxÖ÷Òª½«É豸·ÖΪ¶þÀࣺ×Ö·ûÉ豸ºÍ¿éÉ豸¡£×Ö·ûÉ豸ÊÇÖ¸Éè ......