BBSˮľÇ廪վ¡Ã¾«»ªÇø

·¢ÐÅÈË: coolzhang (coolzhang), ÐÅÇø: Linux        
±ê  Ìâ: linux bible µÚÈýÕ ´æ´¢¹ÜÀí 
·¢ÐÅÕ¾: BBS Ë®Ä¾Ç廪վ (Mon Oct 25 17:46:28 1999) 
 
·¢ÐÅÈË: coolzhang (coolzhang), ÐÅÇø: UNIX 
±ê  Ìâ: linux bible µÚÈýÕ ´æ´¢¹ÜÀí 
·¢ÐÅÕ¾: Î人°×ÔÆ»Æº×Õ¾ (Mon Oct 25 14:24:45 1999), Õ¾ÄÚÐżþ 
µÚÈýÕ ´æ´¢¹ÜÀí 
´æ´¢¹ÜÀí×Óϵͳʱ²Ù×÷ϵͳÖÐ×îÖØÒªµÄ×é³É²¿·ÖÖ®Ò»¡£ÔÚÔçÆÚ¼ÆËãʱ´ú£¬ÓÉÓÚÈËÃÇ 
ËùÐèÒªµÄÄÚ´æÊýĿԶԶ´óÓÚÎïÀíÄڴ棬ÈËÃÇÉè¼Æ³öÁ˸÷ÖÖ¸÷ÑùµÄ²ßÂÔÀ´½â¾ö´ËÎÊÌ⣬ 
ÆäÖÐ×î³É¹¦µÄÊÇÐéÄâÄÚ´æ¼¼Êõ¡£ËüʹµÃϵͳÖÐΪÓÐÏÞÎïÀíÄڴ澺ÕùµÄ½ø³ÌËùÐèÄÚ´æ 
¿Õ¼äµÃµ½Âú×ã¡£ 
ÐéÄâÄÚ´æ¼¼Êõ²»½ö½ö¿ÉÈÃÎÒÃÇ¿ÉÒÔʹÓøü¶àµÄÄڴ棬Ëü»¹ÌṩÁËÒÔϹ¦ÄÜ£º 
¾Þ´óµÄѰַ¿Õ¼ä 
²Ù×÷ϵͳÈÃϵͳ¿´ÉÏÈ¥ÓбÈʵ¼ÊÄÚ´æ´óµÃ¶àµÄÄÚ´æ¿Õ¼ä¡£ÐéÄâÄÚ´æ¿ÉÒÔÊÇϵͳÖÐʵ 
¼ÊÎïÀí¿Õ¼äµÄÐí¶à±¶¡£Ã¿¸ö½ø³ÌÔËÐÐÔÚÆä¶ÀÁ¢µÄÐéÄâµØÖ·¿Õ¼äÖС£ÕâЩÐéÄâ¿Õ¼äÏà 
»¥Ö®¼ä¶¼ÍêÈ«¸ôÀ뿪À´£¬ËùÒÔ½ø³Ì¼ä²»»á»¥ÏàÓ°Ï졣ͬʱ£¬Ó²¼þÐéÄâÄÚ´æ»ú¹¹¿ÉÒÔ 
½«ÄÚ´æµÄÄ³Ð©ÇøÓòÉèÖóɲ»¿Éд¡£ÕâÑù¿ÉÒÔ±£»¤´úÂëÓëÊý¾Ý²»»áÊܶñÒâ³ÌÐòµÄ¸ÉÈÅ¡£ 
ÄÚ´æÓ³Éä 
ÄÚ´æÓ³Éä¼¼Êõ¿ÉÒÔ½«Ó³ÏóÎļþºÍÊý¾ÝÎļþÖ±½ÓÓ³Éäµ½½ø³ÌµÄµØÖ·¿Õ¼ä¡£ÔÚÄÚ´æÓ³Éä 
ÖУ¬ÎļþµÄÄÚÈݱ»Ö±½ÓÁ¬½Óµ½½ø³ÌÐéÄâµØÖ·¿Õ¼äÉÏ¡£ 
¹«Æ½µÄÎïÀíÄÚ´æ·ÖÅä 
ÄÚ´æ¹ÜÀí×ÓϵͳÔÊÐíϵͳÖÐÿ¸öÔËÐеĽø³Ì¹«Æ½µØ¹²ÏíϵͳÖеÄÎïÀíÄÚ´æ¡£ 
¹²ÏíÐéÄâÄÚ´æ 
¾¡¹ÜÐéÄâÄÚ´æÔÊÐí½ø³ÌÓÐÆä¶ÀÁ¢µÄÐéÄâµØÖ·¿Õ¼ä£¬µ«ÓÐʱҲÐèÒªÔÚ½ø³ÌÖ®¼ä¹²ÏíÄÚ 
´æ¡£ÀýÈçÓпÉÄÜϵͳÖÐÓм¸¸ö½ø³ÌͬʱÔËÐÐBASHÃüÁîÍâ¿Ç³ÌÐò¡£ÎªÁ˱ÜÃâÔÚÿ¸ö½ø 
³ÌµÄÐéÄâÄÚ´æ¿Õ¼äÄÚ¶¼´æÔÚBASH³ÌÐòµÄ¿½±´£¬½ÏºÃµÄ½â¾ö°ì·¨ÊÇϵͳÎïÀíÄÚ´æÖÐÖ» 
´æÔÚÒ»·ÝBASHµÄ¿½±´²¢ÔÚ¶à¸ö½ø³Ì¼ä¹²Ïí¡£¶¯Ì¬¿âÔòÊÇÁíÍâÒ»ÖÖ½ø³Ì¼ä¹²ÏíÖ´Ðдú 
ÂëµÄ·½Ê½¡£¹²ÏíÄÚ´æ¿ÉÓÃÀ´×÷Ϊ½ø³Ì¼äͨѶ(IPC)µÄÊֶΣ¬¶à¸ö½ø³Ìͨ¹ý¹²ÏíÄÚ´æ 
À´½»»»ÐÅÏ¢¡£LinuxÖ§³ÖSYSTEM VµÄ¹²ÏíÄÚ´æIPC»úÖÆ¡£ 
3.1 ÐéÄâÄÚ´æµÄ³éÏóÄ£ÐÍ 
ÔÚÌÖÂÛLinuxÊÇÈçºÎ¾ßÌåʵÏÖ¶ÔÐéÄâÄÚ´æµÄÖ§³Öǰ£¬ÓбØÒª¿´Ò»Ï¸ü¼òµ¥µÄ³éÏóÄ£ÐÍ¡£ 
ÔÚ´¦ÀíÆ÷Ö´ÐгÌÐòʱÐèÒª½«Æä´ÓÄÚ´æÖжÁ³öÔÙ½øÐÐÖ¸Áî½âÂë¡£ÔÚÖ¸Áî½âÂë֮ǰËü±ØÐë 
ÏòÄÚ´æÖÐij¸öλÖÃÈ¡³ö»òÕß´æÈëij¸öÖµ¡£È»ºóÖ´ÐдËÖ¸Áî²¢Ö¸Ïò³ÌÐòÖÐÏÂÒ»ÌõÖ¸Áî¡£ 
Ôڴ˹ý³ÌÖд¦ÀíÆ÷±ØÐëÆµ·±·ÃÎÊÄڴ棬ҪôȡָȡÊý£¬ÒªÃ´´æ´¢Êý¾Ý¡£ 
ÐéÄâÄÚ´æÏµÍ³ÖеÄËùÓеØÖ·¶¼ÊÇÐéÄâµØÖ·¶ø²»ÊÇÎïÀíµØÖ·¡£Í¨¹ý²Ù×÷ϵͳËùά»¤µÄÒ» 
ϵÁбí¸ñÓÉ´¦ÀíÆ÷ʵÏÖÓÉÐéÄâµØÖ·µ½ÎïÀíµØÖ·µÄת»»¡£ 
ΪÁËʹת»»¸ü¼Ó¼òµ¥£¬ÐéÄâÄÚ´æÓëÎïÀíÄÚ´æ¶¼ÒÔÒ³ÃæÀ´×éÖ¯¡£²»Í¬ÏµÍ³ÖÐÒ³ÃæµÄ´óС 
¿ÉÒÔÏàͬ£¬Ò²¿ÉÒÔ²»Í¬£¬ÕâÑù½«´øÀ´¹ÜÀíµÄ²»±ã¡£Alpha AXP´¦ÀíÆ÷ÉÏÔËÐеÄLinux 
Ò³Ãæ´óСΪ8KB£¬¶øIntelX86ϵͳÉÏʹÓÃ4KBÒ³Ãæ¡£Ã¿¸öÒ³ÃæÍ¨¹ýÒ»¸ö½ÐÒ³Ãæ¿òºÅµÄ 
Êý×ÖÀ´±êʾ(PFN)¡£ 
Ò³ÃæÄ£Ê½ÏµÄÐéÄâµØÖ·ÓÉÁ½²¿·Ö¹¹³É£ºÒ³Ãæ¿òºÅºÍÒ³ÃæÄÚÆ«ÒÆÖµ¡£Èç¹ûÒ³Ãæ´óСΪ4KB£¬ 
 
ÔòÐéÄâµØÖ·µÄ11£º0λ±íʾÐéÄâµØÖ·Æ«ÒÆÖµ£¬12λÒÔÉϱíʾÐéÄâÒ³Ãæ¿òºÅ¡£´¦ÀíÆ÷´¦Àí 
ÐéÄâµØÖ·Ê±±ØÐëÍê³ÉµØÖ··ÖÀ빤×÷¡£ÔÚÒ³±íµÄ°ïÖúÏ£¬Ëü½«ÐéÄâÒ³Ãæ¿òºÅת»»³ÉÎïÀíÒ³ 
 
Ãæ¿òºÅ£¬È»ºó·ÃÎÊÎïÀíÒ³ÃæÖÐÏàÓ¦Æ«ÒÆ´¦¡£ 
XºÍYµÄÐéÄâµØÖ·¿Õ¼ä£¬ËüÃÇÓµÓи÷×ÔµÄÒ³±í¡£ÕâЩҳ±í½«¸÷¸ö½ø³ÌµÄÐéÄâÒ³ÃæÓ³Éäµ½ 
ÄÚ´æÖеÄÎïÀíÒ³Ãæ¡£ÔÚͼÖУ¬½ø³ÌXµÄÐéÄâÒ³Ãæ¿òºÅ0±»Ó³Éäµ½ÁËÎïÀíÒ³Ãæ¿òºÅ4¡£ÀíÂÛ 
ÉÏÿ¸öÒ³±íÈë¿ÚÓ¦°üº¬ÒÔÏÂÄÚÈÝ£º 
     ÓÐЧ±ê¼Ç£¬±íʾ´ËÒ³±íÈë¿ÚÊÇÓÐЧµÄ 
     Ò³±íÈë¿ÚÃèÐðµÄÎïÀíÒ³Ãæ¿òºÅ 
     ·ÃÎÊ¿ØÖÆÐÅÏ¢¡£ÓÃÀ´ÃèÐð´ËÒ³¿ÉÒÔ½øÐÐÄÄЩ²Ù×÷£¬ÊÇ·ñ¿Éд£¿ÊÇ·ñ°üº¬Ö´ÐдúÂë? 
 
ÐéÄâÒ³Ãæ¿òºÅÊÇΪҳ±íÖÐµÄÆ«ÒÆ¡£ÐéÄâÒ³Ãæ¿òºÅ5¶ÔÓ¦±íÖеĵÚ6¸öµ¥Ôª£¨0ÊǵÚÒ»¸ö£©¡£ 
 
ΪÁ˽«ÐéÄâµØÖ·×ª»»ÎªÎïÀíµØÖ·£¬´¦ÀíÆ÷Ê×ÏȱØÐëµÃµ½ÐéÄâµØÖ·Ò³Ãæ¿òºÅ¼°Ò³ÄÚÆ«ÒÆ¡£ 
 
Ò»°ã½«Ò³Ãæ´óСÉèΪ2µÄ´ÎÃÝ¡£½«Í¼3.1ÖеÄÒ³Ãæ´óСÉèΪ0x2000×Ö½Ú£¨Ê®½øÖÆÎª8192£© 
 
²¢ÇÒÔÚ½ø³ÌYµÄÐéÄâµØÖ·¿Õ¼äÖÐij¸öµØÖ·Îª0x2194£¬Ôò´¦ÀíÆ÷½«Æäת»»ÎªÐéÄâÒ³Ãæ¿òºÅ1 
 
¼°Ò³ÄÚÆ«ÒÆ0x194¡£ 
´¦ÀíÆ÷ʹÓÃÐéÄâÒ³Ãæ¿òºÅΪË÷ÒýÀ´·ÃÎÊ´¦ÀíÆ÷Ò³±í£¬¼ìË÷Ò³±íÈë¿Ú¡£Èç¹ûÔÚ´ËλÖõÄÒ³ 
 
±íÈë¿ÚÓÐЧ£¬Ôò´¦ÀíÆ÷½«´Ó´ËÈë¿ÚÖеõ½ÎïÀíÒ³Ãæ¿òºÅ¡£Èç¹û´ËÈë¿ÚÎÞЧ£¬ÔòÒâζ×Å´¦ 
 
