Linux slab ·ÖÅäÆ÷ÆÊÎöÖ®Ò»£ºslab µÄ¸ÅÄî
ÄÚ´æ¹ÜÀíµÄÄ¿±êÊÇÌṩһÖÖ·½·¨£¬ÎªÊµÏÖ¸÷ÖÖÄ¿µÄ¶øÔÚ¸÷¸öÓû§Ö®¼äʵÏÖÄÚ´æ¹²Ïí¡£ÄÚ´æ¹ÜÀí·½·¨Ó¦¸ÃʵÏÖÒÔÏÂÁ½¸ö¹¦ÄÜ£ºÒ»ÊÇ×îС»¯¹ÜÀíÄÚ´æËùÐèµÄʱ¼ä£»¶þÊÇ×î´ó»¯ÓÃÓÚÒ»°ãÓ¦ÓõĿÉÓÃÄڴ棨×îС»¯¹ÜÀí¿ªÏú£©¡£ÄÚ´æ¹ÜÀíʵ¼ÊÉÏÊÇÒ»ÖÖ¹ØÓÚȨºâµÄÁãºÍÓÎÏ·¡£Äú¿ÉÒÔ¿ª·¢Ò»ÖÖʹÓÃÉÙÁ¿ÄÚ´æ½øÐйÜÀíµÄËã·¨£¬µ«ÊÇÒª»¨·Ñ¸ü¶àʱ¼äÀ´¹ÜÀí¿ÉÓÃÄÚ´æ¡£Ò²¿ÉÒÔ¿ª·¢Ò»¸öËã·¨À´ÓÐЧ¿ìËٵعÜÀíÄڴ棬µ«È´ÒªÊ¹Óøü¶àµÄÄÚ´æ¡£×îÖÕ£¬Ìض¨Ó¦ÓóÌÐòµÄÐèÇ󽫴Ùʹ¶ÔÕâÖÖȨºâ×÷³öÑ¡Ôñ¡£
Ò»£¬ÆÕͨÄÚ´æ¹ÜÀíÓëslabÄÚ´æ¹ÜÀíµÄ¶Ô±È
֮ǰµÄÄÚ´æ¹ÜÀíÆ÷¶¼Ê¹ÓÃÁËÒ»ÖÖ»ùÓڶѵķÖÅä²ßÂÔ¡£ÔÚÕâÖÖ·½·¨ÖУ¬´ó¿éÄڴ棨³ÆÎª¶Ñ£©ÓÃÀ´ÎªÓû§¶¨ÒåµÄÄ¿µÄÌṩÄÚ´æ¡£µ±Óû§ÐèÒªÒ»¿éÄÚ´æÊ±£¬¾ÍÇëÇó¸ø×Ô¼º·ÖÅäÒ»¶¨´óСµÄÄÚ´æ¡£¶Ñ¹ÜÀíÆ÷»á²é¿´¿ÉÓÃÄÚ´æµÄÇé¿ö£¨Ê¹ÓÃÌØ¶¨Ëã·¨£©²¢·µ»ØÒ»¿éÄÚ´æ¡£ËÑË÷¹ý³ÌÖÐʹÓõÄһЩËã·¨ÓÐ first-fit£¨ÔÚ¶ÑÖÐËÑË÷µ½µÄµÚÒ»¸öÂú×ãÇëÇóµÄÄÚ´æ¿é£©ºÍ best-fit£¨Ê¹ÓöÑÖÐÂú×ãÇëÇóµÄ×îºÏÊʵÄÄÚ´æ¿é£©¡£µ±Óû§Ê¹ÓÃÍêÄÚ´æºó£¬¾Í½«ÄÚ´æ·µ»Ø¸ø¶Ñ¡£ÕâÖÖ»ùÓڶѵķÖÅä²ßÂԵĸù±¾ÎÊÌâÊÇË鯬£¨fragmentation£©¡£µ±ÄÚ´æ¿é±»·ÖÅäºó£¬ËüÃÇ»áÒÔ²»Í¬µÄ˳ÐòÔÚ²»Í¬µÄʱ¼ä·µ»Ø¡£ÕâÑù»áÔÚ¶ÑÖÐÁôÏÂһЩ¶´£¬ÐèÒª»¨Ò»Ð©Ê±¼ä²ÅÄÜÓÐЧµØ¹ÜÀí¿ÕÏÐÄÚ´æ¡£ÕâÖÖË㷨ͨ³£¾ßÓнϸߵÄÄÚ´æÊ¹ÓÃЧÂÊ£¨·ÖÅäÐèÒªµÄÄڴ棩£¬µ«ÊÇÈ´ÐèÒª»¨·Ñ¸ü¶àʱ¼äÀ´¶Ô¶Ñ½øÐйÜÀí¡£
Linux ËùʹÓÃµÄ slab ·ÖÅäÆ÷µÄ»ù´¡ÊÇ Jeff Bonwick Ϊ SunOS ²Ù×÷ϵͳÊ×´ÎÒýÈëµÄÒ»ÖÖËã·¨¡£Jeff µÄ·ÖÅäÆ÷ÊÇÎ§ÈÆ¶ÔÏó»º´æ½øÐеġ£ÔÚÄÚºËÖУ¬»áΪÓÐÏ޵ĶÔÏ󼯣¨ÀýÈçÎļþÃèÊö·ûºÍÆäËû³£¼û½á¹¹£©·ÖÅä´óÁ¿ÄÚ´æ¡£Jeff ·¢ÏÖ¶ÔÄÚºËÖÐÆÕͨ¶ÔÏó½øÐгõʼ»¯ËùÐèµÄʱ¼ä³¬¹ýÁË¶ÔÆä½øÐзÖÅäºÍÊÍ·ÅËùÐèµÄʱ¼ä¡£Òò´ËËûµÄ½áÂÛÊDz»Ó¦¸Ã½«ÄÚ´æÊÍ·Å»ØÒ»¸öÈ«¾ÖµÄÄÚ´æ³Ø£¬¶øÊǽ«ÄÚ´æ±£³ÖΪÕë¶ÔÌØ¶¨Ä¿¶ø³õʼ»¯µÄ״̬¡£ÀýÈ磬Èç¹ûÄÚ´æ±»·ÖÅ䏸ÁËÒ»¸ö»¥³âËø£¬ÄÇôֻÐèÔÚΪ»¥³âËøÊ״ηÖÅäÄÚ´æÊ±Ö´ÐÐÒ»´Î»¥³âËø³õʼ»¯º¯Êý£¨mutex_init£©¼´¿É¡£ºóÐøµÄÄÚ´æ·ÖÅä²»ÐèÒªÖ´ÐÐÕâ¸ö³õʼ»¯º¯Êý£¬ÒòΪ´ÓÉÏ´ÎÊͷź͵÷ÓÃÎö¹¹Ö®ºó£¬ËüÒѾ´¦ÓÚËùÐèµÄ״̬ÖÐÁË¡£
ÏÂͼ¸ø³öÁË slab ½á¹¹µÄ¸ß²ã×éÖ¯½á¹¹¡£ÔÚ×î¸ß²ãÊÇ cache_chain£¬ÕâÊÇÒ»¸ö slab »º´æµÄÁ´½ÓÁÐ±í¡£Õâ¶ÔÓÚ best-fit Ëã·¨·Ç³£ÓÐÓ㬿ÉÒÔÓÃÀ´²éÕÒ×îÊʺÏËùÐèÒªµÄ·ÖÅä´óСµÄ»º´æ£¨±éÀúÁÐ±í£©¡£cache_chain µÄÿ¸öÔ
Ïà¹ØÎĵµ£º
Ò»¡¢tast_struct½á¹¹
ËüÊÇÒ»¸öÊý¾Ý½á¹¹£¬¿ÉÒÔ˵£¬Ëü´ú±íÁËÒ»¸ö½ø³Ì¡£ËüÓкܶà×ֶΣ¬´óÌåÓÐһϼ¸ÖÖ£º
±êʶºÅ£º½ø³Ì±êʶ¡¢Óû§±êʶ¡¢×é±êʶ¡£
״̬£º LinuxµÄ½ø³ÌµÄËÄÖÖ»ù±¾×´Ì¬
µ÷¶ÈÐÅÏ¢£ºÓÅÏȼ¶¡¢Ê±¼äƬµÈ
½ø³ÌÁ´ÐÅÏ¢£º¸¸½ø³Ì¡¢×Ó½ø³ÌµÄÖ¸Õë
ÎļþÐÅÏ¢£º´ò¿ªÎļþ¡¢ÐéÄâÎļþϵͳ
ÉÏÏÂÎÄÐÅÏ¢£º½ø³ÌµÄÔËÐл·¾³
......
ÎÄÕÂÀ´Ô´:http://www.ibm.com/developerworks/cn/linux/l-linux-synchronization.html
¼¶±ð£º Öм¶
M. Tim Jones, ¹ËÎʹ¤³Ìʦ, Emulex
2007 Äê 11 ÔÂ 19 ÈÕ
ÔÚѧϰ Linux® µÄ¹ý³ÌÖУ¬ÄúÒ²Ðí½Ó´¥¹ý²¢·¢£¨concurrency£©¡¢ÁÙ½ç¶Î£¨critical section£©ºÍËø¶¨£¬µ«ÊÇÈçºÎÔÚÄÚºËÖÐʹÓÃÕâЩ¸ÅÄîÄØ£¿±¾ÎÄÌÖÂÛÁË 2.6 °æÄÚºËÖÐ ......
Èç¹ûÄãÊÇLinuxµÄÓû§£¬ÄãÊÇ·ñ·Ç³£Ï²»¶ËûµÄʵÓÃÐÔ£¬¼òµ¥±ã½Ý¡£²»¹ý£¬¶ÔÓÚLinuxÈí¼þµÄ°²×°ºÍÐ¶ÔØÒ»Ö±ÊÇÀ§ÈÅÐí¶àÐÂÓû§µÄÄÑÌâ¡£ÔõÑù²ÅÄÜÍê³ÉLinuxÈí¼þµÄ°²×°ºÍÐ¶ÔØµÄ¹ý³ÌÄØ£¿
ÔÚWindowsÖУ¬ÎÒÃÇ¿ÉÒÔʹÓÃÈí¼þ×Ô´øµÄ°²×°Ð¶ÔسÌÐò»òÔÚ¿ØÖÆÃæ°åÖеēÌí¼Ó/ɾ³ý³ÌÐò”À´ÊµÏÖ¡£ÓëÆäÏàÀàËÆ£¬ÔÚ²»Í¬Linux·¢ÐаæÏÂÒ²Óй¦ÄÜÇ¿ ......
linuxϵÄÈí¼þRAIDÖ§³ÖRAID¼¶±ð0,1,4,5,6£¬½ñÌìÌØ±ð²âÊÔÒ»ÏÂRAID6¡£
²½ÖèÒ»£º×¼±¸·ÖÇø
·ÖÇøÇé¿öÈçÏ£¬¾ßÌåÈçºÎ·ÖÇø¾Í²»½éÉÜÁË¡£
/dev/hdb5 5240 5252 1043 ......
Linux ÄÚºË ×îÁ÷ÐеĿªÔ´²Ù×÷ϵͳÄÚºË
Linux ÄÚºË×é³É
Linux ÆÊÎöϵÁÐ
ÄÚºËÅäÖü°±àÒë
ÐÔÄܵ÷ÊÔ
Linux Äں˿ª·¢Óë²âÊÔ
ÄÚºË 2.4 Óë 2.6 ±È½Ï
ÄÚºËÆäËûÎÄÕÂ
Linux ÄÚºËÊÇÒ»¸öÅÓ´ó¶ø¸´ÔӵIJÙ×÷ϵͳµÄºËÐÄ£¬²»¹ý¾¡¹ÜÅӴ󣬵«ÊÇÈ´²ÉÓà ......