Table of Contents, Show Frames, No Frames

µÚÈýÕ ´æ´¢¹ÜÀí


´æ´¢¹ÜÀí×Óϵͳʱ²Ù×÷ϵͳÖÐ×îÖØÒªµÄ×é³É²¿·ÖÖ®Ò»¡£ÔÚÔçÆÚ¼ÆËãʱ´ú£¬ÓÉÓÚÈËÃÇËùÐèÒªµÄÄÚ´æÊýĿԶԶ´óÓÚÎïÀíÄڴ棬ÈËÃÇÉè¼Æ³öÁ˸÷ÖÖ¸÷ÑùµÄ²ßÂÔÀ´½â¾ö´ËÎÊÌ⣬ÆäÖÐ×î³É¹¦µÄÊÇÐéÄâÄÚ´æ¼¼Êõ¡£ËüʹµÃϵͳÖÐΪÓÐÏÞÎïÀíÄڴ澺ÕùµÄ½ø³ÌËùÐèÄÚ´æ¿Õ¼äµÃµ½Âú×ã¡£

ÐéÄâÄÚ´æ¼¼Êõ²»½ö½ö¿ÉÈÃÎÒÃÇ¿ÉÒÔʹÓøü¶àµÄÄڴ棬Ëü»¹ÌṩÁËÒÔϹ¦ÄÜ£º

¾Þ´óµÄѰַ¿Õ¼ä

²Ù×÷ϵͳÈÃϵͳ¿´ÉÏÈ¥ÓбÈʵ¼ÊÄÚ´æ´óµÃ¶àµÄÄÚ´æ¿Õ¼ä¡£ÐéÄâÄÚ´æ¿ÉÒÔÊÇϵͳÖÐʵ¼ÊÎïÀí¿Õ¼äµÄÐí¶à±¶¡£Ã¿¸ö½ø³ÌÔËÐÐÔÚÆä¶ÀÁ¢µÄÐéÄâµØÖ·¿Õ¼äÖС£ÕâЩÐéÄâ¿Õ¼äÏ໥֮¼ä¶¼ÍêÈ«¸ôÀ뿪À´£¬ËùÒÔ½ø³Ì¼ä²»»á»¥ÏàÓ°Ï졣ͬʱ£¬Ó²¼þÐéÄâÄÚ´æ»ú¹¹¿ÉÒÔ½«ÄÚ´æµÄÄ³Ð©ÇøÓòÉèÖóɲ»¿Éд¡£ÕâÑù¿ÉÒÔ±£»¤´úÂëÓëÊý¾Ý²»»áÊܶñÒâ³ÌÐòµÄ¸ÉÈÅ¡£

ÄÚ´æÓ³Éä

ÄÚ´æÓ³Éä¼¼Êõ¿ÉÒÔ½«Ó³ÏóÎļþºÍÊý¾ÝÎļþÖ±½ÓÓ³Éäµ½½ø³ÌµÄµØÖ·¿Õ¼ä¡£ÔÚÄÚ´æÓ³ÉäÖУ¬ÎļþµÄÄÚÈݱ»Ö±½ÓÁ¬½Óµ½½ø³ÌÐéÄâµØÖ·¿Õ¼äÉÏ¡£

¹«Æ½µÄÎïÀíÄÚ´æ·ÖÅä

ÄÚ´æ¹ÜÀí×ÓϵͳÔÊÐíϵͳÖÐÿ¸öÔËÐеĽø³Ì¹«Æ½µØ¹²ÏíϵͳÖеÄÎïÀíÄÚ´æ¡£

¹²ÏíÐéÄâÄÚ´æ

¾¡¹ÜÐéÄâÄÚ´æÔÊÐí½ø³ÌÓÐÆä¶ÀÁ¢µÄÐéÄâµØÖ·¿Õ¼ä£¬µ«ÓÐʱҲÐèÒªÔÚ½ø³ÌÖ®¼ä¹²ÏíÄÚ´æ¡£ ÀýÈçÓпÉÄÜϵͳÖÐÓм¸¸ö½ø³ÌͬʱÔËÐÐBASHÃüÁîÍâ¿Ç³ÌÐò¡£ÎªÁ˱ÜÃâÔÚÿ¸ö½ø³ÌµÄÐéÄâÄÚ´æ¿Õ¼äÄÚ¶¼´æÔÚBASH³ÌÐòµÄ¿½±´£¬½ÏºÃµÄ½â¾ö°ì·¨ÊÇϵͳÎïÀíÄÚ´æÖÐÖ»´æÔÚÒ»·ÝBASHµÄ¿½±´²¢ÔÚ¶à¸ö½ø³Ì¼ä¹²Ïí¡£¶¯Ì¬¿âÔòÊÇÁíÍâÒ»ÖÖ½ø³Ì¼ä¹²ÏíÖ´ÐдúÂëµÄ·½Ê½¡£¹²ÏíÄÚ´æ¿ÉÓÃÀ´×÷Ϊ½ø³Ì¼äͨѶ(IPC)µÄÊֶΣ¬¶à¸ö½ø³Ìͨ¹ý¹²ÏíÄÚ´æÀ´½»»»ÐÅÏ¢¡£ LinuxÖ§³ÖSYSTEM VµÄ¹²ÏíÄÚ´æIPC»úÖÆ¡£