ÀíÆ÷´æÈ¡µÄÊÇÐéÄâÄÚ´æÖÐÒ»¸ö²»´æÔÚµÄÇøÓò¡£ÔÚÕâÖÖÇé¿öÏ£¬´¦ÀíÆ÷ÊDz»ÄܽøÐеØÖ·×ª 
 
»»µÄ£¬Ëü±ØÐ뽫¿ØÖÆ´«µÝ¸ø²Ù×÷ϵͳÀ´Íê³ÉÕâ¸ö¹¤×÷¡£ 
ij¸ö½ø³ÌÊÔͼ·ÃÎÊ´¦ÀíÆ÷ÎÞ·¨½øÐÐÓÐЧµØÖ·×ª»»µÄÐéÄâµØÖ·Ê±£¬´¦ÀíÆ÷ÈçºÎ½«¿ØÖÆ´«µÝ 
 
µ½²Ù×÷ϵͳÒÀÀµÓÚ¾ßÌåµÄ´¦ÀíÆ÷¡£Í¨³£µÄ×ö·¨ÊÇ£º´¦ÀíÆ÷Òý·¢Ò»¸öÒ³ÃæÊ§Ð§´í¶øÏÝÈë²Ù 
 
×÷ϵͳºËÐÄ£¬ÕâÑù²Ù×÷ϵͳ½«µÃµ½ÓйØÎÞЧÐéÄâµØÖ·µÄÐÅÏ¢ÒÔ¼°·¢ÉúÒ³Ãæ´íÎóµÄÔ­Òò¡£ 
 
ÔÙÒÔͼ3.1ΪÀý£¬½ø³ÌYµÄÐéÄâÒ³Ãæ¿òºÅ1±»Ó³É䵽ϵͳÎïÀíÒ³Ãæ¿òºÅ4£¬ÔòÔÙÎïÀíÄÚ´æÖР
 
µÄÆðʼλÖÃΪ0x8000(4 * 0x2000)¡£¼ÓÉÏ0x194×Ö½ÚÆ«ÒÆÔòµÃµ½×îÖÕµÄÎïÀíµØÖ·0x8194¡£ 
 
ͨ¹ý½«ÐéÄâµØÖ·Ó³Éäµ½ÎïÀíµØÖ·£¬ÐéÄâÄÚ´æ¿ÉÒÔÒÔÈκÎ˳ÐòÓ³É䵽ϵͳÎïÀíÒ³Ãæ¡£ÀýÈç 
£¬ 
½ø³ÌXµÄÐéÄâÒ³Ãæ¿òºÅ0±»Ó³Éäµ½ÎïÀíÒ³Ãæ¿òºÅ1¶øÐéÄâÒ³Ãæ¿òºÅ7±»Ó³Éäµ½ÎïÀíÒ³Ãæ¿òºÅ 
0£¬ 
ËäÈ»ºóÕßµÄÐéÄâÒ³Ãæ¿òºÅÒª¸ßÓÚǰÕß¡£ÕâÑùÐéÄâÄÚ´æ¼¼Êõ´øÀ´ÁËÓÐȤµÄ½á¹û£ºÐéÄâÄÚ´æ 
 
ÖеÄÒ³ÃæÎÞÐëÔÚÎïÀíÄÚ´æ±£³ÖÌØ¶¨Ë³Ðò¡£ 
3.1.1 ÇëÇó»»Ò³ 
ÔÚÎïÀíÄÚ´æ±ÈÐéÄâÄÚ´æÐ¡µÃ¶àµÄϵͳÖУ¬²Ù×÷ϵͳ±ØÐëÌá¸ßÎïÀíÄÚ´æµÄʹÓÃЧÂÊ¡£½ÚÊ¡ 
 
ÎïÀíÄÚ´æµÄÒ»ÖÖ·½·¨Êǽö¼ÓÔØÄÇЩÕýÔÚ±»Ö´ÐгÌÐòʹÓõÄÐéÄâÒ³Ãæ¡£±ÈÈç˵£¬Ä³¸öÊý¾Ý 
 
¿â³ÌÐò¿ÉÄÜÒª¶Ôij¸öÊý¾Ý¿â½øÐвéѯ²Ù×÷£¬´Ëʱ²¢²»ÊÇÊý¾Ý¿âµÄËùÓÐÄÚÈݶ¼Òª¼ÓÔØµ½ÄÚ 
 
´æÖÐÈ¥£¬¶øÖ»¼ÓÔØÄÇЩҪÓõIJ¿·Ö¡£Èç¹û´ËÊý¾Ý¿â²éѯÊÇÒ»¸öËÑË÷²éѯ¶øÎÞÐë¶ÔÊý¾Ý¿â 
 
½øÐÐÌí¼Ó¼Ç¼²Ù×÷£¬Ôò¼ÓÔØÌí¼Ó¼Ç¼µÄ´úÂëÊǺÁÎÞÒâÒåµÄ¡£ÕâÖÖ½ö½«Òª·ÃÎʵÄÐéÄâÒ³Ãæ 
 
ÔØÈëµÄ¼¼Êõ½ÐÇëÇó»»Ò³¡£ 
µ±½ø³ÌÊÔͼ·ÃÎʵ±Ç°²»ÔÚÄÚ´æÖеÄÐéÄâµØÖ·Ê±£¬´¦ÀíÆ÷ÔÚÒ³±íÖÐÎÞ·¨ÕÒµ½ËùÒýÓõØÖ·µÄ 
 
Èë¿Ú¡£¶ÔÓÚÐéÄâÒ³Ãæ¿òºÅ2£¬½ø³ÌXµÄÒ³±íÖÐûÓÐÈë¿Ú£¬ÕâÑùµ±½ø³ÌXÊÔͼ·ÃÎÊÐéÄâÒ³Ãæ¿ò 
 
ºÅ2ÄÚÈÝʱ£¬´¦ÀíÆ÷²»Äܽ«´ËµØÖ·×ª»»³ÉÎïÀíµØÖ·¡£Õâʱ´¦ÀíÆ÷֪ͨ²Ù×÷ϵͳÓÐÒ³Ãæ´íÎó 
 
·¢Éú¡£ 
Èç¹û·¢ÉúÒ³Ãæ´íµÄÐéÄâµØÖ·ÊÇÎÞЧµÄ£¬Ôò±íÃ÷½ø³ÌÔÚÊÔͼ·ÃÎÊÒ»¸ö²»´æÔÚµÄÐéÄâµØÖ·¡£ 
 
Õâ¿ÉÄÜÊÇÓ¦ÓóÌÐò³ö´í¶øÒýÆðµÄ£¬ÀýÈçËüÊÔͼ¶ÔÄÚ´æ½øÐÐÒ»¸öËæ»úµÄд²Ù×÷¡£´Ëʱ²Ù×÷ 
 
ϵͳ½«ÖÕÖ¹´ËÓ¦ÓõÄÔËÐÐÒÔ±£»¤ÏµÍ³ÖÐÆäËû½ø³Ì²»Êܴ˳ö´í½ø³ÌµÄÓ°Ïì¡£ 
Èç¹û³ö´íÐéÄâµØÖ·ÊÇÓÐЧµÄ£¬µ«ÊÇËüÖ¸ÏòµÄÒ³Ãæµ±Ç°²»ÔÚÄÚ´æÖУ¬Ôò²Ù×÷ϵͳ±ØÐ뽫´Ë 
 
Ò³Ãæ´Ó´ÅÅÌÓ³ÏóÖжÁÈëµ½ÄÚ´æÖÐÀ´¡£ÓÉÓÚ·ÃÅÌʱ¼ä½Ï³¤£¬½ø³Ì±ØÐëµÈ´ýÒ»¶Îʱ¼äÖ±µ½Ò³ 
 
Ãæ±»È¡³öÀ´¡£Èç¹ûϵͳÖл¹´æÔÚÆäËû½ø³Ì£¬²Ù×÷ϵͳ¾Í»áÔÚ¶ÁÈ¡Ò³Ãæ¹ý³ÌÖеĵȴý¹ý³Ì 
 
ÖÐÑ¡ÔñÆäÖÐÖ®Ò»À´ÔËÐС£¶ÁÈ¡»ØÀ´µÄÒ³Ãæ½«±»·ÅÔÚÒ»¸ö¿ÕÏеÄÎïÀíÒ³Ãæ¿òÖУ¬Í¬Ê±´Ë½ø 
 
³ÌµÄÒ³±íÖн«Ìí¼Ó¶ÔÓ¦´ËÐéÄâÒ³Ãæ¿òºÅµÄÈë¿Ú¡£×îºó½ø³Ì½«´Ó·¢ÉúÒ³Ãæ´íÎóµÄµØ·½ÖØÐ 
 
¿ªÊ¼ÔËÐС£´ËʱÕû¸öÐéÄâÄÚ´æ·ÃÎʹý³Ì¸æÒ»¶ÎÂ䣬´¦ÀíÆ÷ÓÖ¿ÉÒÔ¼ÌÐø½øÐÐÐéÄâµØÖ·µ½Îï 
 
ÀíµØÖ·×ª»»£¬¶ø½ø³ÌÒ²µÃÒÔ¼ÌÐøÔËÐС£ 
LinuxʹÓÃÇëÇó»»Ò³½«¿ÉÖ´ÐÐÓ³Ïó¼ÓÔØµ½½ø³ÌµÄÐéÄâÄÚ´æÖС£µ±ÃüÁîÖ´ÐÐʱ£¬¿ÉÖ´ÐеÄÃü 
 
ÁîÎļþ±»´ò¿ª£¬Í¬Ê±ÆäÄÚÈݱ»Ó³Éäµ½½ø³ÌµÄÐéÄâÄÚ´æ¡£ÕâЩ²Ù×÷ÊÇͨ¹ýÐÞ¸ÄÃèÐð½ø³ÌÄÚ 
 
´æÓ³ÏóµÄÊý¾Ý½á¹¹À´Íê³ÉµÄ£¬´Ë¹ý³Ì³ÆÎªÄÚ´æÓ³É䡣Ȼ¶øÖ»ÓÐÓ³ÏóµÄÆðʼ²¿·Ö±»µ÷ÈëÎï 
 
ÀíÄڴ棬ÆäÓಿ·ÖÈÔÈ»ÁôÔÚ´ÅÅÌÉÏ¡£µ±Ó³ÏóÖ´ÐÐʱ£¬Ëü»á²úÉúÒ³Ãæ´íÎó£¬ÕâÑùLinux½«¾ö 
 
¶¨½«´ÅÅÌÉÏÄÄЩ²¿·Öµ÷ÈëÄÚ´æ¼ÌÐøÖ´ÐС£ 
3.1.2 ½»»» 
Èç¹û½ø³ÌÐèÒª°ÑÒ»¸öÐéÄâÒ³Ãæµ÷ÈëÎïÀíÄÚ´æ¶øÕýºÃϵͳÖÐûÓпÕÏеÄÎïÀíÒ³Ãæ£¬²Ù×÷ϵ 
 
ͳ±ØÐ붪ÆúλÓÚÎïÀíÄÚ´æÖеÄÄ³Ð©Ò³ÃæÀ´ÎªÖ®ÌÚ³ö¿Õ¼ä¡£ 
Èç¹ûÄÇЩ´ÓÎïÀíÄÚ´æÖжªÆú³öÀ´µÄÒ³ÃæÀ´×ÔÓÚ´ÅÅÌÉϵĿÉÖ´ÐÐÎļþ»òÕßÊý¾ÝÎļþ£¬²¢ÇÒ 
 
ûÓÐÐ޸ĹýÔò²»ÐèÒª±£´æÄÇÐ©Ò³Ãæ¡£µ±½ø³ÌÔÙ´ÎÐèÒª´ËÒ³ÃæÊ±£¬Ö±½Ó´Ó¿ÉÖ´ÐÐÎļþ»òÕß 
 
Êý¾ÝÎļþÖжÁ³ö¡£ 
µ«ÊÇÈç¹ûÒ³Ãæ±»Ð޸Ĺý£¬Ôò²Ù×÷ϵͳ±ØÐë±£ÁôÒ³ÃæµÄÄÚÈÝÒÔ±¸ÔٴηÃÎÊ¡£ÕâÖÖÒ³Ãæ±»³Æ 
 
ΪdirtyÒ³Ãæ£¬µ±´ÓÄÚ´æÖÐÒÆ³öÀ´Ê±£¬ËüÃDZØÐë±£´æÔÚ½Ð×ö½»»»ÎļþµÄÌØÊâÎļþÖС£Ïà¶Ô 
 
ÓÚ´¦ÀíÆ÷ºÍÎïÀíÄÚ´æµÄËÙ¶È£¬·ÃÎʽ»»»ÎļþµÄËÙ¶ÈÊǷdz£»ºÂýµÄ£¬²Ù×÷ϵͳ±ØÐëÔÚ½«Õâ 
 
ЩdirtyÒ³ÃæÐ´Èë´ÅÅ̺ͽ«Æä¼ÌÐø±£ÁôÔÚÄÚ´æÖÐ×ö³öÑ¡Ôñ¡£ 
Ñ¡Ôñ¶ªÆúÒ³ÃæµÄËã·¨¾­³£ÐèÒªÅжÏÄÄÐ©Ò³ÃæÒª¶ªÆú»òÕß½»»»£¬Èç¹û½»»»Ë㷨ЧÂʺܵͣ¬ 
 
