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

תÌù£ºÊóÑÛ¿´Linuxµ÷¶ÈÆ÷ £¨2£©

ת×Ô  http://hi.baidu.com/grantzhou/blog/item/56a91cf3b685cdc90a46e09d.html
ËÄ¡¢sched_setscheduler()ϵͳµ÷Óá£
Õâ¸öϵͳµ÷Óõĵ÷Óòã´ÎºÍ´úÂë¶¼±Ènice¸´ÔÓЩ£¬ËùÉæ¼°µÄÒ²Óв»ÉÙÎÒÃÇÕâÀï²»¸ÐÐËȤµÄ¶«Î÷£¬Òò´Ë¾Í²»ÔÙÒÔչʾ´úÂëµÄ·½·¨½éÉÜËüÃÇÁË¡£ÕâÀï½öÔÚ¹¦Äܲã´ÎÉÏ£¬´ÓÓënice()¶Ô±ÈµÄ½Ç¶ÈÉ϶ÔËü×öÒ»¸ö¼òÒª½éÉÜ£º
1¡¢ÒòΪsched_setscheduler()ϵͳµ÷Óò»½ö¿ÉÒÔÐ޸ĵ±Ç°ÈÎÎñµÄµ÷¶È²ßÂÔºÍÓÅÏȼ¶£¬»¹¿ÉÒÔÐÞ¸ÄÖ¸¶¨ÈÎÎñµÄÕâ¸öÐÅÏ¢¡£ËùÒÔ£¬ËüµÄºÏ·¨ÐÔ¼ì²é¸üÑϸñЩ£¬×îÖØÒªµÄÊÇÔö¼ÓÁËÓû§Éí·ÝÑéÖ¤£¬µ±È»Õâ¸ö¼ì²éÒÀ¾ÉÊÇÔÚtask_struct½á¹¹ÉÏ×öµÄ¡£
2¡¢ºÍnice()Ò»Ñù£¬sched_setscheduler()Ò²²»ÌرðÇø·Ö½ø³ÌºÍỊ̈߳¬½«Á½Õß×÷µÈͬ´¦Àí£¬¸ÃÈÎÎñÒ²»áÓÐÖØÐ¼ÓÈëÔËÐжÓÁеÄÐÐΪ¡£
3¡¢sched_setscheduler()Ö»Ð޸Ķ¯Ì¬ÓÅÏȼ¶£¬¶ÔÓÚĬÈϵ÷¶È²ßÂÔ£¬Ëü±»ÉèÖÃΪÓ뾲̬ÓÅÏȼ¶ÏàµÈ¡£
Îå¡¢¾²Ì¬ÓÅÏȼ¶ÀïµÄèÄå¡£
˵ÁËÕâô¶à¾²Ì¬ÓÅÏȼ¶ÈçºÎÈçºÎ£¬Ëüµ½µ×ÊǸöÊ²Ã´ÍæÒâ¶ù£¿ÏÖÔÚ¾ÍÈÃÎÒÃǰþµôÆäÉÏËùÓпÉÄܵÄ"ºÄ×ÓÒ©"£¬ÅªÇå³þËüµ½µ×ÊÇÔõÑùÓ°Ïì½ø³ÌµÄ¡£"¾²Ì¬ÓÅÏȼ¶"£¬Ö®ËùÒÔ¹ÚÖ®ÒÔ"¾²Ì¬"ǰ׺£¬ÊÇÒòΪÄÚºË×Ô¼º´Ó²»Ö÷¶¯ÐÞ¸ÄËü£¬Ö»ÓÐͨ¹ýϵͳµ÷ÓòÅÄÜÐÞ¸ÄËü¡£ÄÇô£¬ËüÔÚµ÷¶ÈÀïµ½µ×°çÑÝʲô½ÇɫĨ£¿Èݰ³×ÐϸµÀÀ´£º
1¡¢¼ÆËãÈÎÎñʱ¼äƬ¡£
ÈôúÂë˵»°£¬ÏÈ¿´task_timeslice()ʵÏÖ£º
/*
* task_timeslice() scales user-nice values [ -20 ... 0 ... 19 ]
* to time slice values: [800ms ... 100ms ... 5ms]
*
* The higher a thread's priority, the bigger timeslices
* it gets during one round of execution. But even the lowest
* priority thread gets MIN_TIMESLICE worth of execution time.
*/
#define SCALE_PRIO(x, prio) \
max(x * (MAX_PRIO - prio) / (MAX_USER_PRIO/2), MIN_TIMESLICE)
static inline unsigned int task_timeslice(task_t *p)
{
if (p->static_prio < NICE_TO_PRIO(0))
return SCALE_PRIO(DEF_TIMESLICE*4, p->static_prio);
else
return SCALE_PRIO(DEF_TIMESLICE, p->static_prio);
}
´ÓÃû×ÖÉÏÒ²¿´µÃ³öÀ´£¬Õâ¸öº¯Êý¾ÍÊÇÓÃÀ´¼ÆËãÈÎÎñʱ¼äƬµÄ¡£Ò»°ã˵À´£¬Ö»ÓÐÔÚʱ¼äƬÏûºÄ¹âµÄʱºò²ÅÖØÐ¼ÆËãÈÎÎñµÄʱ¼äƬ£¬¶øÕâ¸ö¼ÆËã¹ý³ÌÖ»Ó뾲̬ÓÅÏȼ¶Óйء£Õâ¸öº¯ÊýµÄÂß¼­ºÜ¼òµ¥£¬Èç¹ûÈÎÎñpµÄniceÖµ<0£¨Ò²¾ÍÊÇ˵¾²Ì¬ÓÅÏÈ