3.1 ÐéÄâÄÚ´æµÄ³éÏóÄ£ÐÍ


ͼ3.1 ÐéÄâµØÖ·µ½ÎïÀíµØÖ·Ó³ÉäµÄ³éÏóÄ£ÐÍ

ÔÚÌÖÂÛLinuxÊÇÈçºÎ¾ßÌåʵÏÖ¶ÔÐéÄâÄÚ´æµÄÖ§³Öǰ£¬ÓбØÒª¿´Ò»Ï¸ü¼òµ¥µÄ³éÏóÄ£ÐÍ¡£

ÔÚ´¦ÀíÆ÷Ö´ÐгÌÐòʱÐèÒª½«Æä´ÓÄÚ´æÖжÁ³öÔÙ½øÐÐÖ¸Áî½âÂë¡£ÔÚÖ¸Áî½âÂë֮ǰËü±ØÐëÏòÄÚ´æÖÐij¸öλÖÃÈ¡³ö»òÕß´æÈëij¸öÖµ¡£È»ºóÖ´ÐдËÖ¸Áî²¢Ö¸Ïò³ÌÐòÖÐÏÂÒ»ÌõÖ¸Áî¡£Ôڴ˹ý³ÌÖд¦ÀíÆ÷±ØÐëÆµ·±·ÃÎÊÄڴ棬ҪôȡָȡÊý£¬ÒªÃ´´æ´¢Êý¾Ý¡£

ÐéÄâÄÚ´æÏµÍ³ÖеÄËùÓеØÖ·¶¼ÊÇÐéÄâµØÖ·¶ø²»ÊÇÎïÀíµØÖ·¡£Í¨¹ý²Ù×÷ϵͳËùά»¤µÄһϵÁбí¸ñÓÉ´¦ÀíÆ÷ʵÏÖÓÉÐéÄâµØÖ·µ½ÎïÀíµØÖ·µÄת»»¡£

ΪÁËʹת»»¸ü¼Ó¼òµ¥£¬ÐéÄâÄÚ´æÓëÎïÀíÄÚ´æ¶¼ÒÔÒ³ÃæÀ´×éÖ¯¡£²»Í¬ÏµÍ³ÖÐÒ³ÃæµÄ´óС¿ÉÒÔÏàͬ£¬Ò²¿ÉÒÔ²»Í¬£¬ÕâÑù½«´øÀ´¹ÜÀíµÄ²»±ã¡£Alpha AXP´¦ÀíÆ÷ÉÏÔËÐеÄLinuxÒ³Ãæ´óСΪ8KB£¬¶øIntel X86ϵͳÉÏʹÓÃ4KBÒ³Ãæ¡£Ã¿¸öÒ³ÃæÍ¨¹ýÒ»¸ö½ÐÒ³Ãæ¿òºÅµÄÊý×ÖÀ´±êʾ(PFN) ¡£

Ò³ÃæÄ£Ê½ÏµÄÐéÄâµØÖ·ÓÉÁ½²¿·Ö¹¹³É£ºÒ³Ãæ¿òºÅºÍÒ³ÃæÄÚÆ«ÒÆÖµ¡£Èç¹ûÒ³Ãæ´óСΪ4KB£¬ÔòÐéÄâµØÖ·µÄ 11£º0λ±íʾÐéÄâµØÖ·Æ«ÒÆÖµ£¬12λÒÔÉϱíʾÐéÄâÒ³Ãæ¿òºÅ¡£´¦ÀíÆ÷´¦ÀíÐéÄâµØÖ·Ê±±ØÐëÍê³ÉµØÖ··ÖÀ빤×÷¡£ÔÚÒ³±íµÄ°ïÖúÏ£¬Ëü½«ÐéÄâÒ³Ãæ¿òºÅת»»³ÉÎïÀíÒ³Ãæ¿òºÅ£¬È»ºó·ÃÎÊÎïÀíÒ³ÃæÖÐÏàÓ¦Æ«ÒÆ´¦¡£

ͼ3.1¸ø³öÁËÁ½¸ö½ø³Ì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¡£

ͨ¹ý½«ÐéÄâµØÖ·Ó³Éäµ½ÎïÀíµØÖ·£¬ÐéÄâÄÚ´æ¿ÉÒÔÒÔÈκÎ˳ÐòÓ³É䵽ϵͳÎïÀíÒ³Ãæ¡£ÀýÈ磬ÔÚͼ3.1ÖУ¬½ø³ÌXµÄÐéÄâÒ³Ãæ¿òºÅ0±»Ó³Éäµ½ÎïÀíÒ³Ãæ¿òºÅ1¶øÐéÄâÒ³Ãæ¿òºÅ7±»Ó³Éäµ½ÎïÀíÒ³Ãæ¿òºÅ0£¬ËäÈ»ºóÕßµÄÐéÄâÒ³Ãæ¿òºÅÒª¸ßÓÚǰÕß¡£ÕâÑùÐéÄâÄÚ´æ¼¼Êõ´øÀ´ÁËÓÐȤµÄ½á¹û£ºÐéÄâÄÚ´æÖеÄÒ³ÃæÎÞÐëÔÚÎïÀíÄÚ´æ±£³ÖÌØ¶¨Ë³Ðò¡£

 