Ôò»á·¢Éú"µßô¤"ÏÖÏó¡£ÔÚÕâÖÖÇé¿öÏ£¬Ò³Ãæ²»¶ÏµÄ±»Ð´Èë´ÅÅÌÓÖ´Ó´ÅÅÌÖжÁ»ØÀ´£¬ÕâÑù 
 
Ò»À´²Ù×÷ϵͳ¾ÍÎÞ·¨½øÐÐÆäËûÈκι¤×÷¡£ÒÔͼ3.1ΪÀý£¬Èç¹ûÎïÀíÒ³Ãæ¿òºÅ1±»Æµ·±Ê¹Óà
£¬ 
ÔòÒ³Ãæ¶ªÆúËã·¨½«Æä×÷Ϊ½»»»µ½Ó²Å̵ĺîÑ¡ÕßÊDz»Ç¡µ±µÄ¡£Ò»¸ö½ø³Ìµ±Ç°¾­³£Ê¹ÓõÄÒ³ 
 
Ãæ¼¯ºÏ½Ð×ö¹¤×÷¼¯¡£¸ßЧµÄ½»»»²ßÂÔÄܹ»È·±£ËùÓнø³ÌµÄ¹¤×÷¼¯±£´æÔÚÎïÀíÄÚ´æÖС£ 
LinuxʹÓÃ×î½ü×îÉÙʹÓã¨LRU£©Ò³ÃæË¥ÀÏËã·¨À´¹«Æ½µØÑ¡Ôñ½«Òª´ÓϵͳÖÐÅׯúµÄÒ³Ãæ¡£ 
 
ÕâÖÖ²ßÂÔΪϵͳÖеÄÿ¸öÒ³ÃæÉèÖÃÒ»¸öÄêÁ䣬ËüËæÒ³Ãæ·ÃÎÊ´ÎÊý¶ø±ä»¯¡£Ò³Ãæ±»·ÃÎʵĠ
 
´ÎÊýÔ½¶àÔòÒ³ÃæÄêÁäÔ½ÄêÇ᣻Ïà·´ÔòԽ˥ÀÏ¡£ÄêÁä½ÏÀϵÄÒ³ÃæÊÇ´ý½»»»Ò³ÃæµÄ×î¼ÑºîÑ¡ 
 
Õß¡£ 
3.1.3  ¹²ÏíÐéÄâÄÚ´æ 
ÐéÄâÄÚ´æÈöà¸ö½ø³ÌÖ®¼ä¿ÉÒÔ·½±ãµØ¹²ÏíÄÚ´æ¡£ËùÓеÄÄÚ´æ·ÃÎʶ¼ÊÇͨ¹ýÿ¸ö½ø³Ì×ÔÉí 
 
µÄÒ³±í½øÐС£¶ÔÓÚÁ½¸ö¹²ÏíͬһÎïÀíÒ³ÃæµÄ½ø³Ì£¬ÔÚ¸÷×ÔµÄÒ³±íÖбØÐë°üº¬ÓÐÖ¸ÏòÕâÒ» 
 
ÎïÀíÒ³Ãæ¿òºÅµÄÒ³±íÈë¿Ú¡£ 
Á½¸ö½ø³Ì¹²ÏíÎïÀíÒ³Ãæ¿òºÅ4¡£¶Ô½ø³ÌXÀ´ËµÆä¶ÔÓ¦µÄÐéÄâÒ³Ãæ¿òºÅΪ4¶ø½ø³ÌYµÄΪ6¡£ 
Õâ¸öÓÐȤµÄÏÖÏó˵Ã÷£º¹²ÏíÎïÀíÒ³ÃæµÄ½ø³Ì¶ÔÓ¦´ËÒ³ÃæµÄÐéÄâÄÚ´æÎ»ÖÿÉÒÔ²»Í¬¡£ 
3.1.4  ÎïÀíÓëÐéÄâѰַģʽ 
²Ù×÷ϵͳ×ÔÉíÒ²ÔËÐÐÔÚÐéÄâÄÚ´æÖеÄÒâÒå²»´ó¡£Èç¹û²Ù×÷ϵͳ±»ÆÈά»¤×ÔÉíµÄÒ³±íÄǽ« 
 
ÊÇÒ»¸öÁîÈ˶ñÐĵķ½°¸¡£¶àÊýͨÓô¦ÀíÆ÷ͬʱ֧³ÖÎïÀíѰַºÍÐéÄâѰַģʽ¡£ÎïÀíѰַ 
 
ģʽÎÞÐèÒ³±íµÄ²ÎÓëÇÒ´¦ÀíÆ÷²»»á½øÐÐÈκεØÖ·×ª»»¡£LinuxºËÐÄÖ±½ÓÔËÐÐÔÚÎïÀíµØÖ·¿Õ 
 
¼äÉÏ¡£ 
Alpha AXP´¦ÀíÆ÷ûÓÐÌØÊâµÄÎïÀíѰַģʽ¡£Ëü½«ÄÚ´æ¿Õ¼ä»®·ÖΪ¼¸¸öÇøÓò²¢½«ÆäÖÐÁ½¸ö 
 
Ö¸¶¨ÎªÎïÀíÓ³É䵨ַ¡£ºËÐĵØÖ·¿Õ¼ä±»³ÆÎªKSEGµØÖ·¿Õ¼ä£¬ËüλÓÚµØÖ·0xfffffc000000 
0000 
ÒÔÉÏÇøÓò¡£ÎªÁËÖ´ÐÐλÓÚKSEGµÄºËÐÄ´úÂë»ò·ÃÎÊÄÇÀïµÄÊý¾Ý£¬´úÂë±ØÐëÔÚºËÐÄģʽÏÂÖ´ 
ÐС£ 
AlphaÉϵÄLinuxºËÐÄ´ÓµØÖ·0xfffffc0000310000¿ªÊ¼Ö´ÐÐ. 
3.1.5  ·ÃÎÊ¿ØÖÆ 
Ò³±íÈë¿Ú°üº¬ÁË·ÃÎÊ¿ØÖÆÐÅÏ¢¡£ÓÉÓÚ´¦ÀíÆ÷ÒѾ­½«Ò³±íÈë¿Ú×÷ΪÐéÄâµØÖ·µ½ÎïÀíµØÖ·µÄ 
Ó³ 
É䣬ÄÇô¿ÉÒԺܷ½±ãµØÊ¹Ó÷ÃÎÊ¿ØÖÆÐÅÏ¢À´Åжϴ¦ÀíÆ÷ÊÇ·ñÔÚÒÔÆäÓ¦Óеķ½Ê½À´·ÃÎÊÄÚ 
´æ¡£ 
Öî¶àÒòËØÊ¹µÃÓбØÒªÑϸñ¿ØÖƶÔÄÚ´æÇøÓòµÄ·ÃÎÊ¡£ÓÐЩÄڴ棬Èç°üº¬Ö´ÐдúÂëµÄ²¿·Ö£¬ 
ÏÔ 
ȻӦ¸ÃÊÇÖ»¶ÁµÄ£¬²Ù×÷ϵͳ¾ö²»ÄÜÔÊÐí½ø³Ì¶Ô´ËÇøÓòµÄд²Ù×÷¡£Ïà·´°üº¬Êý¾ÝµÄÒ³ÃæÓ¦ 
¸Ã 
ÊÇ¿ÉдµÄ£¬µ«ÊÇÈ¥Ö´ÐÐÕâ¶ÎÊý¾Ý¿Ï¶¨½«µ¼Ö´íÎó·¢Éú¡£¶àÊý´¦ÀíÆ÷ÖÁÉÙÓÐÁ½ÖÖÖ´Ðз½Ê½ 
£º 
ºËÐÄ̬ÓëÓû§Ì¬¡£ÈκÎÈ˶¼²»»áÔÊÐíÔÚÓû§Ì¬ÏÂÖ´ÐкËÐÄ´úÂë»òÕßÔÚÓû§Ì¬ÏÂÐ޸ĺËÐÄ 
Êý 
¾Ý½á¹¹¡£ 
Ò³±íÈë¿ÚÖеķÃÎÊ¿ØÖÆÐÅÏ¢ÊÇ´¦ÀíÆ÷Ïà¹ØµÄ£»Alpha AXP´¦ÀíÆ÷µÄPTE(Page Table Entr 
y)¡£ 
ÕâЩλÓòµÄº¬ÒåÈçÏ£º 
V ÓÐЧ£¬Èç¹û´ËλÖÃ룬±íÃ÷´ËPTEÓÐЧ 
FOE  ¡°Ö´ÐÐʱʧЧ¡±£¬ÎÞÂÛºÏʱֻҪִÐаüº¬ÔÚ´ËÒ³ÃæÖеÄÖ¸Á´¦ÀíÆ÷¶¼½«±¨¸æÒ³Ãæ 
 
      ´íÎó²¢½«¿ØÖÆ´«µÝ 
FOW  ¡°Ð´Ê±Ê§Ð§¡±, ³ýÁËÒ³Ãæ´íÎó·¢ÉúÔÚ¶Ô´ËÒ³ÃæµÄдʱ£¬ÆäËûÓëÉÏÏàͬ¡£ 
FOR  ¡°¶ÁʱʧЧ¡±£¬³ýÁËÒ³Ãæ´íÎó·¢ÉúÔÚ¶Ô´ËÒ³ÃæµÄ¶Áʱ£¬ÆäËûÓëÉÏÏàͬ¡£ 
ASM   µØÖ·¿Õ¼äÆ¥Åä¡£±»²Ù×÷ϵͳÓÃÓÚÇåϴת»»»º³åÖеÄijЩÈë¿Ú¡£ 
KRE  ÔËÐÐÔÚºËÐÄģʽϵĴúÂë¿ÉÒÔ¶Á´ËÒ³Ãæ¡£ 
URE  ÔËÐÐÔÚÓû§Ä£Ê½ÏµĴúÂë¿ÉÒÔ¶Á´ËÒ³Ãæ¡£ 
GH   ½«Õû¸ö¿éÓ³Éäµ½µ¥¸ö¶ø²»ÊǶà¸öת»»»º³åʱµÄÒþº¬Á£¶È¡£ 
KWE  ÔËÐÐÔÚºËÐÄģʽϵĴúÂë¿ÉÒÔд´ËÒ³Ãæ¡£ 
UWE  ÔËÐÐÔÚÓû§Ä£Ê½ÏµĴúÂë¿ÉÒÔд´ËÒ³Ãæ¡£ 
page frame number 
     ¶ÔÓÚVλÖÃλµÄPTE£¬´ËÓò°üº¬Á˶ÔÓ¦´ËPTEµÄÎïÀíÒ³Ãæ¿òºÅ£»¶ÔÓÚÎÞЧPTE£¬´ËÓò²» 
 
Ϊ0£¬Ëü°üº¬ÁËÒ³ÃæÔÚ½»»»ÎļþÖÐλÖõÄÐÅÏ¢¡£ 
ÒÔÏÂÁ½Î»ÓÉLinux¶¨Ò岢ʹÓᣠ
_PAGE_DIRTY 
     Èç¹ûÖÃ룬´ËÒ³ÃæÒª±»Ð´Èë½»»»Îļþ¡£ 
_PAGE_ACCESSED 
     LinuxÓÃËü±íÊ¾Ò³ÃæÒѾ­±»·ÃÎʹý¡£ 
3.2  ¸ßËÙ»º³å 
Èç¹ûÓÃÉÏÊöÀíÂÛÄ£ÐÍÀ´ÊµÏÖÒ»¸öϵͳ£¬Ëü¿ÉÄÜ¿ÉÒÔ¹¤×÷£¬µ«Ð§Âʲ»»á¸ß¡£²Ù×÷ϵͳÉè¼Æ 
 
Õߺʹ¦ÀíÆ÷Éè¼ÆÕß¶¼ÔÚŬÁ¦ÒÔÌá¸ßϵͳµÄÐÔÄÜ¡£³ýÁËÖÆÔì¸ü¿ìµÄCPUºÍÄÚ´æÍ⣬×îºÃµÄ°ì 
 
·¨ÊÇÔÚ¸ßËÙ»º³åÖÐά»¤ÓÐÓÃÐÅÏ¢ºÍÊý¾ÝÒÔ¼Ó¿ìijЩ²Ù×÷¡£LinuxʹÓÃÁËÐí¶àÓë¸ßËÙ»º³åÏà 
 
¹ØµÄÄÚ´æ¹ÜÀí²ßÂÔ¡£ 
Buffer Cache 
     Õâ¸öbuffer cacheÖаüº¬Á˱»¿éÉ豸Çý¶¯Ê¹ÓõÄÊý¾Ý»º³å¡£ 
     ÕâЩ»º³åµÄµ¥ÔªµÄ´óСһ°ã¹Ì¶¨(ÀýÈç˵512×Ö½Ú)²¢ÇÒ°üº¬´Ó¿éÉ豸¶Á³ö»òÕßдÈë 
 
     µÄÐÅÏ¢¿é¡£¿éÉ豸ÊǽöÄܹ»ÒԹ̶¨´óС¿é½øÐжÁд²Ù×÷µÄÉ豸¡£ËùÓеÄÓ²Å̶¼ÊÇ¿é 
 
     É豸¡£ 
     ÀûÓÃÉ豸±êÖ¾·ûºÍËùÐè¿éºÅ×÷Ë÷Òý¿ÉÒÔÔÚbuffer 
     cacheÖÐѸËÙµØÕÒµ½Êý¾Ý¡£¿éÉ豸ֻÄܹ»Í¨¹ýbuffer 
     cacheÀ´´æÈ¡¡£Èç¹ûÊý¾ÝÔÚbuffer 
     cacheÖпÉÒÔÕÒµ½ÔòÎÞÐè´ÓÎïÀí¿éÉ豸(ÈçÓ²ÅÌ)ÖжÁÈ¡£¬ÕâÑù¿ÉÒÔ¼ÓËÙ·ÃÎÊ¡£ 
