Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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


Ïà¹ØÎĵµ£º

ÔÚlinuxÏÂʵÏÖweb qqµÄ×ÀÃæ»¯


´´½¨×ÀÃæÍ¼±ê
Ŀǰ½«ÍøÂçÓ¦ÓÃÀ©Õ¹µ½×ÀÃæÊÇÒ»¸öÇ÷ÊÆ£¬´æÔÚןܶà½â¾ö·½°¸£¬±¾ÎÄÒÔ Mozilla Prism ΪÀý£¬ÀàËÆµÄ·½·¨Í¬ÑùÊÊÓÃÓÚ Google Chrome ¡£
1. µ½ Mozilla Prism µÄÍøÕ¾ÉÏÏÂÔØ Prism£¬µã»÷ Download Now Ö®ºó»áÌáʾÓÐÁ½ÖÖ£¬Ò»ÖÖÊÇÒÔ Mozilla Firefox À©Õ¹µÄ·½Ê½£¬ÊʺÏÒѾ­°²×°ÓÐ Firefox µÄÅóÓÑ£»Ò»Ö ......

linux 2.6 kernel epoll

http://hi.baidu.com/j_fo/blog/item/a43fa60fa6e2f4eaab6457d5.html
Linux2.6ÄÚºËepoll½éÉÜ
2008-11-05 16:35
http://blog.csdn.net/rstevens/archive/2007/10/30/1858067.aspx
http://hi.baidu.com/jmlover/blog/item/24c28b131e6b48d7f7039ee6.html
http://hi.baidu.com/jmlover/blog/item/e64df724f12926348744f9 ......

Linuxϵͳ¹ÜÀí °²È«Æª Ö®¿ª·Å¶Ë¿Ú

²é¿´ÏµÍ³Öпª·ÅµÄ¶Ë¿Ú£¬¹Ø±Õ²»ÐèÒªµÄ¶Ë¿ÚºÍ³ÌÐò£¬ÈçÏÂÀýÖвÙ×÷Á÷³Ì£º
1. ²é¿´¶ÔÍ⿪ÆôµÄ¶Ë¿Ú:
[root@mail ~]# nmap 127.0.0.1 #×¢£º´Ë´¦Ó¦¸Ã»»×÷¹«Íøip
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2010-04-20 11:06 CST
Interesting ports on 127.0.0.1
Not shown: 1668 closed ports
PORT   &nb ......

linux´î½¨telnet·þÎñÆ÷

1¡¢¼ì²â
°²×°Ö®Ç°Ïȼì²âÊÇ·ñÕâЩÈí¼þ°üÒѰ²×°£¬·½·¨ÈçÏ£º[root@localhost
root]#rpm -q telnet»ò[root@localhost root]#rpm -q telnet-client
[root@localhost root]#rpm -q
telnet-server
Èç¹ûûÓмì²âµ½Èí¼þ°ü£¬ÐèÒª½øÐа²×°£¬¾Ý˵red hat Linux
9ĬÈÏÒѰ²×°ÁËtelnetÈí¼þ°ü£¬²»ÖªµÀΪʲôÎÒµÄûÓУ¬»¹ºÃû¹ØÏµ£ ......

linux ÐźŴ¦Àí µÄѧϰ

      linuxϵͳÖжÔÐźŵĴ¦ÀíÖ÷ÒªÊÇsignal ºÍsigactionº¯ÊýÀ´Íê³É£¬pauseÓÃÀ´ÏìÓ¦ÈκÎÐźţ¬µ«²»×öÈκδ¦Àí¡£
      1¡£signalº¯Êý
¸Ãº¯ÊýÓÃÀ´ÉèÖýø³ÌÔÚ½Óµ½Ðźŵ͝×÷¡£¿ÉÒÔ man signal²é¿´¾ßÌåÓ÷¨£¬ÏÖÔÚ¶ÔÆäÓ÷¨ÑÝʾ£¬
SIGKILL SIGSTOPÊDz»Äܱ»²¶×½ºÍºöÂÔµÄÐź ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