3.1.1 ÇëÇó»»Ò³

ÔÚÎïÀíÄÚ´æ±ÈÐéÄâÄÚ´æÐ¡µÃ¶àµÄϵͳÖУ¬²Ù×÷ϵͳ±ØÐëÌá¸ßÎïÀíÄÚ´æµÄʹÓÃЧÂÊ¡£½ÚÊ¡ÎïÀíÄÚ´æµÄÒ»ÖÖ·½·¨Êǽö¼ÓÔØÄÇЩÕýÔÚ±»Ö´ÐгÌÐòʹÓõÄÐéÄâÒ³Ãæ¡£±ÈÈç˵£¬Ä³¸öÊý¾Ý¿â³ÌÐò¿ÉÄÜÒª¶Ôij¸öÊý¾Ý¿â½øÐвéѯ²Ù×÷£¬´Ëʱ²¢²»ÊÇÊý¾Ý¿âµÄËùÓÐÄÚÈݶ¼Òª¼ÓÔØµ½ÄÚ´æÖÐÈ¥£¬¶øÖ»¼ÓÔØÄÇЩҪÓõIJ¿·Ö¡£Èç¹û´ËÊý¾Ý¿â²éѯÊÇÒ»¸öËÑË÷²éѯ¶øÎÞÐë¶ÔÊý¾Ý¿â½øÐÐÌí¼Ó¼Ç¼²Ù×÷£¬Ôò¼ÓÔØÌí¼Ó¼Ç¼µÄ´úÂëÊǺÁÎÞÒâÒåµÄ¡£ÕâÖÖ½ö½«Òª·ÃÎʵÄÐéÄâÒ³ÃæÔØÈëµÄ¼¼Êõ½ÐÇëÇó»»Ò³¡£

µ±½ø³ÌÊÔͼ·ÃÎʵ±Ç°²»ÔÚÄÚ´æÖеÄÐéÄâµØÖ·Ê±£¬´¦ÀíÆ÷ÔÚÒ³±íÖÐÎÞ·¨ÕÒµ½ËùÒýÓõØÖ·µÄÈë¿Ú¡£ÔÚͼ3.1ÖУ¬¶ÔÓÚÐéÄâÒ³Ãæ¿òºÅ2£¬½ø³ÌXµÄÒ³±íÖÐûÓÐÈë¿Ú£¬ÕâÑùµ±½ø³ÌXÊÔͼ·ÃÎÊÐéÄâÒ³Ãæ¿òºÅ2ÄÚÈÝʱ£¬´¦ÀíÆ÷²»Äܽ«´ËµØÖ·×ª»»³ÉÎïÀíµØÖ·¡£Õâʱ´¦ÀíÆ÷֪ͨ²Ù×÷ϵͳÓÐÒ³Ãæ´íÎó·¢Éú¡£

Èç¹û·¢ÉúÒ³Ãæ´íµÄÐéÄâµØÖ·ÊÇÎÞЧµÄ£¬Ôò±íÃ÷½ø³ÌÔÚÊÔͼ·ÃÎÊÒ»¸ö²»´æÔÚµÄÐéÄâµØÖ·¡£Õâ¿ÉÄÜÊÇÓ¦ÓóÌÐò³ö´í¶øÒýÆðµÄ£¬ÀýÈçËüÊÔͼ¶ÔÄÚ´æ½øÐÐÒ»¸öËæ»úµÄд²Ù×÷¡£´Ëʱ²Ù×÷ϵͳ½«ÖÕÖ¹´ËÓ¦ÓõÄÔËÐÐÒÔ±£»¤ÏµÍ³ÖÐÆäËû½ø³Ì²»Êܴ˳ö´í½ø³ÌµÄÓ°Ïì¡£

Èç¹û³ö´íÐéÄâµØÖ·ÊÇÓÐЧµÄ£¬µ«ÊÇËüÖ¸ÏòµÄÒ³Ãæµ±Ç°²»ÔÚÄÚ´æÖУ¬Ôò²Ù×÷ϵͳ±ØÐ뽫´ËÒ³Ãæ´Ó´ÅÅÌÓ³ÏóÖжÁÈëµ½ÄÚ´æÖÐÀ´¡£ÓÉÓÚ·ÃÅÌʱ¼ä½Ï³¤£¬½ø³Ì±ØÐëµÈ´ýÒ»¶Îʱ¼äÖ±µ½Ò³Ã汻ȡ³öÀ´¡£Èç¹ûϵͳÖл¹´æÔÚÆäËû½ø³Ì£¬²Ù×÷ϵͳ¾Í»áÔÚ¶ÁÈ¡Ò³Ãæ¹ý³ÌÖеĵȴý¹ý³ÌÖÐÑ¡ÔñÆäÖÐÖ®Ò»À´ÔËÐС£¶ÁÈ¡»ØÀ´µÄÒ³Ãæ½«±»·ÅÔÚÒ»¸ö¿ÕÏеÄÎïÀíÒ³Ãæ¿òÖУ¬Í¬Ê±´Ë½ø³ÌµÄÒ³±íÖн«Ìí¼Ó¶ÔÓ¦´ËÐéÄâÒ³Ãæ¿òºÅµÄÈë¿Ú¡£×îºó½ø³Ì½«´Ó·¢ÉúÒ³Ãæ´íÎóµÄµØ·½ÖØÐ¿ªÊ¼ÔËÐС£´ËʱÕû¸öÐéÄâÄÚ´æ·ÃÎʹý³Ì¸æÒ»¶ÎÂ䣬´¦ÀíÆ÷ÓÖ¿ÉÒÔ¼ÌÐø½øÐÐÐéÄâµØÖ·µ½ÎïÀíµØÖ·×ª»»£¬¶ø½ø³ÌÒ²µÃÒÔ¼ÌÐøÔËÐС£