Page Cache 
     ÓÃÀ´¼ÓËÙÓ²ÅÌÉÏ¿ÉÖ´ÐÐÓ³ÏóÎļþÓëÊý¾ÝÎļþµÄ´æÈ¡¡£ 
     Ëüÿ´Î»º³åÒ»¸öÒ³ÃæµÄÎļþÄÚÈÝ¡£Ò³Ãæ´Ó´ÅÅÌÉ϶ÁÈëÄÚ´æºó»º´æÔÚpage 
     cacheÖС£ 
Swap Cache 
     Ö»ÓÐÐ޸ĹýµÄÒ³Ãæ´æ´¢ÔÚ½»»»ÎļþÖС£ 
     Ö»ÒªÕâÐ©Ò³ÃæÔÚдÈëµ½½»»»ÎļþºóûÓб»Ð޸ģ¬ÔòÏ´δËÒ³Ãæ±»½»»»³öÄÚ´æÊ±£¬ 
     ¾Í²»±ØÔÙ½øÐиüÐÂд²Ù×÷£¬ÕâÐ©Ò³Ãæ¶¼¿ÉÒÔ¼òµ¥µÄ¶ªÆú¡£ÔÚ½»»»Æµ·±·¢ÉúµÄϵͳ 
     ÖУ¬Swap Cache¿ÉÒÔʡϺܶ಻±ØÒªÇÒºÄʱµÄ´ÅÅ̲Ù×÷¡£ 
Hardware Caches 
     Ò»¸ö³£¼ûµÄhardware 
     cacheÊÇ´¦ÀíÆ÷ÖеÄÒ³±íÈë¿Úcache¡£´¦ÀíÆ÷²»×ÜÊÇÖ±½Ó¶Áȡҳ±í¶øÊÇÔÚÐèҪʱ 
     »º´æÒ³ÃæµÄת»»¡£ÕâÖÖcacheÓÖ½Ð×öת»»ÅÔÊÓ»º³å(Translation Look-aside 
     Buffers)£¬Ëü°üº¬ÏµÍ³ÖÐÒ»¸ö»ò¶à¸ö´¦ÀíÆ÷µÄÒ³±íÈë¿ÚµÄ»º³å¿½±´¡£ 
     µ±·¢³ö¶ÔÐéÄâµØÖ·µÄÒýÓÃʱ£¬´¦ÀíÆ÷ÊÔͼÕÒµ½ÏàÆ¥ÅäµÄTLBÈë¿Ú¡£Èç¹ûÕÒµ½ÔòÖ±½Ó 
 
     ½«ÐéÄâµØÖ·×ª»»³ÉÎïÀíµØÖ·²¢¶ÔÊý¾Ý½øÐд¦Àí¡£Èç¹ûûÓÐÕÒµ½ÔòÏò²Ù×÷ϵͳѰÇó°ï 
 
     Öú¡£´¦ÀíÆ÷½«Ïò²Ù×÷ϵͳ·¢³öTLBʧÅäÐźţ¬ËüʹÓÃÒ»¸öÌØ¶¨µÄϵͳ»úÖÆÀ´½«´ËÒì 
³£ 
     Í¨Öª²Ù×÷ϵͳ¡£²Ù×÷ϵͳÔòΪ´ËµØÖ·Æ¥Åä¶Ô²úÉúеÄTLBÈë¿Ú¡£µ±²Ù×÷ϵͳÇå³ý´Ë 
 
     Ò쳣ʱ£¬´¦ÀíÆ÷½«ÔٴνøÐÐÐéÄâµØÖ·×ª»»¡£ÓÉÓÚ´ËʱÔÚTLBÖÐÒѾ­ÓÐÏàÓ¦µÄÈë¿Ú£¬ 
 
     Õâ´Î²Ù×÷½«³É¹¦¡£ 
     Ê¹ÓøßËÙ»º´æµÄȱµãÔÚÓÚLinux±ØÐëÏûºÄ¸ü¶àµÄʱ¼äºÍ¿Õ¼äÀ´Î¬»¤ÕâЩ»º´æ£¬²¢ÇÒ 
 
     µ±»º´æÏµÍ³±ÀÀ£Ê±ÏµÍ³Ò²½«±ÀÀ£¡£ 
3.3  Linux Ò³±í 
Linux×ÜÊǼٶ¨´¦ÀíÆ÷ÓÐÈý¼¶Ò³±í¡£Ã¿¸öÒ³±íͨ¹ýËù°üº¬µÄϼ¶Ò³±íµÄÒ³Ãæ¿òºÅÀ´·ÃÎÊ¡£ 
 
ÿ¸öÓòÌṩÁËij¸öÖ¸¶¨Ò³±íµÄÆ«ÒÆ¡£ÎªÁ˽«ÐéÄâµØÖ·×ª»»³ÉÎïÀíµØÖ·£¬´¦ÀíÆ÷±ØÐëµÃµ½ 
ÿ 
¸öÓòµÄÖµ¡£Õâ¸ö¹ý³Ì½«³ÖÐøÈý´ÎÖ±µ½¶ÔÓ¦ÓÚÐéÄâµØÖ·µÄÎïÀíÒ³Ãæ¿òºÅ±»ÕÒµ½¡£×îºóÔÙʹ 
Óà
ÐéÄâµØÖ·ÖеÄ×îºóÒ»¸öÓò£¬µÃµ½ÁËÒ³ÃæÖÐÊý¾ÝµÄµØÖ·¡£ 
ΪÁËʵÏÖ¿çÆ½Ì¨ÔËÐУ¬LinuxÌṩÁËһϵÁÐת»»ºêʹµÃºËÐÄ¿ÉÒÔ·ÃÎÊÌØ¶¨½ø³ÌµÄÒ³±í¡£ 
ÕâÑùºËÐÄÎÞÐèÖªµÀÒ³±íÈë¿ÚµÄ½á¹¹ÒÔ¼°ËüÃǵÄÅÅÁз½Ê½¡£ 
ÕâÖÖ²ßÂÔÏ൱³É¹¦£¬ÎÞÂÛÔÚ¾ßÓÐÈý¼¶Ò³±í½á¹¹µÄAlpha AXP»¹ÊÇÁ½¼¶Ò³±íµÄIntel X86´¦ 
 
ÀíÆ÷ÖУ¬Linux×ÜÊÇʹ ÓÃÏàͬµÄÒ³±í²Ù×Ý´úÂë¡£ 
3.4  Ò³Ãæ·ÖÅäÓë»ØÊÕ 
¶ÔϵͳÖÐÎïÀíÒ³ÃæµÄÇëÇóÊ®·ÖƵ·±¡£ÀýÈçµ±Ò»¸ö¿ÉÖ´ÐÐÓ³Ïó±»µ÷ÈëÄÚ´æÊ±£¬²Ù×÷ϵͳ±Ø 
 
ÐëΪÆä·ÖÅäÒ³Ãæ¡£µ±Ó³ÏóÖ´ÐÐÍê±ÏºÍÐ¶ÔØÊ±ÕâÐ©Ò³Ãæ±ØÐë±»ÊÍ·Å¡£ÎïÀíÒ³ÃæµÄÁíÒ»¸öÓà
 
;ÊÇ´æ´¢Ò³±íÕâЩºËÐÄÊý¾Ý½á¹¹¡£ÐéÄâÄÚ´æ×ÓϵͳÖиºÔðÒ³Ãæ·ÖÅäÓë»ØÊÕµÄÊý¾Ý½á¹¹ºÍ 
 
»úÖÆ¿ÉÄÜÓô¦×î´ó¡£ 
ϵͳÖÐËùÓеÄÎïÀíÒ³ÃæÓðüº¬mem_map_t½á¹¹µÄÁ´±ímem_mapÀ´ÃèÐð£¬ÕâЩ½á¹¹ÔÚϵͳÆô 
 
¶¯Ê±³õʼ»¯¡£Ã¿¸ömem_map_tÃèÐðÁËÒ»¸öÎïÀíÒ³Ãæ¡£ÆäÖÐÓëÄÚ´æ¹ÜÀíÏà¹ØµÄÖØÒªÓòÈçÏ£º 
 
count 
     ¼Ç¼ʹÓôËÒ³ÃæµÄÓû§¸öÊý¡£µ±Õâ¸öÒ³ÃæÔÚ¶à¸ö½ø³ÌÖ®¼ä¹²Ïíʱ£¬ËüµÄÖµ´óÓÚ1¡£ 
 
age ´ËÓòÃèÐðÒ³ÃæµÄÄêÁ䣬ÓÃÓÚÑ¡Ôñ½«Êʵ±µÄÒ³ÃæÅׯú»òÕßÖû»³öÄÚ´æÊ±¡£ 
map_nr 
     ¼Ç¼±¾mem_map_tÃèÐðµÄÎïÀíÒ³Ãæ¿òºÅ¡£ 
Ò³Ãæ·ÖÅä´úÂëʹÓÃfree_areaÊý×éÀ´Ñ°ÕÒºÍÊÍ·ÅÒ³Ãæ£¬´Ë»úÖÆ¸ºÔðÕû¸ö»º³å¹ÜÀí¡£ÁíÍâ´Ë 
 
´úÂëÓë´¦ÀíÆ÷ʹÓõÄÒ³Ãæ´óСºÍÎïÀí·ÖÒ³»úÖÆÎ޹ء£ 
free_areaÖеÄÿ¸öÔªËØ¶¼°üº¬Ò³Ãæ¿éµÄÐÅÏ¢¡£Êý×éÖеÚÒ»¸öÔªËØÃèÐð1¸öÒ³Ãæ£¬µÚ¶þ¸ö 
 
±íʾ2¸öÒ³Ãæ´óСµÄ¿é¶ø½ÓÏÂÀ´±íʾ4¸öÒ³Ãæ´óСµÄ¿é£¬×ÜÖ®¶¼ÊÇ2µÄ´ÎÃݱ¶´óС¡£listÓò 
 
±íʾһ¸ö¶ÓÁÐÍ·£¬Ëü°üº¬Ö¸Ïòmem_mapÊý×éÖÐpageÊý¾Ý½á¹¹µÄÖ¸Õë¡£ËùÓеĿÕÏÐÒ³Ãæ¶¼ÔÚ 
 
´Ë¶ÓÁÐÖС£mapÓòÊÇÖ¸Ïòij¸öÌØ¶¨Ò³Ãæ³ß´çµÄÒ³Ãæ×é·ÖÅäÇé¿öλͼµÄÖ¸Õë¡£µ±Ò³ÃæµÄµÚN 
¿é 
¿ÕÏÐʱ£¬Î»Í¼µÄµÚNλ±»ÖÃλ¡£ 
free_area½á¹¹¡£µÚÒ»¸öÔªËØÓиö×ÔÓÉÒ³Ãæ£¨Ò³Ãæ¿òºÅ0£©£¬µÚ¶þ¸öÔªËØÓÐ4¸öÒ³Ãæ´óСµÄ 
 
2¸ö×ÔÓɿ飬ǰһ¸ö´ÓÒ³Ãæ¿òºÅ4¿ªÊ¼¶øºóÒ»¸ö´ÓÒ³Ãæ¿òºÅ56¿ªÊ¼¡£ 
3.4.1  Ò³Ãæ·ÖÅä 
LinuxʹÓÃBuddyËã·¨À´ÓÐЧµÄ·ÖÅäÓë»ØÊÕÒ³Ãæ¿é¡£Ò³Ãæ·ÖÅä´úÂëÿ´Î·ÖÅä°üº¬Ò»¸ö»ò 
Õß¶à¸öÎïÀíÒ³ÃæµÄÄÚ´æ¿é¡£Ò³ÃæÒÔ2µÄ´ÎÃݵÄÄÚ´æ¿éÀ´·ÖÅä¡£ÕâÒâζ×ÅËü¿ÉÒÔ·ÖÅä1¸ö¡¢ 
 