Ïà¹ØÎĵµ£º

7.1.1 Linux·ÖÇø¼ò½é

7.1.1  Linux·ÖÇø¼ò½é
Ëùν·ÖÇø£¬¾ÍÊÇ´ÅÅÌÉϽ¨Á¢µÄÓÃÓÚ´æ´¢Êý¾ÝºÍÎļþµÄµ¥¶ÀÇøÓò²¿·Ö¡£´ÅÅÌ·ÖÇø¿ÉÒÔ·ÖΪÖ÷·ÖÇøºÍÀ©³ä·ÖÇø£¬ÆäÖÐÖ÷·ÖÇø¾ÍÊǰüº¬²Ù×÷ϵͳÆô¶¯Ëù±ØÐëµÄÎļþºÍÊý¾ÝµÄ´ÅÅÌ·ÖÇø£»À©³ä·ÖÇøÒ»°ãÓÃÀ´´æ·ÅÊý¾ÝºÍÓ¦ÓóÌÐòÎļþ¡£Ò»¸ö´ÅÅÌ×î¶à¿É·ÖΪ4¸ö·ÖÇø£¬×î¶à¿ÉÒÔÓÐ4¸öÖ÷·ÖÇø£¬¼´È«²¿·ÖÇø¶¼±»»®·ÖΪÖ÷·ÖÇø¡£Èç¹ ......

linux½»²æ±àÒë

ELDK;Ö§³ÖGDBµÄBDIGDB Firmware FOR Linux£»»ùÓÚwindowsµÄǶÈëʽLinux½»²æ¿ª·¢¹¤¾ßÈí¼þINSIGHT GNUPROXTOOLS ;Ö§³ÖGDBµÄBDIGDB  FIRMWARE FOR WINDOWS
bootloader
German DENK U-boot GNU
fuction:
 
       network support;(tftp\Bootp);;;FlashRAM ;´®¿Údeng¶àÖÖ·½Ê½ÏÂÔØ ......

ͨ¹ýxmanagerÔ¶³ÌÁ¬½Óredhat linux as 5

rhel5Óërhel4²»Í¬µÄµØ·½ÊÇ£¬rhel5ÀïûÓÐ/etc/X11/gdm/Õâ¸öĿ¼£¬rhel5µÄgdmµÄÅäÖÃÎļþ·ÅÔÚÕâÀï/usr/share/gdm/defaults.conf¡£
ÐèÒªÐ޸ĵĵط½ÈçÏ£º
ÐÞ¸Ä/usr/share/gdm/defaults.confÎļþ£¬È·±£ÀïÃæÓÐÒÔϼ¸ÐУº
Enable=true
DisplaysPerHost=10
Port=177
ÔÙÐÞ¸Ä/etc/inittabÎļþ£¬°ÑĬÈϼ¶±ð¸ÄΪ5,ÔÙ¼ÓÈëÒÔÏÂÐ ......

Anatomy of the Linux slab allocator

Anatomy of the Linux slab allocator
Learn how Linux manages memory
M. Tim Jones, Consultant Engineer, Emulex Corp.
M. Tim Jones is an embedded software architect and the author of GNU/Linux Application Programming, AI Application Programming, and BSD Sockets Programming from a Multilanguage Persp ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