LinuxʹÓÃÇëÇó»»Ò³½«¿ÉÖ´ÐÐÓ³Ïó¼ÓÔØµ½½ø³ÌµÄÐéÄâÄÚ´æÖС£µ±ÃüÁîÖ´ÐÐʱ£¬¿ÉÖ´ÐеÄÃüÁîÎļþ±»´ò¿ª£¬Í¬Ê±ÆäÄÚÈݱ»Ó³Éäµ½½ø³ÌµÄÐéÄâÄÚ´æ¡£ÕâЩ²Ù×÷ÊÇͨ¹ýÐÞ¸ÄÃèÐð½ø³ÌÄÚ´æÓ³ÏóµÄÊý¾Ý½á¹¹À´Íê³ÉµÄ£¬´Ë¹ý³Ì³ÆÎªÄÚ´æÓ³É䡣Ȼ¶øÖ»ÓÐÓ³ÏóµÄÆðʼ²¿·Ö±»µ÷ÈëÎïÀíÄڴ棬ÆäÓಿ·ÖÈÔÈ»ÁôÔÚ´ÅÅÌÉÏ¡£µ±Ó³ÏóÖ´ÐÐʱ£¬Ëü»á²úÉúÒ³Ãæ´íÎó£¬ÕâÑùLinux½«¾ö¶¨½«´ÅÅÌÉÏÄÄЩ²¿·Öµ÷ÈëÄÚ´æ¼ÌÐøÖ´ÐС£

3.1.2 ½»»»

Èç¹û½ø³ÌÐèÒª°ÑÒ»¸öÐéÄâÒ³Ãæµ÷ÈëÎïÀíÄÚ´æ¶øÕýºÃϵͳÖÐûÓпÕÏеÄÎïÀíÒ³Ãæ£¬²Ù×÷ϵͳ±ØÐ붪ÆúλÓÚÎïÀíÄÚ´æÖеÄÄ³Ð©Ò³ÃæÀ´ÎªÖ®ÌÚ³ö¿Õ¼ä¡£

Èç¹ûÄÇЩ´ÓÎïÀíÄÚ´æÖжªÆú³öÀ´µÄÒ³ÃæÀ´×ÔÓÚ´ÅÅÌÉϵĿÉÖ´ÐÐÎļþ»òÕßÊý¾ÝÎļþ£¬²¢ÇÒûÓÐÐ޸ĹýÔò²»ÐèÒª±£´æÄÇÐ©Ò³Ãæ¡£µ±½ø³ÌÔÙ´ÎÐèÒª´ËÒ³ÃæÊ±£¬Ö±½Ó´Ó¿ÉÖ´ÐÐÎļþ»òÕßÊý¾ÝÎļþÖжÁ³ö¡£

µ«ÊÇÈç¹ûÒ³Ãæ±»Ð޸Ĺý£¬Ôò²Ù×÷ϵͳ±ØÐë±£ÁôÒ³ÃæµÄÄÚÈÝÒÔ±¸ÔٴηÃÎÊ¡£ÕâÖÖÒ³Ãæ±»³ÆÎªdirtyÒ³Ãæ£¬ µ±´ÓÄÚ´æÖÐÒÆ³öÀ´Ê±£¬ËüÃDZØÐë±£´æÔÚ½Ð×ö½»»»ÎļþµÄÌØÊâÎļþÖС£Ïà¶ÔÓÚ´¦ÀíÆ÷ºÍÎïÀíÄÚ´æµÄËÙ¶È£¬·ÃÎʽ»»»ÎļþµÄËÙ¶ÈÊǷdz£»ºÂýµÄ£¬²Ù×÷ϵͳ±ØÐëÔÚ½«ÕâЩdirtyÒ³ÃæÐ´Èë´ÅÅ̺ͽ«Æä¼ÌÐø±£ÁôÔÚÄÚ´æÖÐ×ö³öÑ¡Ôñ¡£