2¸öºÍ4¸öÒ³ÃæµÄ¿é¡£Ö»ÒªÏµÍ³ÖÐÓÐ×ã¹»µÄ¿ÕÏÐÒ³ÃæÀ´Âú×ãÕâ¸öÒªÇó(nr_free_pages> 
min_free_page)£¬ÄÚ´æ·ÖÅä´úÂ뽫ÔÚfree_areaÖÐѰÕÒÒ»¸öÓëÇëÇó´óСÏàͬµÄ¿ÕÏп顣 
free_areaÖеÄÿ¸öÔªËØ±£´æ×ÅÒ»¸ö·´Ó³ÕâÑù´óСµÄÒÑ·ÖÅäÓë¿ÕÏÐÒ³ÃæµÄλͼ¡£ÀýÈ磬 
free_areaÊý×éÖеڶþ¸öÔªËØÖ¸ÏòÒ»¸ö·´Ó³´óСΪËĸöÒ³ÃæµÄÄÚ´æ¿é·ÖÅäÇé¿öµÄÄÚ´æÓ³ 
Ïó¡£ 
·ÖÅäËã·¨Ê×ÏÈËÑѰÂú×ãÇëÇó´óСµÄÒ³Ãæ¡£Ëü´Ófree_areaÊý¾Ý½á¹¹µÄlistÓò×ÅÊÖÑØÁ´À´ 
ËÑË÷¿ÕÏÐÒ³Ãæ¡£Èç¹ûûÓÐÕâÑùÇëÇó´óСµÄ¿ÕÏÐÒ³Ãæ£¬ÔòËüËÑË÷Á½±¶ÓÚÇëÇó´óСµÄÄÚ´æ¿é 
¡£ 
Õâ¸ö¹ý³ÌÒ»Ö±½«³ÖÐøµ½free_area±»ËÑË÷Íê»òÕÒµ½Âú×ãÒªÇóµÄÄÚ´æ¿éΪֹ¡£Èç¹ûÕÒµ½µÄ 
Ò³Ãæ¿é´óÓÚÇëÇóµÄ¿éÔò¶ÔÆä½øÐзָîÒÔʹÆä´óСÓëÇëÇó¿éÆ¥Åä¡£ÓÉÓÚ¿é´óС¶¼ÊÇ2µÄ´Î 
ÃÝËùÒÔ·Ö¸î¹ý³ÌÊ®·Ö¼òµ¥¡£¿ÕÏп鱻Á¬½øÏàÓ¦µÄ¶ÓÁжøÕâ¸öÒ³Ãæ¿é±»·ÖÅ䏸µ÷ÓÃÕß¡£ 
µ±ÏµÍ³ÖÐÓдóСΪÁ½¸öÒ³Ãæ¿éµÄÇëÇó·¢³öʱ£¬µÚÒ»¸ö4Ò³Ãæ´óСµÄÄÚ´æ¿é£¨´ÓÒ³Ãæ¿òºÅ 
4¿ªÊ¼£©½«·Ö³ÉÁ½¸ö2Ò³Ãæ´óСµÄ¿é¡£Ç°Ò»¸ö£¬´ÓÒ³Ãæ¿òºÅ4¿ªÊ¼µÄ£¬½«·ÖÅä³öÈ¥·µ»Ø¸ø 
ÇëÇóÕߣ¬¶øºóÒ»¸ö£¬´ÓÒ³Ãæ¿òºÅ6¿ªÊ¼£¬½«±»Ìí¼Óµ½free_areaÊý×éÖбíʾÁ½¸öÒ³Ãæ´óС 
 
µÄ¿ÕÏпéµÄÔªËØ1ÖС£ 
3.4.2  Ò³Ãæ»ØÊÕ 
½«´óµÄÒ³Ãæ¿é´òËé½øÐзÖÅ佫Ôö¼ÓϵͳÖÐÁãËé¿ÕÏÐÒ³Ãæ¿éµÄÊýÄ¿¡£Ò³Ãæ»ØÊÕ´úÂëÔÚÊʵ± 
 
ʱ»úÏÂÒª½«ÕâÐ©Ò³Ãæ½áºÏÆðÀ´Ðγɵ¥Ò»´óÒ³Ãæ¿é¡£ÊÂʵÉÏÒ³Ãæ¿é´óС¾ö¶¨ÁËÒ³ÃæÖØÐÂ×é 
 
ºÏµÄÄÑÒ׳̶ȡ£ 
µ±Ò³Ãæ¿é±»ÊÍ·Åʱ£¬´úÂ뽫¼ì²éÊÇ·ñÓÐÏàͬ´óСµÄÏàÁÚ»òÕßbuddyÄÚ´æ¿é´æÔÚ¡£Èç¹ûÓУ¬ 
 
Ôò½«ËüÃǽáºÏÆðÀ´ÐγÉÒ»¸ö´óСΪԭÀ´Á½±¶µÄпÕÏп顣ÿ´Î½áºÏÍêÖ®ºó£¬´úÂ뻹Ҫ¼ì 
 
²éÊÇ·ñ¿ÉÒÔ¼ÌÐøºÏ²¢³É¸ü´óµÄÒ³Ãæ¡£×î¼ÑÇé¿öÊÇϵͳµÄ¿ÕÏÐÒ³Ãæ¿é½«ºÍÔÊÐí·ÖÅäµÄ×î´ó 
 
ÄÚ´æÒ»Ñù´ó¡£ 
Èç¹ûÊÍ·ÅÒ³Ãæ¿òºÅ1£¬Ëü½«ºÍ¿ÕÏÐÒ³Ãæ¿òºÅ0½áºÏ×÷Ϊ´óСΪ2¸öÒ³ÃæµÄ¿ÕÏпéÅÅÈë 
free_areaµÄµÚÒ»¸öÔªËØÖС£ 
3.5  ÄÚ´æÓ³Éä 
Ó³ÏóÖ´ÐÐʱ£¬¿ÉÖ´ÐÐÓ³ÏóµÄÄÚÈݽ«±»µ÷Èë½ø³ÌÐéÄâµØÖ·¿Õ¼äÖС£¿ÉÖ´ÐÐÓ³ÏóʹÓõĹ²Ïí 
 
¿âͬÑùÈç´Ë¡£È»¶ø¿ÉÖ´ÐÐÎļþʵ¼ÊÉϲ¢Ã»Óе÷ÈëÎïÀíÄڴ棬¶øÊǽö½öÁ¬½Óµ½½ø³ÌµÄÐéÄâ 
 
ÄÚ´æ¡£µ±³ÌÐòµÄÆäËû²¿·ÖÔËÐÐʱÒýÓõ½Õⲿ·Öʱ²Å°ÑËüÃÇ´Ó´ÅÅÌÉϵ÷ÈëÄÚ´æ¡£½«Ó³ÏóÁ¬ 
 
½Óµ½½ø³ÌÐéÄâµØÖ·¿Õ¼äµÄ¹ý³Ì³ÆÎªÄÚ´æÓ³Éä¡£ 
ÿ¸ö½ø³ÌµÄÐéÄâÄÚ´æÓÃÒ»¸ömm_structÀ´±íʾ¡£Ëü°üº¬µ±Ç°Ö´ÐеÄÓ³Ïó£¨ÈçBASH£©ÒÔ¼°Ö¸ 
 
Ïòvm_area_structµÄ´óÁ¿Ö¸Õ롣ÿ¸övm_area_structÊý¾Ý½á¹¹ÃèÐðÁËÐéÄâÄÚ´æµÄÆðʼÓë 
 
½áÊøÎ»Ö㬽ø³Ì¶Ô´ËÄÚ´æÇøÓòµÄ´æÈ¡È¨ÏÞÒÔ¼°Ò»×éÄÚ´æ²Ù×÷º¯Êý¡£ÕâЩº¯Êý¶¼ÊÇLinuxÔÚ 
 
²Ù×ÝÐéÄâÄÚ´æÇøÓòʱ±ØÐëÓõ½µÄ×Ó³ÌÐò¡£ÆäÖÐÒ»¸ö¸ºÔð´¦Àí½ø³ÌÊÔͼ·ÃÎʲ»ÔÚµ±Ç°ÎïÀí 
 
ÄÚ´æÖеÄÐéÄâÄÚ´æ(ͨ¹ýÒ³ÃæÊ§Ð§)µÄÇé¿ö¡£´Ëº¯Êý½Ðnopage¡£ËüÓÃÔÚLinuxÊÔͼ½«¿ÉÖ´ÐР
 
Ó³ÏóµÄÒ³Ãæµ÷ÈëÄÚ´æÊ±¡£ 
¿ÉÖ´ÐÐÓ³ÏóÓ³Éäµ½½ø³ÌÐéÄâµØÖ·Ê±½«²úÉúÒ»×éÏàÓ¦µÄvm_area_structÊý¾Ý½á¹¹¡£Ã¿¸ö 
vm_area_structÊý¾Ý½á¹¹±íʾ¿ÉÖ´ÐÐÓ³ÏóµÄÒ»²¿·Ö£º¿ÉÖ´ÐдúÂë¡¢³õʼ»¯Êý¾Ý(±äÁ¿)¡¢ 
 
δ³õʼ»¯Êý¾ÝµÈµÈ¡£LinuxÖ§³ÖÐí¶à±ê×¼µÄÐéÄâÄÚ´æ²Ù×÷º¯Êý£¬´´½¨vm_area_structÊý¾Ý 
 
