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 µÄÿ¸öÔ
Ïà¹ØÎĵµ£º
CPU : ARM9 s3c2410
LCD : ¹æ¸ñ²»Ã÷£¨Õâ¸öºÜÎÞÄΣ¬µ«ÊÇÎÒËùÖªµÀµÄÖ»ÓÐÒ»¸ö·Ö±æÂÊ£©
Ô´ÂëÐ޸ģº
/linux-2.6.30.4/arch/arm/mach-s3c2410/mach-smdk2410.c
ÔÚÕâ¸öÎļþÖмÓÈëframebufferµÄ³õʼ»¯Êý¾Ý½á¹¹£¨¾ßÌåÊý¾Ý²ÎÕÕLCD¼¼ÊõÊֲᣩÈçÏ£º
#include <mach/fb.h> ......
Èç¹ûÄãÊÇLinuxµÄÓû§£¬ÄãÊÇ·ñ·Ç³£Ï²»¶ËûµÄʵÓÃÐÔ£¬¼òµ¥±ã½Ý¡£²»¹ý£¬¶ÔÓÚLinuxÈí¼þµÄ°²×°ºÍÐ¶ÔØÒ»Ö±ÊÇÀ§ÈÅÐí¶àÐÂÓû§µÄÄÑÌâ¡£ÔõÑù²ÅÄÜÍê³ÉLinuxÈí¼þµÄ°²×°ºÍÐ¶ÔØµÄ¹ý³ÌÄØ£¿
ÔÚWindowsÖУ¬ÎÒÃÇ¿ÉÒÔʹÓÃÈí¼þ×Ô´øµÄ°²×°Ð¶ÔسÌÐò»òÔÚ¿ØÖÆÃæ°åÖеēÌí¼Ó/ɾ³ý³ÌÐò”À´ÊµÏÖ¡£ÓëÆäÏàÀàËÆ£¬ÔÚ²»Í¬Linux·¢ÐаæÏÂÒ²Óй¦ÄÜÇ¿ ......
yumÊǸÉʲôµÄ(×ªÔØ http://www.soft6.com/tech/16/166057.html)
¡¡¡¡Ê¹ÓÃredhat£¬fedoraµÄlinuxer¿Ï¶¨¶¼ÎªrpmÖøÃûµÄdependency
hell¶øÍ·ÌÛ(ÕâÒ²ÊÇËùÓлùÓÚrpm·¢Ðа涼ÓеÄÎÊÌâ)¡£foo is needed by bar£¬bar is needed by
foo¡£Òª×°Ð¶¸öÈí¼þ£¬»¹µÃÐÁÐÁ¿à¿àµØÊáÀíÇå³þËùÓÐÒÀÀµÐÔÎÊÌ⣬rpmµÄ¼¸¸öËÑË÷Õ¾µã³ÉÁËʱ³£¹â¹ËµÄ³¡Ë ......
linuxϵÄÈí¼þRAIDÖ§³ÖRAID¼¶±ð0,1,4,5,6£¬½ñÌìÌØ±ð²âÊÔÒ»ÏÂRAID6¡£
²½ÖèÒ»£º×¼±¸·ÖÇø
·ÖÇøÇé¿öÈçÏ£¬¾ßÌåÈçºÎ·ÖÇø¾Í²»½éÉÜÁË¡£
/dev/hdb5 5240 5252 1043 ......