Ñ¡Ôñ¶ªÆúÒ³ÃæµÄËã·¨¾­³£ÐèÒªÅжÏÄÄÐ©Ò³ÃæÒª¶ªÆú»òÕß½»»»£¬Èç¹û½»»»Ë㷨ЧÂʺܵͣ¬Ôò»á·¢Éú"µßô¤"ÏÖÏó¡£ÔÚÕâÖÖÇé¿öÏ£¬Ò³Ãæ²»¶ÏµÄ±»Ð´Èë´ÅÅÌÓÖ´Ó´ÅÅÌÖжÁ»ØÀ´£¬ÕâÑùÒ»À´²Ù×÷ϵͳ¾ÍÎÞ·¨½øÐÐÆäËûÈκι¤×÷¡£ÒÔͼ3.1ΪÀý£¬Èç¹ûÎïÀíÒ³Ãæ¿òºÅ1±»Æµ·±Ê¹Óã¬ÔòÒ³Ãæ¶ªÆúËã·¨½«Æä×÷Ϊ½»»»µ½Ó²Å̵ĺîÑ¡ÕßÊDz»Ç¡µ±µÄ¡£Ò»¸ö½ø³Ìµ±Ç°¾­³£Ê¹ÓõÄÒ³Ãæ¼¯ºÏ½Ð×ö¹¤×÷¼¯¡£¸ßЧµÄ½»»»²ßÂÔÄܹ»È·±£ËùÓнø³ÌµÄ¹¤×÷¼¯±£´æÔÚÎïÀíÄÚ´æÖС£

LinuxʹÓÃ×î½ü×îÉÙʹÓã¨LRU£©Ò³ÃæË¥ÀÏËã·¨À´¹«Æ½µØÑ¡Ôñ½«Òª´ÓϵͳÖÐÅׯúµÄÒ³Ãæ¡£ÕâÖÖ²ßÂÔΪϵͳÖеÄÿ¸öÒ³ÃæÉèÖÃÒ»¸öÄêÁ䣬ËüËæÒ³Ãæ·ÃÎÊ´ÎÊý¶ø±ä»¯¡£Ò³Ãæ±»·ÃÎʵĴÎÊýÔ½¶àÔòÒ³ÃæÄêÁäÔ½ÄêÇ᣻Ïà·´ÔòԽ˥ÀÏ¡£ÄêÁä½ÏÀϵÄÒ³ÃæÊÇ´ý½»»»Ò³ÃæµÄ×î¼ÑºîÑ¡Õß¡£

 

3.1.3  ¹²ÏíÐéÄâÄÚ´æ

ÐéÄâÄÚ´æÈöà¸ö½ø³ÌÖ®¼ä¿ÉÒÔ·½±ãµØ¹²ÏíÄÚ´æ¡£ËùÓеÄÄÚ´æ·ÃÎʶ¼ÊÇͨ¹ýÿ¸ö½ø³Ì×ÔÉíµÄÒ³±í½øÐС£¶ÔÓÚÁ½¸ö¹²ÏíͬһÎïÀíÒ³ÃæµÄ½ø³Ì£¬ÔÚ¸÷×ÔµÄÒ³±íÖбØÐë°üº¬ÓÐÖ¸ÏòÕâÒ»ÎïÀíÒ³Ãæ¿òºÅµÄÒ³±íÈë¿Ú¡£

ͼ3.1ÖÐÁ½¸ö½ø³Ì¹²ÏíÎïÀíÒ³Ãæ¿òºÅ4¡£¶Ô½ø³ÌXÀ´ËµÆä¶ÔÓ¦µÄÐéÄâÒ³Ãæ¿òºÅΪ4¶ø½ø³ÌYµÄΪ6¡£Õâ¸öÓÐȤµÄÏÖÏó˵Ã÷£º¹²ÏíÎïÀíÒ³ÃæµÄ½ø³Ì¶ÔÓ¦´ËÒ³ÃæµÄÐéÄâÄÚ´æÎ»ÖÿÉÒÔ²»Í¬¡£

 

3.1.4  ÎïÀíÓëÐéÄâѰַģʽ

²Ù×÷ϵͳ×ÔÉíÒ²ÔËÐÐÔÚÐéÄâÄÚ´æÖеÄÒâÒå²»´ó¡£Èç¹û²Ù×÷ϵͳ±»ÆÈά»¤×ÔÉíµÄÒ³±íÄǽ«ÊÇÒ»¸öÁîÈ˶ñÐĵķ½°¸¡£¶àÊýͨÓô¦ÀíÆ÷ͬʱ֧³ÖÎïÀíѰַºÍÐéÄâѰַģʽ¡£ÎïÀíѰַģʽÎÞÐèÒ³±íµÄ²ÎÓëÇÒ´¦ÀíÆ÷²»»á½øÐÐÈκεØÖ·×ª»»¡£LinuxºËÐÄÖ±½ÓÔËÐÐÔÚÎïÀíµØÖ·¿Õ¼äÉÏ¡£

Alpha AXP´¦ÀíÆ÷ûÓÐÌØÊâµÄÎïÀíѰַģʽ¡£Ëü½«ÄÚ´æ¿Õ¼ä»®·ÖΪ¼¸¸öÇøÓò²¢½«ÆäÖÐÁ½¸öÖ¸¶¨ÎªÎïÀíÓ³É䵨ַ¡£ºËÐĵØÖ·¿Õ¼ä±»³ÆÎªKSEGµØÖ·¿Õ¼ä£¬ËüλÓÚµØÖ·0xfffffc0000000000ÒÔÉÏÇøÓò¡£ÎªÁËÖ´ÐÐλÓÚKSEGµÄºËÐÄ´úÂë»ò·ÃÎÊÄÇÀïµÄÊý¾Ý£¬´úÂë±ØÐëÔÚºËÐÄģʽÏÂÖ´ÐС£AlphaÉϵÄLinuxºËÐÄ´ÓµØÖ·0xfffffc0000310000¿ªÊ¼Ö´ÐÐ.

 