½á¹¹Ê±ÓÐÒ»×éÏàÓ¦µÄÐéÄâÄÚ´æ²Ù×÷º¯ÊýÓëÖ®¶ÔÓ¦¡£ 
3.6  ÇëÇó»»Ò³ 
µ±¿ÉÖ´ÐÐÓ³Ïóµ½½ø³ÌÐéÄâµØÖ·¿Õ¼äµÄÓ³ÉäÍê³Éºó£¬Ëü¾Í¿ÉÒÔ¿ªÊ¼ÔËÐÐÁË¡£ÓÉÓÚÖ» 
ÓкÜÉÙ²¿·ÖµÄÓ³Ïóµ÷ÈëÄڴ棬ËùÒԺܿì¾Í»á·¢Éú¶Ô²»ÔÚÎïÀíÄÚ´æÖеÄÐéÄâÄÚ´æÇø 
ÓòµÄ·ÃÎÊ¡£µ±½ø³Ì·ÃÎÊÎÞÓÐЧҳ±íÈë¿ÚµÄÐéÄâµØÖ·Ê±£¬´¦ÀíÆ÷½«ÏòLinux±¨¸æÒ» 
¸öÒ³Ãæ´íÎó¡£ 
Ò³Ãæ´íÎó´øÓÐʧЧ·¢ÉúµÄÐéÄâµØÖ·¼°Òý·¢Ê§Ð§µÄ·Ã´æ·½Ê½¡£Linux±ØÐëÕÒµ½±íʾ´Ë 
ÇøÓòµÄvm_area_struct½á¹¹¡£¶Ôvm_area_structÊý¾Ý½á¹¹µÄËÑѰËٶȾö¶¨ÁË´¦Àí 
Ò³Ãæ´íÎóµÄЧÂÊ£¬¶øËùÓÐvm_area_struct½á¹¹ÊÇͨ¹ýÒ»ÖÖAVL(Adelson-Velskii 
and Landis)Ê÷½á¹¹Á¬ÔÚÒ»ÆðµÄ¡£Èç¹ûÎÞ·¨ÕÒµ½vm_area_structÓë´ËʧЧÐéÄâµØÖ· 
µÄ¶ÔÓ¦¹ØÏµ£¬ÔòϵͳÈÏΪ´Ë½ø³Ì·ÃÎÊÁË·Ç·¨ÐéÄâµØÖ·¡£ÕâʱLinux½«Ïò½ø³Ì·¢ËÍ 
SIGSEGVÐźţ¬Èç¹û½ø³ÌûÓдËÐźŵĴ¦Àí¹ý³ÌÔòÖÕÖ¹ÔËÐС£ 
Èç¹ûÕÒµ½´Ë¶ÔÓ¦¹ØÏµ£¬Linux½ÓÏÂÀ´¼ì²éÒýÆð¸ÃÒ³Ãæ´íÎóµÄ·Ã´æÀàÐÍ¡£Èç¹û½ø³Ì 
ÒÔ·Ç·¨·½Ê½·ÃÎÊÄڴ棬±ÈÈç¶Ô²»¿ÉÐ´ÇøÓò½øÐÐд²Ù×÷£¬ÏµÍ³½«²úÉúÄÚ´æ´íÎóµÄ 
Ðźš£ 
Èç¹ûLinuxÈÏÎªÒ³Ãæ³ö´íÊǺϷ¨µÄ£¬ÄÇôËüÐèÒª¶ÔÕâÖÖÇé¿ö½øÐд¦Àí¡£ 
Ê×ÏÈLinux±ØÐëÇø·ÖλÓÚ½»»»ÎļþÖеÄÒ³ÃæºÍÄÇЩλÓÚ´ÅÅÌÉϵĿÉÖ´ÐÐÓ³Ïó¡£ 
Alpha AXPµÄÒ³±íÖÐÓпÉÄÜ´æÔÚÓÐЧλûÓÐÉèÖõ«ÊÇÔÚPFNÓòÖÐÓзÇ0ÖµµÄÒ³±íÈë 
¿Ú¡£ÔÚÕâÖÖÇé¿öÏ£¬PFNÓòָʾµÄÊÇ´ËÒ³ÃæÔÚ½»»»ÎļþÖеÄλÖá£ÈçºÎ´¦Àí½»»» 
ÎļþÖеÄÒ³Ãæ½«ÔÚÏÂÕÂÌÖÂÛ¡£ 
²»ÊÇËùÓеÄvm_area_structÊý¾Ý½á¹¹¶¼ÓÐÒ»×éÐéÄâÄÚ´æ²Ù×÷º¯Êý£¬ËüÃÇÓеÄÉõ 
ÖÁûÓÐnopageº¯Êý¡£ÕâÊÇÒòΪLinuxͨ¹ý·ÖÅäеÄÎïÀíÒ³Ãæ²¢ÎªÆä´´½¨ÓÐЧµÄÒ³ 
±íÈë¿ÚÀ´ÐÞÕýÕâ´Î·ÃÎÊ¡£Èç¹ûÕâ¸öÄÚ´æÇøÓò´æÔÚnopage²Ù×÷º¯Êý£¬Linux½«µ÷Óà
Ëü¡£ 
Ò»°ãLinuxnopageº¯Êý±»ÓÃÀ´´¦ÀíÄÚ´æÓ³Éä¿ÉÖ´ÐÐÓ³Ïó£¬Í¬Ê±ËüʹÓÃÒ³Ãæcache 
ÇëÇóµÄÒ³Ãæµ÷ÈëÎïÀíÄÚ´æÖÐÈ¥¡£ 
µ±ÇëÇóµÄÒ³Ãæµ÷ÈëÎïÀíÄÚ´æÊ±£¬´¦ÀíÆ÷Ò³±íÒ²±ØÐë¸üС£¸üÐÂÕâЩÈë¿Ú±ØÐë½ø 
ÐÐÏà¹ØÓ²¼þ²Ù×÷£¬ÌرðÊÇ´¦ÀíÆ÷ʹÓÃTLBʱ¡£ÕâÑùµ±Ò³ÃæÊ§Ð§±»´¦ÀíÍê±Ïºó£¬½ø 
³Ì½«´Ó·¢ÉúʧЧÐéÄâÄÚ´æ·ÃÎʵÄλÖÃÖØÐ¿ªÊ¼ÔËÐС£ 
3.7  LinuxÒ³Ãæcache 
LinuxʹÓÃÒ³ÃæcacheµÄÄ¿µÄÊǼӿì¶Ô´ÅÅÌÉÏÎļþµÄ·ÃÎÊ¡£ÄÚ´æÓ³ÉäÎļþÒÔÿ´Î 
Ò»Ò³µÄ·½Ê½¶Á³ö²¢½«ÕâÐ©Ò³Ãæ´æ´¢ÔÚÒ³ÃæcacheÖС£Í¼3.6±íÃ÷Ò³ÃæcacheÓÉ 
page_hash_table£¬Ö¸Ïòmem_map_tÊý¾Ý½á¹¹µÄÖ¸ÕëÊý×é×é³É¡£ 
LinuxÖеÄÿ¸öÎļþͨ¹ýÒ»¸öVFS inode£¨ÔÚÎļþϵͳһÕÂÖн²Ðð£©Êý¾Ý½á¹¹ 
À´±êʶ²¢ÇÒÿ¸öVFSinode¶¼ÊÇΨһµÄ£¬Ëü¿ÉÒÔ²¢½ö¿ÉÒÔÃèÐðÒ»¸öÎļþ¡£Ò³±íµÄ 
Ë÷Òý´ÓÎļþµÄVFSinodeºÍÎļþµÄÆ«ÒÆÖÐÅÉÉú³öÀ´¡£ 
´ÓÒ»¸öÄÚ´æÓ³ÉäÎļþÖжÁ³öÒ³Ãæ£¬ÀýÈç²úÉú»»Ò³ÇëÇóʱҪ½«Ò³Ãæ¶Á»ØÄÚ´æÖУ¬ 
ϵͳ³¢ÊÔ´ÓÒ³ÃæcacheÀ´¶Á³ö¡£Èç¹ûÒ³ÃæÔÚcacheÖУ¬Ôò·µ»ØÒ³ÃæÊ§Ð§´¦Àí¹ý³Ì 
Ò»¸öÖ¸Ïòmem_map_tÊý¾Ý½á¹¹£»·ñÔò´ËÒ³Ãæ½«´Ó°üº¬Ó³ÏóµÄÎļþϵͳÖжÁÈëÄÚ´æ 
²¢ÎªÖ®·ÖÅäÎïÀíÒ³Ãæ¡£ 
ÔÚÓ³ÏóµÄ¶ÁÈëÓëÖ´Ðйý³ÌÖУ¬Ò³Ãæcache²»¶ÏÔö³¤¡£µ±²»ÔÙÐèҪij¸öÒ³ÃæÊ±£¬ 
¼´²»ÔÙ±»Èκνø³ÌʹÓÃʱ£¬Ëü½«±»´ÓÒ³ÃæcacheÖÐɾ³ý¡£ 
3.8  »»³öÓ붪ÆúÒ³Ãæ 
µ±ÏµÍ³ÖÐÎïÀíÄÚ´æ¼õÉÙʱ£¬LinuxÄÚ´æ¹ÜÀí×Óϵͳ±ØÐëÊÍ·ÅÎïÀíÒ³Ãæ¡£Õâ¸öÈÎÎñ 
ÓɺËÐĽ»»»ºǫ́½ø³Ì(kswapd)À´Íê³É¡£ 
ºËÐĽ»»»ºǫ́½ø³ÌÊÇÒ»ÖÖÌØÊâµÄºËÐÄÏ̡߳£ËüÊÇûÓÐÐéÄâÄÚ´æµÄ½ø³Ì£¬ÔÚÎïÀí 
µØÖ·¿Õ¼äÉÏÒÔºËÐÄ̬ÔËÐС£ºËÐĽ»»»ºǫ́½ø³ÌµÄÃû×ÖÈÝÒ×ʹÈËÎó½â£¬ÆäʵËüÍê 
³ÉµÄ¹¤×÷±È½ö½ö½«Ò³Ãæ½»»»µ½ÏµÍ³µÄ½»»»ÎļþÖÐÒª¶àµÃ¶à¡£ÆäÄ¿±êÊDZ£Ö¤ÏµÍ³ 
ÖÐÓÐ×ã¹»µÄ¿ÕÏÐÒ³ÃæÀ´Î¬³ÖÄÚ´æ¹ÜÀíϵͳÔËÐÐЧÂÊ¡£ 
´Ë½ø³ÌÓɺËÐĵÄinit½ø³ÌÔÚϵͳÆô¶¯Ê±ÔËÐУ¬±»ºËÐĽ»»»¶¨Ê±Æ÷ÖÜÆÚÐԵĵ÷Óᣠ
µ±¶¨Ê±Æ÷µ½Ê±ºó£¬½»»»ºǫ́½ø³Ì½«¼ì²éϵͳÖеĿÕÏÐÒ³ÃæÊýÊÇ·ñÌ«ÉÙ¡£ËüʹÓà
Á½¸ö±äÁ¿£ºfree_pages_highºÍfree_page_lowÀ´ÅжÏÊÇ·ñ¸ÃÊÍ·ÅÒ»Ð©Ò³Ãæ¡£Ö» 
ҪϵͳÖеĿÕÏÐÒ³ÃæÊý´óÓÚfree_pages_high£¬ºËÐĽ»»»ºǫ́½ø³Ì²»×öÈκι¤ 
×÷£»Ëü½«Ë¯Ãßµ½ÏÂÒ»´Î¶¨Ê±Æ÷µ½Ê±¡£ÔÚ¼ì²éÖУ¬ºËÐĽ»»»ºǫ́½ø³Ì½«µ±Ç°±»Ð´ 
µ½½»»»ÎļþÖеÄÒ³ÃæÊýÒ²¼ÆËãÔÚÄÚ£¬ËüʹÓÃnr_async_pagesÀ´¼Ç¼Õâ¸öÊýÖµ£» 
µ±ÓÐÒ³Ãæ±»ÅÅÈë×¼±¸Ð´µ½½»»»Îļþ¶ÓÁÐÖÐʱ£¬Ëü½«µÝÔöÒ»´Î£¬Í¬Ê±µ±Ð´Èë²Ù×÷ 
Íê³ÉºóµÝ¼õÒ»´Î¡£Èç¹ûϵͳÖеĿÕÏÐÒ³ÃæÊýÔÚfree_pages_highÉõÖÁfree_pages_low 
ÒÔÏÂʱ£¬ºËÐĽ»»»ºǫ́½ø³Ì½«Í¨¹ýÈý¸ö;¾¶À´¼õÉÙϵͳÖÐʹÓõÄÎïÀíÒ³ÃæµÄ¸öÊý£º 
     ¼õÉÙ»º³åÓëÒ³ÃæcacheµÄ´óС£¬ 
     ½«ÏµÍ³VÀàÐ͵ÄÄÚ´æÒ³Ãæ½»»»³öÈ¥£¬ 
     »»³ö»òÕß¶ªÆúÒ³Ãæ¡£ 
Èç¹ûϵͳÖпÕÏÐÒ³ÃæÊýµÍÓÚfree_pages_low£¬ºËÐĽ»»»ºǫ́½ø³Ì½«ÔÚÏ´ÎÔËÐÐÖ® 
ǰÊÍ·Å6¸öÒ³Ãæ¡£·ñÔòËüÖ»ÊÍ·Å3¸ö¡£ÒÔÉÏÈýÖÖ·½·¨½«ÒÀ´ÎʹÓÃÖ±µ½ÏµÍ³Êͷųö×ã 
¹»µÄ¿ÕÏÐÒ³Ãæ¡£µ±ºËÐĽ»»»ºǫ́½ø³ÌÊÔͼÊÍ·ÅÎïÀíÒ³ÃæÊ±Ëü½«¼Ç¼ʹÓõÄ×îºóÒ» 
ÖÖ·½·¨¡£ÏÂÒ»´ÎËü»áÊ×ÏÈÔËÐÐÉÏ´Î×îºó³É¹¦µÄËã·¨¡£ 
µ±Êͷųö×ã¹»Ò³Ãæºó£¬ºËÐĽ»»»ºǫ́½ø³Ì½«ÔÙ´Î˯Ãßµ½Ï´ζ¨Ê±Æ÷µ½Ê±¡£Èç¹ûµ¼ 
ÖºËÐĽ»»»ºǫ́½ø³ÌÊÍ·ÅÒ³ÃæµÄÔ­ÒòÊÇϵͳÖеĿÕÏÐÒ³ÃæÊýСÓÚfree_pages_low£¬ 
ÔòËüֻ˯Ã߯½Ê±µÄÒ»°ëʱ¼ä¡£Ò»µ©¿ÕÏÐÒ³ÃæÊý´óÓÚfree_pages_lowÔòºËÐĽ»»»½ø 
³ÌµÄ˯Ãßʱ¼äÓÖ»áÑÓ³¤¡£ 
3.8.1  ¼õÉÙPage CacheºÍBuffer CacheµÄ´óС 
Page CacheºÍBuffer cacheÖеÄÒ³Ãæ½«±»ÓÅÏÈ¿¼ÂÇÊͷŵ½free_areaÊý×éÖС£Page 
CacheÖаüº¬µÄÊÇÄÚ´æÓ³ÉäÎļþµÄÒ³Ãæ£¬ÆäÖÐÓÐЩ¿ÉÄÜÊDz»±ØÒªµÄ£¬ËüÃÇÀË·ÑÁËϵ 
ͳµÄÄÚ´æ¡£¶øBuffer,CacheÖаüº¬µÄÊÇ´ÓÎïÀíÉ豸ÖжÁдµÄ»º³åÊý¾Ý£¬ÓÐЩ¿ÉÄÜ 
Ò²ÊDz»±ØÒªµÄ¡£µ±ÏµÍ³ÖÐÎïÀíÒ³Ãæ¿ªÊ¼ºÄ¾¡Ê±£¬´ÓÕâЩcacheÖжªÆúÒ³Ãæ±È½Ï¼òµ¥ 
£¨Ëü²»ÐèÒªÏó´ÓÄÚ´æÖн»»»Ò»Ñù£¬ÎÞÐë¶ÔÎïÀíÉ豸½øÐÐд²Ù×÷£©¡£³ýÁË»áʹ¶ÔÎïÀí 
É豸¼°ÄÚ´æÓ³ÉäÎļþµÄ·ÃÎÊËٶȽµµÍÍâ£¬Ò³Ãæ¶ªÆú²ßÂÔûÓÐÌ«¶àµÄ¸±×÷Óá£Èç¹û²ß 
ÂԵõ±£¬ÔòËùÓнø³ÌµÄËðʧÏàͬ¡£ 
ÿ´ÎºËÐĽ»»»ºǫ́½ø³Ì¶¼»á³¢ÊÔȥѹËõÕâЩcache¡£ 
ËüÊ×Ïȼì²émem_mapÒ³ÃæÊý×éÖеÄÒ³Ãæ¿é¿´ÊÇ·ñÓпÉÒÔ´ÓÎïÀíÄÚ´æÖжªÆú³öÈ¥µÄ¡£µ± 
ϵͳÖеĿÕÏÐÒ³ÃæÊý½µµÍµ½Ò»¸öΣÏÕˮƽʱ£¬ºËÐĺǫ́½»»»½ø³ÌƵ·±½øÐн»»»£ 
lockËã 
·¨£¬Ã¿´ÎÔÚÕû¸ömem_mapÒ³ÃæÊý×éÖжÔÒ³Ãæ½øÐмì²é¡£ 
ºËÐĺǫ́½»»»½ø³Ì½«¼ì²éÿ¸öÒ³Ãæ¿´ÊÇ·ñÒѾ­±»page cache»òÕßbuffer cache»º³å¡£ 
¶ÁÕß¿ÉÄÜÒѾ­×¢Òâµ½¹²ÏíÒ³Ãæ²»ÔÚ±»¿¼ÂǶªÆúµÄÒ³ÃæÖ®ÁУ¬ÕâÖÖÒ³Ãæ²»»áͬʱ³öÏÖÔÚ 
ÕâÁ½ÖÖcacheÖС£Èç¹ûÒ³Ãæ²»ÔÚÕâÁ½ÕßÖÐÈκÎÒ»ÖÖÖ®ÖÐʱ£¬Ëü½«¼ì²émem_mapÒ³ÃæÊý×é 
ÖеÄÏÂÒ»¸öÒ³Ãæ¡£ 
»º´æÔÚbuffer cache(»òÕßÒ³ÃæÖеĻº³å±»»º´æ)ÖеÄÒ³Ãæ¿ÉÒÔʹ»º³å·ÖÅäºÍ»ØÊÕ¸ü¼Ó 
ÓÐЧ¡£ÄÚ´æÑ¹Ëõ´úÂ뽫Á¦Í¼ÊÍ·ÅÔÚÊܼìÒ³ÃæÖаüº¬µÄ»º³åÇø¡£ 
Èç¹ûÒ³ÃæÖаüº¬µÄËùÓлº³åÇø¶¼±»ÊÍ·Å£¬Õâ¸öÒ³ÃæÒ²½«±»ÊÍ·Å¡£Èç¹ûÊܼìÒ³ÃæÔÚLinux 
µÄpagecacheÖУ¬ÔòËü»á´Ópage cacheÖÐɾ³ý²¢ÊÍ·Å¡£ 
Èç¹ûÊͷųöÀ´ÁË×ã¹»µÄÒ³Ãæ£¬ºËÐĽ»»»ºǫ́½ø³Ì½«µÈ´ýµ½ÏÂÒ»´Î±»»½ÐÑ¡£ÕâЩ±»ÊͷŵĠ
 
