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

LinuxÄÚºËÖÐÄÚ´æcacheµÄʵÏÖ


1. Ç°ÑÔ
kmem_cacheÊÇLinuxÄÚºËÌṩµÄ¿ìËÙÄڴ滺³å½Ó¿Ú£¬ÕâЩÄÚ´æ¿éÒªÇóÊÇ´óСÏàͬµÄ£¬ÒòΪ·ÖÅä³öµÄÄÚ
´æÔÚ½Ó¿ÚÊÍ·Åʱ²¢²»ÕæÕýÊÍ·Å£¬¶øÊÇ×÷Ϊ»º´æ±£Áô£¬ÏÂÒ»´ÎÇëÇó·ÖÅäʱ¾Í¿ÉÒÔÖ±½ÓʹÓã¬Ê¡È¥Á˸÷ÖÖ
ÄÚ´æ¿é³õʼ»¯»òÊͷŵIJÙ×÷£¬Òò´Ë·ÖÅäËٶȺܿ죬ͨ³£ÓÃÓÚ´óÊýÁ¿µÄÄÚ´æ¿é·ÖÅäµÄÇé¿ö£¬Èçinode½Ú
µã£¬skbuffÍ·, netfilterµÄÁ¬½ÓµÈ£¬ÆäʵkmallocÒ²ÊÇ´Ókmem_cacheÖзÖÅäµÄ£¬¿Éͨ
¹ý/proc/slabinfoÎļþÖ±½Ó¶ÁÈ¡cache·ÖÅäÇé¿ö¡£
ÒÔÏÂLinuxÄں˴úÂë°æ±¾Îª2.6.19.2, ³ÌÐòÖ÷Òª³ö×Ômm/slab.cÎļþ, 2.4ºÍ2.6»ù±¾Ô­Àí²î²»¶à,µ«¾ß
ÌåʵÏÖÖÐÓÐÁ˲»Éٱ仯¡£
2. slabºÍpage
ÔÚ½éÉÜkmem_cache֮ǰÐèÒªÏȽéÉÜpageºÍslabÕâÁ½¸ö¶¨Òå¡£ÖÚËùÖÜÖª£¬pageÊÇÄÚºËÖÐÄÚ´æ»ù±¾¹ÜÀíµ¥
λ£¬Ã¿¸öpageµÄÄÚ´æ´óСÊǹ̶¨µÄ£¬¶ÔX86»úÆ÷À´Ëµ£¬ÊÇ4K£»slabÔòÊÇkmem_cacheµÄ¾ßÌåµÄÄÚ´æ¿Õ¼ä
ÐÎʽ£¬¸ù¾ÝcacheµÄ¶ÔÏóµÄ´óС£¬Ã¿¸öslab¿ÉÒÔÓÐ1¸öpageµ½×î¶à32(128/4)¸öpage£»Èç¹ûcache¶ÔÏó±È
Ò»¸öpageµÄ¿Õ¼äС£¬Õâ¸öslabÖлáÈÝÄɶà¸ö¶ÔÏóÒÔ¾¡¿ÉÄܵØÀûÓÿռ䡣
struct slab {
// Á´±í
 struct list_head list;
// δÓÿռäµÄÆ«ÒÆ
 unsigned long colouroff;
// ¾ßÌåµÄÄڴ滺³åÇøµØÖ·
 void *s_mem;  /* including colour offset */
// ÿ¸öslabÖеÄÕýÔÚʹÓõĶÔÏóÊýÁ¿
 unsigned int inuse; /* num of objs active in slab */
// ¿ÕÏжÔÏó
 kmem_bufctl_t free;
 unsigned short nodeid;
};
 
3. Êý¾Ý½á¹¹
kmem_cacheÊý¾Ý½á¹¹²¢Ã»Óж¨ÒåÔÚ.hµÄÍ·ÎļþÖУ¬ÔÚÍ·ÎļþÖÐÖ»ÊǸýṹµÄÒ»¸öÀàÐͶ¨Ò壬ÒòΪÆäËû
µØ·½Ê¹ÓÃkmem_cacheʱÍêÈ«²»ÐèÒªÖªµÀÆäÄÚ²¿½á¹¹£¬¸÷½Ó¿Úº¯ÊýÍêÈ«·â×°½á¹¹ÖеÄÐÅÏ¢£¬ÕâÊÇÓÃCʵ
ÏÖOO±à³ÌµÄ³£Ó÷½Ê½¡£
/* include/linux/slab.h */
// ÕâÀïÖ»ÊÇÒ»¸öÀàÐͶ¨Òå
typedef struct kmem_cache kmem_cache_t;
/* mm/slab.c */
// ÔÚCÎļþÖнøÐÐÍêÕûµÄ¶¨Òå
/*
 * struct array_cache
 *
 * Purpose:
 * - LIFO ordering, to hand out cache-warm objects from _alloc
 * - reduce the number of linked list operations
 * - reduce spinlock operations
 *
 * The limit is stored in the per-cpu structure to reduce the data cache
 * footprint.
 *
 */
