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

LinuxÄں˴úÂë·ÖÎö slab.c by Áõ¿º


LinuxÄں˴úÂë·ÖÎö slab.c by Áõ¿º liukang@bjut.edu.cn
slab.cÀ´×ÔlinuxÄÚºË2.4.22°æ£¬±¾Îļþ°´ÕÕGNUЭÒé·¢²¼¡£
Ò»¡¢×¼±¸ÖªÊ¶£º
slabµÄ¸ÅÄ
Ìá³öµÄÔ­Òò£ºÓÉÓÚ²Ù×÷ϵͳÔÚÔËÐÐÖл᲻¶Ï²úÉú¡¢Ê¹Óá¢ÊÍ·Å´óÁ¿Öظ´µÄ¶ÔÏó£¬
ËùÒÔ¶ÔÕâÑùµÄÖØ¸´¶ÔÏóµÄÉú³É½øÐиĽø¿ÉÒÔ´ó´óÌá¸ßЧÂÊ
×îÔçÓÉsunµÄ¹¤³ÌʦÌá³ö(1994Äê)²¢Ê×ÏÈÔÚsunos5.4ÉÏÓ¦Óá£
slabËã·¨µÄ»ù±¾Ë¼Â·£º
·ÖÅ䣺
if(¶ÔÏà¶ÔÓ¦µÄ»º´æÇøÓпÕÏÐλÖÃ)
ʹÓÃÕâ¸öλÖ㬲»±ØÔÙ³õʼ»¯£»
else{
·ÖÅäÄڴ棻
³õʼ»¯¶ÔÏó£»
}
ÊÍ·Å£º
ÔÚ»º´æÖбê¼Ç¿ÕÏУ¬²»×öÎö¹¹£»
×ÊÔ´²»×㣺
ѰÕÒδʹÓõĶÔÏó¿Õ¼ä£»
°´ÕÕÒªÇó¶Ô²¿·Ö¶ÔÏó×öÎö¹¹£»
ÊͷŶÔÏóÕ¼ÓõĿռ䣻
»º´æÇø£ºÃ¿Ò»¸ö¶ÔÏó·ÅÔÚÒ»¸ö»º´æÇø
slab£ºÃ¿¸öslab¿é¶¼ÊÇÒ³Ãæ´óСµÄÕûÊý±¶£¨ÓÐÉÏÏÞ£©
×ÅÉ«£º×Ö½ÚÊý°´ÕÕÓ²¼þµÄÒªÇó¶ÔÆë£¬¿ÉÒÔ´ó´óÌá¸ßÓ²¼þ»º´æµÄÀûÓÃÂʺÍЧÂÊ¡£
slab¿éµÄÁ½ÖÖ¹ÜÀíģʽ£º
on-slab ÊÊÓÃÓÚС¶ÔÏó£¨Ð¡ÓÚ1/8Ò³£©£¬slab¹ÜÀí½á¹¹´æ·ÅÔÚslab¿éÖС£
off-slabÊÊÓÃÓÚ´ó¶ÔÏó£¬(´óÓÚµÈÓÚ1/8Ò³),¶ÔÏóºÍslab¿éµÄ¹ÜÀí½á¹¹¶¼ÓÉcache_slabpÖзÖÅä¡£
¸ù¾ÝslabÌá³öÕßµÄÂÛÎÄ,slab²»ÊʺÏÓÃÔÚ´ó¶ÔÏóÉÏ¡£
slabÉæ¼°µÄÖØÒª²Ù×÷£º
»º´æÇø´´½¨kmem_cache_createÓëÏú»Ùkmem_cache_destory
»º´æÇøÊÕËõkmem_cache_shrinkÓëÀ©ÕÅkmem_cache_grow
¶ÔÏó·ÖÅäkmem_cache_allocÓëÊÍ·Åkmem_cache_free
ÄÚºË̬ÄÚ´æµÄÉêÇëkmallocÓëÊÍ·Åkfree
¶þ¡¢Éæ¼°µÄÖØÒªÊý¾Ý½á¹¹£º
typedef unsigned int kmem_bufctl_t£ºslab¿éÖеĹÜÀí½á¹¹
cache_size±í£º±£´æÁ˲»Í¬´óС(2^n)Ò³ÃæÖ¸Ïòcache_cacheµÄÁ½ÖÖÖ¸Õë(dmaºÍ·Çdma)¡£
Á´±í£º×îÖØÒªµÄÊÇÔÚ¹ÜÀíslab½á¹¹ÖгöÏÖµÄ3¸öÁ´±í£¬·Ö±ðΪÍêȫʹÓõ쬲¿·ÖʹÓõĺÍÍêȫûÓùýµÄslab¡£
½á¹¹Ì壺¼ûÏÂÃæµÄ´úÂë·ÖÎö¡£
Èý¡¢´úÂë·ÖÎö£º
ÿ¸öÑÕÉ«´ú±íµÄº¬Ò壺
ºìÉ«£º´úÂë×¢ÊÍ£»
źºÉÉ«£º±àÒëÔ¤´¦ÀíÐèÒª´¦ÀíµÄÄÚÈÝ£»
À¶É«£ºCÓïÑԹؼü×Ö¡¢º¯Êý¶¨Ò壻
ÂÌÉ«£ººê¶¨Ò壻
ºÚÉ«£º´úÂ룻
»ÒÉ«£ºÊä³öÐÅÏ¢£»
ÉîÀ¶É«£ºÎÒ¸ø³öµÄ×¢½â¡£
/*
* linux/mm/slab.c
* Written by Mark Hemment, 1996/97.
* (markhe@nextd.demon.co.uk)
*
* kmem_cache_destroy() + some cleanup - 1999 Andrea Arcangeli
*
* Major cleanup, different bufctl logic, per-cpu arrays
* (c) 2000 Manfred Spraul
*ÒÔÉÏΪ°æÈ¨ÐÅÏ¢
* An implementation of the Slab Allocator as described in outline in;
* UNIX Internals: The N


Ïà¹ØÎĵµ£º

[¸ßÐÔÄܼ¼Êõ] Linux2.6ÄÚºËepoll½éÉÜ(0.1°æ±¾)

[¸ßÐÔÄܼ¼Êõ] Linux2.6ÄÚºËepoll½éÉÜ(0.1°æ±¾)
ת×Ô£º http://mechgouki.blogdriver.com/mechgouki/601157.html
[×÷Õß]£ºëøêÅ,2005/3/30,0.1°æ±¾
[°æÈ¨ÉùÃ÷]£º´ËÎĵµ×ñÑ­GNU×ÔÓÉÎĵµÐí¿ÉÖ¤(GNU Free Documentation License).ÈκÎÈË¿ÉÒÔ×ÔÓɸ´ÖÆ,·Ö·¢,ÐÞ¸Ä,²»¹ýÈç¹û·½±ã,Çë×¢Ã÷³ö´¦ºÍ×÷Õß:)
(1)µ¼ÑÔ£º
Ê×ÏÈ£¬ÎÒÇ¿ÁÒ½¨Òé ......

linux tasklet 4

ÒýÓà 2 Â¥ cokeliu µÄ»Ø¸´:
лл! ÇëÎÊÊÇ·ñÿµ÷ÓÃÒ»´Îtasklet_schedule(B task); B taskÈÎÎñ±»¼Óµ½Á´±íÉÏÖ»»á±»Ö´ÐÐÒ»´Î?
Êǵģ¬Ö»±»¼ÓÒ»´Î
µÚÒ»´Îtasklet_schedule(B task)¸øËûÒ»¸ö״̬TASK_STATE_SCHED
×÷±ê¼Ç£¬ÒÔºóµÄtasklet_schedule(B task)»á¼ì²éÕâ¸ö±ê¼Ç
http://os.inf.tu-dresden.de/l4env/doc/html/dde_linux ......

linux ½âѹСȫ

´óÖÂÃüÁîÈçÏ£º
tar  xvfj  lichuanhua.tar.bz2 
  tar  xvfz  lichuanhua.tar.gz 
  tar  xvfz  lichuanhua.tgz 
  tar  xvf   lichuanhua.tar 
  unzip & ......

SynapticsÖúÁ¦Chrome OSºÍLinux¶à點觸Ãþ

4ÔÂ19ÈÕ£¬²Ù×÷½çÃæ½â¾ö·½°¸ÌṩÉÌSynaptics Inc.Ðû²¼ÁËÒ»Ì×ÓÃÓÚLinuxϵ統µÄ Synaptics Gesture Suite¿ª·¢Ì××°£¨SGS-L£©£¬Õâ¿îÈí¼þ½«´ø¸ø¿ªÔ´LinuxϵͳÒÔ¶àµã´¥ÃþµÄÄÜÁ¦¡£
SGS-LÖ§³Ö眾¶àµÄLinux·¢ÐаæÈçFedora, Millos Linpus, Red Flag, SuSE, UbuntuºÍXandros£¬並ÌØ別Ìá¼°¿ÉÍØÕ¹Chrome OSµÄй¦Ä ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