Ò³Ãæ¶¼²»ÊÇÈκνø³ÌÐéÄâÄÚ´æµÄÒ»²¿·Ö£¬ÕâÑùÎÞÐë¸üÐÂÒ³±í¡£Èç¹ûûÓÐ×ã¹»µÄ»º³åÒ³Ãæ 
 
¶ªÆúÔò½»»»½ø³Ì½«ÊÔͼ½«Ò»Ð©¹²ÏíÒ³Ãæ½»»»³öÈ¥¡£ 
3.8.2  »»³öϵͳVÄÚ´æÒ³Ãæ 
ϵͳV¹²ÏíÄÚ´æÊÇÒ»ÖÖÓÃÀ´ÔÚ½ø³ÌÖ®¼äͨ¹ý¹²ÏíÐéÄâÄÚ´æÀ´ÊµÏÖ½ø³ÌͨѶµÄ»úÖÆ¡£½ø³Ì 
ÊÇÈçºÎ¹²ÏíÄڴ潫ÔÚIPCÒ»ÕÂÖÐÏêϸÌÖÂÛ¡£ÏÖÔÚÖ»ÐèҪ˵Ã÷ϵͳV¹²ÏíÄÚ´æµÄÈκÎÇøÓò¶ 
 
 ¿ÉÒÔÓÃÒ»¸öshmid_dsÊý¾Ý½á¹¹À´±íʾ¾Í×ã¹»ÁË¡£ 
´Ë½á¹¹°üº¬Ò»¸öÖ¸Ïòvm_areaµÄÁ´±íÖ¸Õ룬vm_areaÊÇΪÿ¸ö¹²Ïí´ËÐéÄâÄÚ´æÇøÓòÉè¼Æ 
µÄ½á¹¹¡£ËüÃÇÖ®¼äͨ¹ývm_next_sharedºÍvm_prev_sharedÖ¸ÕëÀ´Á¬½Ó¡£Ã¿¸öshmid_ds 
Êý¾Ý½á¹¹°üº¬Ò»¸öÒ³±íÈë¿Ú£¬Ã¿¸öÈë¿ÚÃèÐðÎïÀíÒ³ÃæÓë¹²ÏíÐéÄâÒ³ÃæÖ®¼äµÄÓ³Éä¹ØÏµ¡£ 
 
ºËÐĽ»»»ºǫ́½ø³ÌͬÑùʹÓÃclockËã·¨À´½«ÏµÍ³V¹²ÏíÄÚ´æÒ³Ãæ½»»»³öÈ¥¡£ 
ÿ´ÎÔËÐÐʱ£¬ËüÒª¼ÇµÃÄĸö¹²ÏíÐéÄâÄÚ´æÇøÓòµÄÄĸöÒ³ÃæÊÇ×îºóÒ»¸ö±»½»»»³öÈ¥ 
µÄ¡£Á½¸öË÷Òý¿ÉÒÔЭÖúËüÍê³ÉÕâÏ×÷£¬ÆäÒ»ÊÇÒ»×éshmid_dsÊý¾Ý½á¹¹µÄË÷Òý£¬ 
ÁíÒ»¸öÊÇϵͳV¹²ÏíÄÚ´æÇøÓòµÄÒ³±íÈë¿ÚÁ´±íµÄË÷Òý¡£ÕâÄܹ»±£Ö¤¶ÔϵͳV¹²ÏíÄÚ 
´æÇøÓò×÷³ö¹«Æ½µÄÑ¡Ôñ¡£ 
ÓÉÓÚ¶ÔÓÚ¸ø¶¨µÄϵͳV¹²ÏíÐéÄâÄÚ´æµÄÎïÀíÒ³Ãæ¿òºÅ±»±£´æÔÚËùÓй²Ïí´ËÐéÄâÄÚ´æ 
ÇøÓò½ø³ÌµÄÒ³±íÖУ¬ºËÐĽ»»»ºǫ́½ø³Ì±ØÐëͬʱÐÞ¸ÄËùÓеÄÒ³±íÒÔ±íÊ¾Ò³Ãæ²»ÔÙÔ 
ºËÐÄ 
½»»»ºǫ́½ø³Ì¿ÉÒÔÔÚÿ¸ö¹²Ïí½ø³ÌµÄÒ³±íÖеÄÒ³±íÈë¿ÚÖÐÕÒµ½ËüÃÇ(ͨ¹ý 
vm_area_structÊý¾Ý½á¹¹)¡£Èç¹û¶ÔÓ¦´ËϵͳV¹²ÏíÄÚ´æµÄÒ³ÃæµÄ½ø³ÌÒ³±íÈë¿ÚÊÇÓР
ЧµÄ£¬Ëü¿ÉÒÔ½«Æäת±ä³ÉÎÞЧ£¬ÕâÑù»»³öÒ³±íÈë¿ÚºÍ¹²ÏíÒ³ÃæµÄÓû§Êý½«¼õÒ»¡£»» 
³öϵͳV¹²ÏíÒ³±íÈë¿ÚµÄ¸ñʽÖаüº¬Ò»¸ö¶ÔÓ¦ÓÚÒ»×éshmid_dsÊý¾Ý½á¹¹µÄË÷ÒýÒÔ¼° 
Ò»¸ö¶ÔϵͳV¹²ÏíÄÚ´æÇøÓòµÄÒ³±íÈë¿ÚË÷Òý¡£ 
Èç¹ûËùÓй²Ïí½ø³ÌµÄÒ³±í¶¼±»Ð޸ĺó´ËÒ³ÃæµÄ¼ÇÊýΪ0Ôò¹²ÏíÒ³Ãæ¿ÉÒÔ±»Ð´µ½½»»» 
ÎļþÖС£Í¬ÑùÖ¸Ïò´ËϵͳV¹²ÏíÄÚ´æÇøÓòµÄshmid_dsÊý¾Ý½á¹¹Á´±íÖеÄÒ³±íÈë¿ÚÒ² 
±»»»³öÒ³±íÈë¿Ú´úÌæ¡£»»³öÒ³±íÈë¿ÚËäÈ»ÎÞЧµ«ÊÇËü°üº¬Ò»×é´ò¿ªµÄ½»»»ÎļþµÄË÷ 
Òý£¬Í¬Ê±»¹ÄÜÕÒµ½»»³öÒ³ÃæÔÚÎļþÖÐµÄÆ«ÒÆ¡£µ±Ò³ÃæÖØÐ±»´øÈëÎïÀíÄÚ´æÊ±£¬ÕâЩ 
ÐÅϢʮ·ÖÓÐÓᣠ
3.8.3  »»³öºÍ¶ªÆúÒ³Ãæ 
½»»»ºǫ́½ø³ÌÒÀ´Î¼ì²éϵͳÖеÄÿ¸ö½ø³ÌÒÔÈ·ÈÏË­×îÊʺϽ»»»³öÈ¥¡£ 
±È½ÏºÃµÄºòÑ¡ÕßÊÇÄÇЩ¿ÉÒÔ±»½»»»³öÈ¥£¨ÓÐЩÊDz»¿É±»½»»»³öÈ¥µÄ£©²¢ÇÒÖ»ÓÐÒ»¸ö 
»òÕß¼¸¸öÒ³ÃæÔÚÄÚ´æÖеĽø³Ì¡£Ö»ÓÐÄÇЩ°üº¬µÄÊý¾ÝÎÞ·¨¼ìË÷µÄÒ³Ãæ²Å»á´ÓÎïÀíÄÚ 
´æÖн»»»µ½ÏµÍ³½»»»ÎļþÖÐÈ¥¡£ 
¿ÉÖ´ÐÐÓ³ÏóµÄÐí¶àÄÚÈݶ¼¿ÉÒÔ´ÓÓ³ÏóÎļþÖжÁ³ö²¢ÇÒ¿ÉÒÔºÜÈÝÒ×ÖØ¶Á³öÀ´¡£ÀýÈ磬 
Ó³ÏóÖеĿÉÖ´ÐÐÖ¸Áî²»Äܱ»Ó³Ïó±¾ÉíÐ޸ģ¬ËùÒÔ¾ö²»»áдµ½½»»»ÎļþÖÐÈ¥¡£ÕâЩҳ 
ÃæÖ±½Ó¶ªÆú¾Í¿ÉÒÔ¡£µ±½ø³ÌÔÙ´ÎÒýÓÃËüÃÇʱ£¬Ö»ÐèÒª´Ó¿ÉÖ´ÐÐÓ³ÏóÎļþÖжÁÈëÄÚ´æ 
¼´¿É¡£ 
Ò»µ©È·¶¨Á˽«Òª±»½»»»³öÈ¥µÄ½ø³Ì£¬½»»»ºǫ́½ø³Ì½«ËÑË÷ÆäÕû¸öÐéÄâÄÚ´æÇøÓòÒÔÕÒ 
µ½ÄÇЩûÓй²Ïí»òÕß¼ÓËøµÄÇøÓò¡£ 
Linux²¢²»»á½«Ñ¡ÖеĽø³ÌµÄÕû¸ö¿É½»»»Ò³Ãæ¶¼½»»»³öÈ¥£¬Ëüֻɾ³ýһС²¿·ÖÒ³Ãæ¡£ 
Èç¹ûÄÚ´æ±»¼ÓËøÔòÒ³Ãæ²»Äܱ»½»»»»òÕß¶ªÆú¡£ 
Linux½»»»Ë㷨ʹÓÃÒ³ÃæË¥ÀÏËã·¨¡£Ã¿¸öÒ³ÃæÓÐÒ»¸ö¼ÆÊýÆ÷À´¸æËߺËÐĽ»»»ºǫ́½ø³Ì 
Õâ¸öÒ³ÃæÊÇ·ñÖµµÃ½»»»³öÈ¥£¨´Ë¼ÆÊýÆ÷°üº¬ÔÚmem_map_t½á¹¹ÖУ©¡£µ±Ò³ÃæÃ»ÓÐʹÓà
»òÕßûÓÐÕÒµ½Ê±½«»áË¥ÀÏ£»½»»»ºǫ́½ø³Ì½ö½ö½»»»³öÄÇЩÀÏÒ³Ãæ¡£È±Ê¡²Ù×÷ÊÇ£ºÃ¿´ÎÒý 
ÓÃÆä 
 Á佫¼Ó3£¬×î´óֵΪ20¡£Ã¿´ÎºËÐĽ»»»ºǫ́½ø³ÌÔËÐÐËüÀ´Ê¹Ò³ÃæË¥ÀÏ- 
