Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

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      


Ïà¹ØÎĵµ£º

ǶÈëʽLinuxϵͳµÄGDBÔ¶³Ìµ÷ÊÔµÄʵÏÖ

      Ô¶³Ìµ÷ÊÔ»·¾³ÓÉËÞÖ÷»úGDBºÍÄ¿±ê»úµ÷ÊÔstub¹²Í¬¹¹³É£¬Á½Õßͨ¹ý´®¿Ú»òTCPÁ¬½Ó£¬Ê¹ÓÃGDB±ê×¼³Ì´®ÐÐЭÒéЭͬ¹¤×÷£¬ÊµÏÖ¶ÔÄ¿±ê»úÉϵÄϵͳÄں˺ÍÉϲãÓ¦Óõļà¿ØºÍµ÷ÊÔ¹¦ÄÜ£¬µ÷ÊÔstubÊÇǶÈëʽϵͳÖеÄÒ»¶Î´úÂ룬×÷ΪËÞÖ÷»úGDBºÍÄ¿±ê»úµ÷ÊÔ³ÌÐò¼äµÄÒ»¸öý½é¶ø´æÔÚ¡£
¡¡¡¡¾ÍÄ¿Ç°¶øÑÔ£¬Ç¶ÈëʽLinuxϵ ......

Linux VNCÔ¶³Ì×ÀÃæ

Linux VNCÔ¶³Ì×ÀÃæ
2009-07-27 09:46
VNC£¬È«³ÆΪVirtual Network Computing£¬ÊÇÒ»¸ö×ÀÃæ¹²Ïíϵͳ¡£ËüµÄ¹¦ÄÜ£¬ÀàËÆÓÚwindowsÖеÄÔ¶³Ì ×ÀÃ湦ÄÜ¡£VNCʹÓÃÁËRFB(Remote FrameBuffer£¬Ô¶³ÌÖ¡»º³å£©Ð­ÒéÀ´ÊµÏÖÔ¶³Ì¿ØÖÆÁíÍâһ̨¼ÆËã»ú¡£Ëü°Ñ¼üÅÌ¡¢Êó±ê¶¯×÷·¢Ë͵½Ô¶³Ì¼ÆËã»ú£¬²¢°ÑÔ¶³Ì¼ÆËã»úµÄÆÁÄ»·¢»Øµ½±¾µØ£¬ VNC Viewer¿ÉÒÔº ......

linuxÏ°²×°Îļþ

linuxÏ°²×°Îļþ
2009Äê02ÔÂ20ÈÕ ÐÇÆÚÎå 16:18
1¡¢Ô´´úÂë°üµÄ°²×°
gzip -d apache_1.3.20.tar.gz £¨½âѹ£©
tar xvf apache_1.3.20.tar £¨½â°ü£©
cd apache_1.3.20
./configure £¨ÅäÖã© ----./configure --help£¨²é¿´configureÑ¡Ï
make £¨±àÒ룩
make install £¨°²×°£©
make clean £¨Ð¶ÔØ£©
×¢£ºµäÐ͵ÄÔ´´úÂë ......

linuxÏ°²×°PHP APACHE MYSQL ÊÖ¼Ç

/**********************************
APACHE
***********************************/
±à¼­²ÎÊý£º
./configure" \
"--prefix=/usr/local/apache" \
"--enable-so" \
"--enable-ssl" \
"--enable-mods-shared=most" \
"--with-mpm=event" \
"--with-ssl=/usr/local/openssl" \
"--enable-cache" \
"--enable-mem- ......

linuxÖÐÓÃshell»ñÈ¡×òÌì¡¢Ã÷Ìì»ò¶àÌìÇ°µÄÈÕÆÚ

linuxÖÐÓÃshell»ñÈ¡×òÌì¡¢Ã÷Ìì»ò¶àÌìÇ°µÄÈÕÆÚ:
ÔÚLinuxÖжÔman date -d ²ÎÊý˵µÄ±È½ÏÄ£ºý,ÒÔϾÙÀý½øÒ»²½ËµÃ÷:
# -d, --date=STRING display time described by STRING, not `now’
[root@Gman root]# date -d next-day +%Y%m%d #Ã÷ÌìÈÕÆÚ
20091024
[root@Gman root]# date -d last-day +%Y%m%d #×òÌìÈÕÆÚ
20091 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