3.1.5  ·ÃÎÊ¿ØÖÆ

Ò³±íÈë¿Ú°üº¬ÁË·ÃÎÊ¿ØÖÆÐÅÏ¢¡£ÓÉÓÚ´¦ÀíÆ÷ÒѾ­½«Ò³±íÈë¿Ú×÷ΪÐéÄâµØÖ·µ½ÎïÀíµØÖ·µÄÓ³É䣬ÄÇô¿ÉÒԺܷ½±ãµØÊ¹Ó÷ÃÎÊ¿ØÖÆÐÅÏ¢À´Åжϴ¦ÀíÆ÷ÊÇ·ñÔÚÒÔÆäÓ¦Óеķ½Ê½À´·ÃÎÊÄÚ´æ¡£

Öî¶àÒòËØÊ¹µÃÓбØÒªÑϸñ¿ØÖƶÔÄÚ´æÇøÓòµÄ·ÃÎÊ¡£ÓÐЩÄڴ棬Èç°üº¬Ö´ÐдúÂëµÄ²¿·Ö£¬ÏÔȻӦ¸ÃÊÇÖ»¶ÁµÄ£¬²Ù×÷ϵͳ¾ö²»ÄÜÔÊÐí½ø³Ì¶Ô´ËÇøÓòµÄд²Ù×÷¡£Ïà·´°üº¬Êý¾ÝµÄÒ³ÃæÓ¦¸ÃÊÇ¿ÉдµÄ£¬ µ«ÊÇÈ¥Ö´ÐÐÕâ¶ÎÊý¾Ý¿Ï¶¨½«µ¼Ö´íÎó·¢Éú¡£¶àÊý´¦ÀíÆ÷ÖÁÉÙÓÐÁ½ÖÖÖ´Ðз½Ê½£ººËÐÄ̬ÓëÓû§Ì¬¡£ÈκÎÈ˶¼²»»áÔÊÐíÔÚÓû§Ì¬ÏÂÖ´ÐкËÐÄ´úÂë»òÕßÔÚÓû§Ì¬ÏÂÐ޸ĺËÐÄÊý¾Ý½á¹¹¡£

 


ͼ3.2 Alpha AXPÒ³±íÈë¿Ú

Ò³±íÈë¿ÚÖеķÃÎÊ¿ØÖÆÐÅÏ¢ÊÇ´¦ÀíÆ÷Ïà¹ØµÄ£»Í¼3.2ÊÇAlpha AXP´¦ÀíÆ÷µÄPTE(Page Table Entry)¡£ÕâЩλÓòµÄº¬ÒåÈçÏ£º

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 Ò³±í


ͼ3.3 LinuxµÄÈý¼¶Ò³±í½á¹¹

Linux×ÜÊǼٶ¨´¦ÀíÆ÷ÓÐÈý¼¶Ò³±í¡£Ã¿¸öÒ³±íͨ¹ýËù°üº¬µÄϼ¶Ò³±íµÄÒ³Ãæ¿òºÅÀ´·ÃÎÊ¡£Í¼3.3¸ø³öÁËÐéÄâµØÖ·ÊÇÈçºÎ·Ö¸î³É¶à¸öÓòµÄ£¬Ã¿¸öÓòÌṩÁË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-figure»­³öÁË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µÄ´ÎÃÝËùÒÔ·Ö¸î¹ý³ÌÊ®·Ö¼òµ¥¡£¿ÕÏп鱻Á¬½øÏàÓ¦µÄ¶ÓÁжøÕâ¸öÒ³Ãæ¿é±»·ÖÅ䏸µ÷ÓÃÕß¡£


ͼ3.4 free_areaÊý¾Ý½á¹¹

ÔÚͼ3.4ÖУ¬µ±ÏµÍ³ÖÐÓдóСΪÁ½¸öÒ³Ãæ¿éµÄÇëÇó·¢³öʱ£¬µÚÒ»¸ö4Ò³Ãæ´óСµÄÄÚ´æ¿é£¨´ÓÒ³Ãæ¿òºÅ4¿ªÊ¼£©½«·Ö³ÉÁ½¸ö2Ò³Ãæ´óСµÄ¿é¡£Ç°Ò»¸ö£¬´ÓÒ³Ãæ¿òºÅ4¿ªÊ¼µÄ£¬½«·ÖÅä³öÈ¥·µ»Ø¸øÇëÇóÕߣ¬¶øºóÒ»¸ö£¬´ÓÒ³Ãæ¿òºÅ6¿ªÊ¼£¬½«±»Ìí¼Óµ½free_areaÊý×éÖбíʾÁ½¸öÒ³Ãæ´óСµÄ¿ÕÏпéµÄÔªËØ1ÖС£

3.4.2  Ò³Ãæ»ØÊÕ

