LinuxÄںˣºslab/slob/slub
ÔÎÄÁ´½Ó:http://www.linuxdiyf.com/bbs/viewthread.php?tid=92084
ºÜ¾ÃºÜ¾ÃÒÔǰ£ºÒ»¸ö½Ð×öMark HemmentµÄ¸ç¶ùÃÇдÁËSlab¡£ÔÚ½ÓÏÂÀ´µÄһЩÄêÀÆäËûÈ˶ÔSlab½øÐÐÁËÍêÉÆ¡£Ò»Äê°ëÒÔǰ£¬SLOBÎÊÊÀÁË¡£SLOBµÄÄ¿±êÊÇÕë¶ÔǶÈëʽϵͳµÄ£¬Ö÷ÒªÊÇÊÊÓÃÓÚÄÇЩÄÚ´æ·Ç³£ÓÐÏÞµÄϵͳ£¬±ÈÈç32MBÒÔϵÄÄڴ棬Ëü²»Ì«×¢ÖØlarge smpϵͳ£¬ËäÈ»×î½üÔÚÕâ·½ÃæÓÐһЩСµÄ¸Ä½ø¡£¼¸¸öÔÂ֮ǰ£¬SLUBÉÁÁÁµÇ³¡¡£Ëü»ù±¾ÉÏÊôÓÚ¶ÔSlabµÄÖØÉè¼Æ(redesign)£¬µ«ÊÇ´úÂë¸üÉÙ£¬²¢ÇÒÄܸüºÃµÄÊÊÓ¦large NUMAϵͳ¡£SLUB±»ºÜÈÏΪÊÇSlabºÍSlobµÄÈ¡´úÕߣ¬´ó¸ÅÔÚ2.6.24/2.6.25½«»á±»Í¬Ö¾ÃÇÅׯú¡£¶øSLUB½«ÊÇδÀ´Linux KernelÖеÄÊ×Ñ¡¡£
LinuxÄÚºËÕæÊDZ仯̫¿ìÁË£¬ÄÚ´æ¹ÜÀíÕâ¿é¾ÍÊÇÒ»¸öºÃÀý×Ó¡£
±¾À´LinuxÄÚºËÖ»ÓÐSlabµÄ£¬ÏÖÔÚºÃÁË£¬Slab¶àÁËÁ½¸öÐֵܣºSlobºÍSlub¡£ÇÆ£¡Õâ¾ÍÊÇÄں˵ÄÃüÃû·ç¸ñ£¬ÈÃÄã¹â¿´Ãû×־ͺýÍ¿ÁË£¡ÕâÒ²ÊÇÎÒÕâÁ½Ìì¶ÁÄÚºËÔ´´úÂëµÄÉî¿ÌÌå»á£¬Ê²Ã´cache°¡£¬cache_cache°¡£¬free_area°¡£¬ÈƲ»ÔÎÄã²Å¹ÖÄØ¡«£¡
ÒÔǰ¸ã²»¶®ÕâÈý¸öµ½µ×ʲô¹ØÏµ£¬ÎªÊ²Ã´ÒªÓÐÕâÈý¸ö¡£½ñÌìËÑÁËһϣ¬Ã÷°×ÁËһЩ¡£¼òµ¥µÄ˵£ºSlabÊÇ»ù´¡£¬ÊÇ×îÔç´ÓSun OSÄÇÒý½øµÄ£»SlubÊÇÔÚSlabÉϽøÐеĸĽø£¬ÔÚ´óÐÍ»úÉϱíÏÖ³öÉ«£¨²»ÖªµÀÔÚÆÕͨPCÉÏÈçºÎ£©£¬¾Ý˵»¹±»IA-64×÷ΪĬÈÏ£»¶øSlobÊÇÕë¶ÔСÐÍϵͳÉè¼ÆµÄ£¬µ±È»ÁË£¬Ö÷ÒªÊÇǶÈëʽ¡£Ïà¹ØÎÄÕÂÈçÏ£º
Anatomy of the Linux slab allocator
The SLUB allocator
The SLOB allocator
ÕâÒ²ÕýºÃÌåÏÖÁËÒ»¸öLinuxÄں˿ª·¢Ò»¹áµÄ˼Ï룺ÌṩһÖÖ»úÖÆ£¬¶ø²»ÊÇÒ»ÖÖ²ßÂÔ£¨Provide mechanism not policy£©¡£ÆäËüÈí¼þ¿ª·¢Óֺγ¢²»ÊÇÈç´ËÄØ?
Ïà¹ØÎĵµ£º
À¼´óÂÛ̳ÉϵÄÒ»¸öÌû×Ó¡«¡«
ѧ¶«Î÷£¬ÍùÍùʵÀý²ÅÊÇ×îÈÃÈ˸ÐÐËȤµÄ£¬ÀÏÊÇѧ»ù´¡ÀíÂÛ£¬²»¶¯ÊÖ£¬¸Ð¾õûÓгɾ͸У¬ºÇºÇ¡£
ÏÂÃæÏÈÀ´Ò»¸öʵÀý¡£ÎÒÃÇͨ¹ý´´½¨Á½¸öÏß³ÌÀ´ÊµÏÖ¶ÔÒ»¸öÊýµÄµÝ¼Ó¡£
»òÐíÕâ¸öʵÀýûÓÐʵ¼ÊÔËÓõļÛÖµ£¬µ«ÊÇÉÔ΢¸Ä¶¯Ò»Ï£¬ÎÒÃǾͿÉÒÔÓõ½ÆäËûµØ·½È¥À¡£
ÏÂÃæÊÇÎÒÃǵĴúÂ룺
/*thread_example.c : c ......
ͬһ¸öcдµÄ³ÌÐòÔÚwindowsƽ̨ռÓÃ60%£¨×ÊÔ´¹ÜÀíÆ÷£©µ«ÔÚlinuxƽ̨ռ120%£¨topÃüÁ¡£
cpuÊÇË«ºËµÄ»úÆ÷£¬ÔÀ´windows¶ÔË«ºËµÄͳ¼ÆÊÇË«ºËÕ¼ÓÃÂʵĺÍÔÙÇ󯽾ù£¬¶ølinuxµÄtop½öÊÇË«ºËÕ¼ÓÃÂʵÄ×ܺϡ£
ÓÐÒâ˼µÄÒ»¸öÎÊÌâ¼Ç¼һÏÂ
......
LinuxºÍWindowsµÄÇø±ð
ºÍLinuxÒ»Ñù£¬WindowsϵÁÐÊÇÍêÈ«µÄ¶àÈÎÎñ²Ù×÷ϵͳ¡£ËüÃÇÖ§³ÖͬÑùµÄÓû§½Ó¿Ú¡¢ÍøÂçºÍ°²È«ÐÔ¡£µ«ÊÇ£¬LinuxºÍWindowsµÄÕæÕýÇø±ðÔÚÓÚ£¬LinuxÊÂʵÉÏÊÇUnixµÄÒ»ÖÖ°æ±¾£¬¶øÇÒÀ´×ÔUnixµÄ¹±Ï׷dz£¾Þ´ó¡£ÊÇʲôʹµÃUnixÈç´ËÖØÒª£¿²»½öÔÚÓÚ¶Ô¶àÓû§»úÆ÷À´Ëµ£¬UnixÊÇ×îÁ÷ÐеIJÙ×÷ϵͳ£¬¶øÇÒÔÚÓÚËüÊÇÃâ·ÑÈí¼þµÄ»ù´ ......
dd ÊÇ Linux/UNIX ϵÄÒ»¸ö·Ç³£ÓÐÓõÄÃüÁ×÷ÓÃÊÇÓÃÖ¸¶¨´óСµÄ¿é¿½±´Ò»¸öÎļþ£¬²¢ÔÚ¿½±´µÄͬʱ½øÐÐÖ¸¶¨µÄת»»¡£
dd µÄÖ÷ҪѡÏ
Ö¸¶¨Êý×ֵĵط½ÈôÒÔÏÂÁÐ×Ö·û½áβ³ËÒÔÏàÓ¦µÄÊý×Ö:
b=512, c=1, k=1024, w=2, xm=number m
if=file
ÊäÈëÎļþÃû£¬È±Ê¡Îª±ê×¼ÊäÈë¡£
of=file
Êä³öÎļþÃû£¬È±Ê¡Îª±ê×¼Êä³ö¡£
ibs=bytes
Ò» ......
linuxÄÚºËÖÐ×î³£¼ûµÄËøÊÇ×ÔÐýËø(spin lock)¡£×ÔÐýËø×î¶àÖ»Äܱ»Ò»¸ö¿ÉÖ´ÐÐÏ̳߳ÖÓС£Èç¹ûÒ»¸öÖ´ÐÐÏß³ÌÊÔͼ»ñµÃÒ»¸ö±»ÕùÓõÄ×ÔÐýËø£¬ÄÇô¸ÃÏ߳̾ͻáÒ»Ö±½øÐÐæѻ·µÈ´ýËøÖØÐ¿ÉÓá£ÒªÊÇËøÎ´±»ÕùÓã¬ÇëÇóËøµÄÖ´ÐÐÏ̱߳ãÄÜÁ¢¿ÌµÃµ½Ëü£¬¼ÌÐøÖ´ÐС£ÔÚÈÎÒâʱ¼ä£¬×ÔÐýËø¶¼¿ÉÒÔ·ÀÖ¹¶àÓÚÒ»¸öµÄÖ´ÐÐÏß³Ìͬʱ½øÈëÁÙ½çÇø¡£
......