// ÕâÊÇÿ¸öCPU¶ÔÓ¦µÄcacheÊý¾Ý
struct array_cache {
 unsign


Ïà¹ØÎĵµ£º

LinuxÉ豸ģÐÍÖ®input×ÓϵͳÏê½â

Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâƪ·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´ËתÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨Õâƪ²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......

linuxµÄ¼òµ¥sh³ÌÐòÉè¼Æ

¸ÉÂïѧϰ Scripts
Õâ¸öÎÊÌâ¿ÉÓÐȤµÄºÜÁË£¬ÎÒΪʲôҪѧϰ scripts ÄØ£¿²»ÒªÑ§¿É²»¿ÉÒÔѽ£¡£¿ºÇºÇ£¡Èç¹ûÄúÖ»ÏëÒª¡º»áÓá» Linux ¾ÍºÃµÄ»°£¬ÄÇôÕâÒ»¸ö²¿·Öȷʵ¿ÉÒÔÏÈÌø¹ýÈ¥²»¿´Ò²Ã»¹Øϵ£¬²»¹ý£¬Èç¹ûÄúÏëÒª¸ü¼ÓµÄÁ˽âÓë¿ØÖÆ Linux £¬Ê¹ Linux ÔË×÷¸ü˳³©Ö®Í⣬»¹¿ÉÒÔ¸ßÕíÎÞÓǵÄÈÃÄãµÄ Linux Server ÔÚ Internet ÉÏÃæÌṩÏà¹Ø ......

linux»·¾³±äÁ¿

PS1£º¾ÍÊÇÓû§Æ½Ê±µÄÌáʾ·û¡£
¡¡¡¡PS2£ºµÚÒ»ÐÐûÊäÍ꣬µÈ´ýµÚ¶þÐÐÊäÈëµÄÌáʾ·û¡£
¡¡¡¡LinuxϵͳÌáʾ·ûÊÇÓÃϵͳ±äÁ¿PS1À´¶¨ÒåµÄ¡£Ò»°ãϵͳĬÈϵÄÐÎʽÊÇ£º[username@host ¹¤×÷Ŀ¼]$.
¡¡¡¡ÓÃecho $PS1¿ÉÒԵõ½PS1µÄÖµ£¬¼´PS1="[\u@\h \w]"\$
¡¡¡¡µÇ¼ºó¿ÉÒÔ¸ü¸ÄPS1µÄÏÔʾÑùʽ£¬µ«Êǵ±Í˳öÖØÆôµÇ¼½øÈëϵͳºó£¬ÑùʽÓÖ±ä³ ......

LinuxÏÂgdbµ÷ÊÔ³ÌÐòµÄ³£ÓÃÃüÁî


ÔÚLinuxµÄc±à³ÌÖдó¼Ò¾­³£ÓÃgdbµ÷ÊÔ³ÌÐò£¬ÒÔÏÂÊÇһЩ³£ÓõÄÖ¸Áî 1.break FUNCTION ÔÚij¸öº¯ÊýÉÏÉèÖöϵ㡣º¯ÊýÖØÔØʱ£¬ÓпÉÄÜͬʱÔÚ¼¸¸öÖØÔصĺ¯ÊýÉÏÉèÖÃÁ˶ϵã
break +OFFSET break -OFFSET ÔÚµ±Ç°³ÌÐòÔËÐе½µÄÇ°¼¸Ðлòºó¼¸ÐÐÉèÖöϵã
break LINENUM ÔÚÐкÅΪLINENUMµÄÐÐÉÏÉèÖöϵã
break FILENAME:LINENUM ÔÚÎļþÃûÎ ......

ÔÚlinuxÏ°²×°ÅäÖÃsvn¶ÀÁ¢·þÎñÆ÷

ÔÚlinuxÏ°²×°ÅäÖÃsvn¶ÀÁ¢·þÎñÆ÷
subversion(ÒÔϼò³Æsvn)ÊǽüÄêÀ´áÈÆðµÄ°æ±¾¹ÜÀí¹¤¾ß£¬ÊÇcvsµÄ½Ó°àÈË¡£
svn·þÎñÆ÷ÓÐ2ÖÖÔËÐз½Ê½£º¶ÀÁ¢·þÎñÆ÷ºÍ½èÖúapache¡£2ÖÖ·½Ê½¸÷ÓÐÀû±×¡£
svn´æ´¢°æ±¾Êý¾ÝÒ²ÓÐ2ÖÖ·½Ê½£ºBDBºÍFSFS¡£ÒòΪBDB·½Ê½ÔÚ·þÎñÆ÷ÖжÏʱ£¬ÓпÉÄÜËøסÊý¾Ý£¨jijian91ÔÚ¸ãLDAPʱ¾ÍÉîÊÜÆ亦£¬Ã»·¨¸ùÖΣ©£¬ËùÒÔ»¹ÊÇF ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