½«´óµÄÒ³Ãæ¿é´òËé½øÐзÖÅ佫Ôö¼ÓϵͳÖÐÁãËé¿ÕÏÐÒ³Ãæ¿éµÄÊýÄ¿¡£Ò³Ãæ»ØÊÕ´úÂëÔÚÊʵ±Ê±»úÏÂÒª½«ÕâÐ©Ò³Ãæ½áºÏÆðÀ´Ðγɵ¥Ò»´óÒ³Ãæ¿é¡£ÊÂʵÉÏÒ³Ãæ¿é´óС¾ö¶¨ÁËÒ³ÃæÖØÐÂ×éºÏµÄÄÑÒ׳̶ȡ£

µ±Ò³Ãæ¿é±»ÊÍ·Åʱ£¬´úÂ뽫¼ì²éÊÇ·ñÓÐÏàͬ´óСµÄÏàÁÚ»òÕßbuddyÄÚ´æ¿é´æÔÚ¡£Èç¹ûÓУ¬Ôò½«ËüÃǽáºÏÆðÀ´ÐγÉÒ»¸ö´óСΪԭÀ´Á½±¶µÄпÕÏп顣ÿ´Î½áºÏÍêÖ®ºó£¬´úÂ뻹Ҫ¼ì²éÊÇ·ñ¿ÉÒÔ¼ÌÐøºÏ²¢³É¸ü´óµÄÒ³Ãæ¡£×î¼ÑÇé¿öÊÇϵͳµÄ¿ÕÏÐÒ³Ãæ¿é½«ºÍÔÊÐí·ÖÅäµÄ×î´óÄÚ´æÒ»Ñù´ó¡£

ÔÚͼ3.4ÖУ¬Èç¹ûÊÍ·ÅÒ³Ãæ¿òºÅ1£¬Ëü½«ºÍ¿ÕÏÐÒ³Ãæ¿òºÅ0½áºÏ×÷Ϊ´óСΪ2¸öÒ³ÃæµÄ¿ÕÏпéÅÅÈëfree_areaµÄµÚÒ»¸öÔªËØÖС£

3.5  ÄÚ´æÓ³Éä

Ó³ÏóÖ´ÐÐʱ£¬¿ÉÖ´ÐÐÓ³ÏóµÄÄÚÈݽ«±»µ÷Èë½ø³ÌÐéÄâµØÖ·¿Õ¼äÖС£¿ÉÖ´ÐÐÓ³ÏóʹÓõĹ²Ïí¿âͬÑùÈç´Ë¡£È»¶ø¿ÉÖ´ÐÐÎļþʵ¼ÊÉϲ¢Ã»Óе÷ÈëÎïÀíÄڴ棬¶øÊǽö½öÁ¬½Óµ½½ø³ÌµÄÐéÄâÄÚ´æ¡£µ±³ÌÐòµÄÆäËû²¿·ÖÔËÐÐʱÒýÓõ½Õⲿ·Öʱ²Å°ÑËüÃÇ´Ó´ÅÅÌÉϵ÷ÈëÄÚ´æ¡£½«Ó³ÏóÁ¬½Óµ½½ø³ÌÐéÄâµØÖ·¿Õ¼äµÄ¹ý³Ì³ÆÎªÄÚ´æÓ³Éä¡£


ͼ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½«µ÷ÓÃËü¡£

Ò»°ãLinux nopageº¯Êý±»ÓÃÀ´´¦ÀíÄÚ´æÓ³Éä¿ÉÖ´ÐÐÓ³Ïó£¬Í¬Ê±ËüʹÓÃÒ³Ãæcache½«ÇëÇóµÄÒ³Ãæµ÷ÈëÎïÀíÄÚ´æÖÐÈ¥¡£

µ±ÇëÇóµÄÒ³Ãæµ÷ÈëÎïÀíÄÚ´æÊ±£¬´¦ÀíÆ÷Ò³±íÒ²±ØÐë¸üС£¸üÐÂÕâЩÈë¿Ú±ØÐë½øÐÐÏà¹ØÓ²¼þ²Ù×÷£¬ÌرðÊÇ´¦ÀíÆ÷ʹÓÃTLBʱ¡£ÕâÑùµ±Ò³ÃæÊ§Ð§±»´¦ÀíÍê±Ïºó£¬½ø³Ì½«´Ó·¢ÉúʧЧÐéÄâÄÚ´æ·ÃÎʵÄλÖÃÖØÐ¿ªÊ¼ÔËÐС£

3.7  LinuxÒ³Ãæcache


ͼ3.6 LinuxÒ³ÃæCache

LinuxʹÓÃÒ³ÃæcacheµÄÄ¿µÄÊǼӿì¶Ô´ÅÅÌÉÏÎļþµÄ·ÃÎÊ¡£ÄÚ´æÓ³ÉäÎļþÒÔÿ´ÎÒ»Ò³µÄ·½Ê½¶Á³ö²¢½«ÕâÐ©Ò³Ãæ´æ´¢ÔÚÒ³ÃæcacheÖС£Í¼3.6±íÃ÷Ò³ÃæcacheÓÉpage_hash_table£¬Ö¸Ïòmem_map_tÊý¾Ý½á¹¹µÄÖ¸ÕëÊý×é×é³É¡£