½«ÄêÁä¼õ1¡£Õâ¸öȱʡ²Ù×÷¿ÉÒԸı䲢ÇÒÓÉÓÚÕâ¸öÔ­ÒòËüÃDZ»´æ´¢ÔÚswap_controlÊý 
¾Ý½á¹¹ÖС£ 
Èç¹ûÒ³Ãæ±äÀÏÁË(age=0)£¬Ôò½»»»ºǫ́½ø³Ì½«½øÒ»²½À´´¦ÀíËü¡£dirtyÒ³Ãæ¿ÉÒÔ±»½» 
»»³öÈ¥¡£LinuxÔÚPTEÖÐʹÓÃÒ»¸öÓ²¼þÏà¹ØÎ»À´ÃèÐðÒ³ÃæµÄÕâ¸öÌØÐÔ£¨¼ûͼ3.2£©¡£ 
È»¶ø²»ÊÇËùÓеÄdirtyÒ³Ãæ¶¼ÓбØÒªÐ´Èëµ½½»»»ÎļþÖÐÈ¥¡£½ø³ÌµÄÿ¸öÐéÄâÄÚ´æø 
Óò¿ÉÄÜ 
ÓÐÆä×ÔÉíµÄ½»»»²Ù×÷(ÓÉvm_area_struct½á¹¹ÖеÄvm_opsÖ¸Õë±íʾ)£¬ÔÚ 
½»»»Ê±Ê¹ÓõÄÊÇÕâЩ·½·¨¡£·ñÔò£¬½»»»ºǫ́½ø³Ì½«ÔÚ½»»»ÎļþÖзÖÅäÒ»¸öÒ³Ãæ²¢ 
½«Ò³ÃæÐ´µ½É豸ÉÏÈ¥¡£ 
Ò³ÃæµÄÒ³±íÈë¿Ú±»±êÖ¾³ÉÎÞЧµ«ÊÇËü°üº¬ÁËÒ³ÃæÔÚÔÚ½»»»ÎļþÖÐλÖõÄÐÅÏ¢£¬°üÀ¨ 
Ò»¸ö±íÊ¾Ò³ÃæÔÚ½»»»ÎļþÖÐλÖÃµÄÆ«ÒÆÖµÒÔ¼°Ê¹ÓõÄÊÇÄĸö½»»»Îļþ¡£µ«ÊDz»¹Üʹ 
ÓõÄÊÇÄÄÖÖ½»»»Ëã·¨£¬ÒÔǰÄǸöÎïÀíÒ³Ãæ½«±»±êÖ¾³É¿ÕÏв¢·ÅÈëfree_areaÖС£ 
Clean£¨»òÕßnot dirty£©µÄÒ³Ãæ¿ÉÒÔ¶ªÆúͬʱ·ÅÈëfree_areaÒÔ±¸ÖØÐÂʹÓᣠ
Èç¹ûÓÐ×ã¹»µÄ¿É½»»»½ø³ÌÒ³Ãæ±»½»»»³öÈ¥»ò¶ªÆú£¬Ôò½»»»ºǫ́½ø³Ì½«ÔÙ´Î˯Ãß¡£ 
Ï´ÎËüÐÑÀ´Ê±½«¿¼ÂÇϵͳÖеÄÏÂÒ»¸ö½ø³Ì¡£Í¨¹ýÕâÖÖ·½·¨£¬½»»»ºǫ́½ø³ÌÒ»µ 
µãµØ½«Ã¿ 
¸ö½ø³ÌµÄ¿É½»»»»ò¿É¶ªÆúÎïÀíÒ³ÃæÊÕ»ØÖªµÀϵͳÔٴδ¦ÓÚÆ½ºâ״̬¡£ 
Õâ±È½«Õû¸ö½ø³Ì½»»»³öÈ¥Òª¹«Æ½µÃ¶à¡£ 
3.9  The Swap Cache 
µ±½«Ò³Ãæ½»»»µ½½»»»ÎļþÖÐʱ£¬Linux×ÜÊDZÜÃâÒ³ÃæÐ´£¬³ý·Ç±ØÐëÕâÑù×ö¡£µ±Ò³Ãæ 
ÒѾ­±»½»»»³öÄڴ浫Êǵ±Óнø³ÌÔٴηÃÎÊʱÓÖÒª½«ËüÖØÐµ÷ÈëÄÚ´æ¡£Ö»ÒªÒ³ÃæÔÚÄÚ 
´æÖÐûÓб»Ð´¹ý£¬Ôò½»»»ÎļþÖеĿ½±´ÊÇÓÐЧµÄ¡£ 
LinuxʹÓÃswap cacheÀ´¸ú×ÙÕâÐ©Ò³Ãæ¡£Õâ¸öswap cacheÊÇÒ»¸öÒ³±íÈë¿ÚÁ´±í£¬Ã¿ 
¸ö¶ÔÓ¦ÓÚϵͳÖеÄÎïÀíÒ³Ãæ¡£ÕâÊÇÒ»¸ö¶ÔÓ¦ÓÚ½»»»³öÒ³ÃæµÄÒ³±íÈë¿Ú²¢ÇÒÃèÐðÒ³Ãæ 
·ÅÖÃÔÚÄĸö½»»»ÎļþÖÐÒÔ¼°ÔÚ½»»»ÎļþÖеÄλÖᣠ
Èç¹ûswap 
cacheÈë¿ÚΪ·Ç0Öµ£¬Ôò±íʾÔÚ½»»»ÎļþÖеÄÕâһҳûÓб»Ð޸ġ£Èç¹û´ËÒ³±»Ð޸Ġ
£¨»òÕßдÈ룩¡£ÔòÆäÈë¿Ú´Óswap cacheÖÐɾ³ý¡£ 
µ±LinuxÐèÒª½«Ò»¸öÎïÀíÒ³Ãæ½»»»µ½½»»»Îļþʱ£¬Ëü½«¼ì²éswap cache£¬Èç¹û¶ÔÓ¦ 
´ËÒ³Ãæ´æÔÚÓÐЧÈë¿Ú£¬Ôò²»±Ø½«Õâ¸öÒ³ÃæÐ´µ½½»»»ÎļþÖС£ÕâÊÇÒòΪ×Ô´ÓÉϴδӽ» 
»»ÎļþÖн«Æä¶Á³öÀ´£¬ÄÚ´æÖеÄÕâ¸öÒ³Ãæ»¹Ã»Óб»Ð޸ġ£ 
swap cacheÖеÄÈë¿ÚÊÇÒÑ»»³öÒ³ÃæµÄÒ³±íÈë¿Ú¡£ËüÃÇËä±»±ê¼ÇΪÎÞЧµ«ÊÇΪLinux 
ÌṩÁËÒ³ÃæÔÚÄĸö½»»»ÎļþÖÐÒÔ¼°ÎļþÖеÄλÖõÈÐÅÏ¢¡£ 
3.10  Ò³ÃæµÄ»»Èë 
±£´æÔÚ½»»»ÎļþÖеÄdirtyÒ³Ãæ¿ÉÄܱ»ÔÙ´ÎʹÓõ½£¬ÀýÈ磬µ±Ó¦ÓóÌÐòÏò°üº¬ÔÚÒÑ 
½»»»³öÎïÀíÒ³ÃæÉϵÄÐéÄâÄÚ´æÇøÓòдÈëʱ¡£¶Ô²»ÔÚÎïÀíÄÚ´æÖеÄÐéÄâÄÚ´æÒ³ÃæµÄ·Ã 
Îʽ«Òý·¢Ò³Ãæ´íÎó¡£ÓÉÓÚ´¦ÀíÆ÷²»Äܽ«´ËÐéÄâµØÖ·×ª»»³ÉÎïÀíµØÖ·£¬´¦ÀíÆ÷½«Í¨Öª 
²Ù×÷ϵͳ¡£ÓÉÓÚÒѱ»½»»»³öÈ¥£¬´ËʱÃèÐð´ËÒ³ÃæµÄÒ³±íÈë¿Ú±»±ê¼Ç³ÉÎÞЧ¡£´¦ÀíÆ÷ 
²»ÄÜ´¦ÀíÕâÖÖÐéÄâµØÖ·µ½ÎïÀíµØÖ·µÄת»»£¬ËùÒÔËü½«¿ØÖÆ´«µÝ¸ø²Ù×÷ϵͳ£¬Í¬Ê±Í¨ 
Öª²Ù×÷ÏµÍ³Ò³Ãæ´íÎóµÄµØÖ·ÓëÔ­Òò¡£ÕâЩÐÅÏ¢µÄ¸ñʽÒÔ¼°´¦ÀíÆ÷ÈçºÎ½«¿ØÖÆ´«µÝ¸ø 
²Ù×÷ϵͳÓë¾ßÌåÓ²¼þÓйء£ 
´¦ÀíÆ÷Ïà¹ØÒ³Ãæ´íÎó´¦Àí´úÂ뽫¶¨Î»ÃèÐð°üº¬³ö´íÐéÄâµØÖ·¶ÔÓ¦µÄÐéÄâÄÚ´æÇøÓòµÄ 
vm_area_structÊý¾Ý½á¹¹¡£ 
Ëüͨ¹ýÔڴ˽ø³ÌµÄvm_area_structÖвéÕÒ°üº¬³ö´íÐéÄâµØÖ·µÄλÖÃÖ±µ½ÕÒµ½ÎªÖ¹¡£ 
ÕâЩ´úÂëÓëʱ¼ä¹ØÏµÖش󣬽ø³ÌµÄvm_area_structÊý¾Ý½á¹¹ÌØÒâ°²ÅųÉʹ²éÕÒ²Ù×÷ 
ʱ¼ä¸üÉÙ¡£ 
Ö´ÐÐÍêÕâЩ´¦ÀíÆ÷Ïà¹Ø²Ù×÷²¢ÇÒÕÒµ½³ö´íÐéÄâµØÖ·µÄÓÐЧÄÚ´æÇøÓòºó£¬Ò³Ãæ´í´¦Àí 
¹ý³ÌÆäÓಿ·ÖºÍÇ°ÃæÀàËÆ¡£ 
ͨÓÃÒ³Ãæ´í´¦Àí´úÂëΪ³ö´íÐéÄâµØÖ·Ñ°ÕÒÒ³±íÈë¿Ú¡£Èç¹ûÕÒµ½µÄÒ³±íÈë¿ÚÊÇÒ»¸öÒÑ 
»»³öÒ³Ãæ£¬Linux±ØÐ뽫Æä½»»»½øÈëÎïÀíÄÚ´æ¡£ÒÑ»»³öÒ³ÃæµÄÒ³±íÈë¿ÚµÄ¸ñʽÀàÐÍ 
Óйأ¬µ«ÊÇËùÓеĴ¦ÀíÆ÷½«ÕâÐ©Ò³Ãæ±ê¼Ç³ÉÎÞЧ²¢°Ñ¶¨Î»´ËÒ³ÃæµÄ±ØÒªÐÅÏ¢·ÅÈëÒ³ 
±íÈë¿ÚÖС£LinuxÀûÓÃÕâЩÐÅÏ¢ÒÔ±ã½«Ò³Ãæ½»»»½øÎïÀíÈëÄÚ´æ¡£ 
´ËʱLinuxÖªµÀ³ö´íÐéÄâÄÚ´æµØÖ·²¢ÇÒÓµÓÐÒ»¸ö°üº¬Ò³ÃæÎ»ÖÃÐÅÏ¢µÄÒ³±íÈë¿Ú¡£ 
vm_area_structÊý¾Ý½á¹¹¿ÉÄܰüº¬½«´ËÐéÄâÄÚ´æÇøÓò½»»»µ½ÎïÀíÄÚ´æÖеÄ×Ó³ÌÐò: 
swapin¡£Èç¹û¶Ô´ËÐéÄâÄÚ´æÇøÓò´æÔÚswapinÔòLinux»áʹÓÃËü¡£ÕâÊÇÒÑ»»³öϵͳV¹² 
ÏíÄÚ´æÒ³ÃæµÄ´¦Àí¹ý³Ì-ÒòΪÒÑ»»³öϵͳV¹²ÏíÒ³ÃæºÍÆÕͨµÄÒÑ»»³öÒ³ÃæÓÐÉÙÐí²»Í¬¡£ 
Èç¹ûûÓÐswapin²Ù×÷£¬Õâ¿ÉÄÜÊÇLinux¼Ù¶¨ÆÕÍ¨Ò³ÃæÎÞÐëÌØÊâ´¦Àí¡£ 
ϵͳ½«·ÖÅäÎïÀíÒ³Ãæ²¢½«ÒÑ»»³öÒ³Ãæ¶ÁÈë¡£¹ØÓÚÒ³ÃæÔÚ½»»»ÎļþÖÐλÖÃÐÅÏ¢´ÓÒ³±í 
Èë¿ÚÖÐÈ¡³ö¡£ 
Èç¹ûÒýÆðÒ³Ãæ´íÎóµÄ·ÃÎʲ»ÊÇд²Ù×÷ÔòÒ³Ãæ±»±£ÁôÔÚswap cacheÖв¢ÇÒËüµÄÒ³±íÈë 
¿Ú²»ÔÙ±ê¼ÇΪ¿Éд¡£Èç¹ûÒ³ÃæËæºó±»Ð´È룬Ôò½«²úÉúÁíÒ»¸öÒ³Ãæ´íÎó£¬ÕâÊ±Ò³Ãæ±» 
±ê¼ÇΪdirty£¬Í¬Ê±ÆäÈë¿Ú´ÓswapcacheÖÐɾ³ý¡£ 
Èç¹ûÒ³ÃæÃ»Óб»Ð´²¢ÇÒ±»ÒªÇóÖØÐ»»³ö£¬Linux¿ÉÒÔÃâ³ýÕâ´Îд£¬ÒòÎªÒ³ÃæÒѾ­´æ 
ÔÚÓÚ½»»»ÎļþÖС£ 
Èç¹ûÒýÆðÒ³Ãæ´Ó½»»»ÎļþÖжÁ³öµÄ²Ù×÷ÊÇд²Ù×÷£¬Õâ¸öÒ³Ãæ½«±»´Óswap cacheÖР
ɾ³ý²¢ÇÒÆäÒ³±íÈë¿Ú±»±ê¼Ç ³ÉdirtyÇÒ¿Éд¡£ 
   
 
-- 
¡ù À´Ô´:¡¤BBS Ë®Ä¾Ç廪վ bbs.net.tsinghua.edu.cn¡¤[FROM: 202.114.2.2] 

BBSˮľÇ廪վ¡Ã¾«»ªÇø