LinuxÖеÄÿ¸öÎļþͨ¹ýÒ»¸öVFS inode£¨ÔÚÎļþϵͳһÕÂÖн²Ðð£©Êý¾Ý½á¹¹À´±êʶ²¢ÇÒÿ¸öVFS inode¶¼ÊÇΨһµÄ£¬Ëü¿ÉÒÔ²¢½ö¿ÉÒÔÃèÐðÒ»¸öÎļþ¡£Ò³±íµÄË÷Òý´ÓÎļþµÄVFS inodeºÍÎļþµÄÆ«ÒÆÖÐÅÉÉú³öÀ´¡£

´ÓÒ»¸öÄÚ´æÓ³ÉäÎļþÖжÁ³öÒ³Ãæ£¬ÀýÈç²úÉú»»Ò³ÇëÇóʱҪ½«Ò³Ãæ¶Á»ØÄÚ´æÖУ¬ÏµÍ³³¢ÊÔ´ÓÒ³Ãæ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ÒÔÏÂʱ£¬ºËÐĽ»»»ºǫ́½ø³Ì½«Í¨¹ýÈý¸ö;¾¶À´¼õÉÙϵͳÖÐʹÓõÄÎïÀíÒ³ÃæµÄ¸öÊý£º

Èç¹ûϵͳÖпÕÏÐÒ³ÃæÊýµÍÓÚ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Ò³ÃæÊý×éÖеÄÒ³Ãæ¿é¿´ÊÇ·ñÓпÉÒÔ´ÓÎïÀíÄÚ´æÖжªÆú³öÈ¥µÄ¡£µ±ÏµÍ³ÖеĿÕÏÐÒ³ÃæÊý½µµÍ µ½Ò»¸öΣÏÕˮƽʱ£¬ºËÐĺǫ́½»»»½ø³ÌƵ·±½øÐн»»»£¬Ôò¼ì²éµÄÒ³Ãæ¿éÒ»°ã±È½Ï´ó¡£¼ì²éµÄ·½Ê½ÎªÂÖת£¬Ã¿´ÎÊÔͼѹËõÄÚ´æÓ³Ïóʱ£¬ºËÐĺǫ́½»»»½ø³Ì×ÜÊǼì²é²»Í¬µÄÒ³Ãæ¿é¡£ÕâÊÇÖÚËùÖÜÖªµÄclockËã·¨£¬Ã¿´ÎÔÚÕû¸ömem_mapÒ³ÃæÊý×éÖжÔÒ³Ãæ½øÐмì²é¡£

ºËÐĺǫ́½»»»½ø³Ì½«¼ì²éÿ¸öÒ³Ãæ¿´ÊÇ·ñÒѾ­±»page cache»òÕßbuffer cache»º³å¡£¶ÁÕß¿ÉÄÜÒѾ­×¢Òâµ½¹²ÏíÒ³Ãæ²»ÔÚ±»¿¼ÂǶªÆúµÄÒ³ÃæÖ®ÁУ¬ÕâÖÖÒ³Ãæ²»»áͬʱ³öÏÖÔÚÕâÁ½ÖÖcacheÖС£Èç¹ûÒ³Ãæ²»ÔÚÕâÁ½ÕßÖÐÈκÎÒ»ÖÖÖ®ÖÐʱ£¬Ëü½«¼ì²émem_mapÒ³ÃæÊý×éÖеÄÏÂÒ»¸öÒ³Ãæ¡£

»º´æÔÚbuffer cache(»òÕßÒ³ÃæÖеĻº³å±»»º´æ)ÖеÄÒ³Ãæ¿ÉÒÔʹ»º³å·ÖÅäºÍ»ØÊÕ¸ü¼ÓÓÐЧ¡£ÄÚ´æÑ¹Ëõ´úÂ뽫 Á¦Í¼ÊÍ·ÅÔÚÊܼìÒ³ÃæÖаüº¬µÄ»º³åÇø¡£

Èç¹ûÒ³ÃæÖаüº¬µÄËùÓлº³åÇø¶¼±»ÊÍ·Å£¬Õâ¸öÒ³ÃæÒ²½«±»ÊÍ·Å¡£Èç¹ûÊܼìÒ³ÃæÔÚLinuxµÄpage cacheÖУ¬ÔòËü»á´Ó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£¬Ã¿´ÎÒýÓÃÆäÄêÁ佫¼Ó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£¬Í¬Ê±ÆäÈë¿Ú´Óswap cacheÖÐɾ³ý¡£ Èç¹ûÒ³ÃæÃ»Óб»Ð´²¢ÇÒ±»ÒªÇóÖØÐ»»³ö£¬Linux¿ÉÒÔÃâ³ýÕâ´Îд£¬ÒòÎªÒ³ÃæÒѾ­´æÔÚÓÚ½»»»ÎļþÖС£

Èç¹ûÒýÆðÒ³Ãæ´Ó½»»»ÎļþÖжÁ³öµÄ²Ù×÷ÊÇд²Ù×÷£¬Õâ¸öÒ³Ãæ½«±»´Óswap cacheÖÐɾ³ý²¢ÇÒÆäÒ³±íÈë¿Ú±»±ê¼Ç ³ÉdirtyÇÒ¿Éд¡£


File translated from TEX by TTH, version 1.0.
Top of Chapter, Table of Contents, Show Frames, No Frames
© 1996-1999 David A Rusling copyright notice.