ä»®æ³ã¡ã¢ãªãããŒãžã£ã§ã¯ã空ãã¡ã¢ãªã倧éã«ããå Žåã¯ç°¡åã§ããããŒãžãã©ã«ããçºçããå ŽåãããªãŒããŒãžãªã¹ãã«ç©ºãããŒãžããããããããã©ãŒã«ãããŒãžã«å²ãåœãŠãŸãã
ã»ãšãã©ã®ã¡ã¢ãªã解æŸãããã°ãå°ãé¢çœãããšã«ãªããŸãããã®ãããªå Žåããã®ã¡ã¢ãªå§è¿«ã«ãããOSã¯åŒ·å¶çã«äœ¿çšãããããŒãžã®ããã®ã¹ããŒã¹ãäœãããã«ããŒãžãããŒãžã¢ãŠãããããšãéå§ããŸããè¿œæŸããããŒãž(ãŸãã¯ããŒãž)ã決å®ããããšã¯ãOSã®çœ®æããªã·ãŒå ã«ã«ãã»ã«åãããŠããŸããæŽå²çã«ã¯ãå€ãã·ã¹ãã ã§ã¯ç©çã¡ã¢ãªãã»ãšãã©ãªãã£ããããåæã®ä»®æ³ã¡ã¢ãªã·ã¹ãã ã§æãéèŠãªæ±ºå®ã®1ã€ã§ãããæå°éã«ãšã©ããŠãããšãããã¯ããå°ãç¥ã£ãŠãã䟡å€ãããé¢çœãããªã·ãŒã§ãã
THE CRUX: HOW TO DECIDE WHICH PAGE TO EVICT
OSã¯ãã©ã®ããŒãž(ãŸãã¯ããŒãž)ãã¡ã¢ãªããéå»ãããããOSã¯ã©ã®ããã«æ±ºå®ã§ããŸããïŒãã®æ±ºå®ã¯ã·ã¹ãã ã®çœ®ãæãæ¹éã«ãã£ãŠè¡ãããŸããã·ã¹ãã ã®çœ®ãæãæ¹éã¯ãäžè¬çãªåå(äžèšåç §)ã«åŸããŸãããåã£ãå Žåã®æ¯ãèããé¿ããããã®èª¿æŽãå«ãŸããŠããŸãã
ããªã·ãŒã«å ¥ãåã«ãæã ããŸã解決ããããšããŠããåé¡ã«ã€ããŠãã詳ãã説æããŸããã¡ã€ã³ã¡ã¢ãªã«ã¯ãã·ã¹ãã å ã®ãã¹ãŠã®ããŒãžã®ãµãã»ãããæ ŒçŽãããŠãããããã·ã¹ãã å ã®ä»®æ³ã¡ã¢ãªããŒãžã®ãã£ãã·ã¥ãšèŠãªãããšãã§ããŸããåŸã£ãŠããã®ãã£ãã·ã¥ã®ããã®çœ®æããªã·ãŒãéžã¶ããšã«ãããæã ã®ç®æšã¯ããã£ãã·ã¥ãã¹ã®æ°ãæå°éã«ããããšãããªãã¡ããã£ã¹ã¯ããããŒãžããã§ããããåæ°ãæå°ã«ããããšã§ãããããã¯ããã£ãã·ã¥ãããã®æ°ãããªãã¡ã¢ã¯ã»ã¹ãããããŒãžãã¡ã¢ãªå ã«èŠã€ãã£ãåæ°ãæ倧ã«ãããšããç®æšã«ãªããŸãã
ãã£ãã·ã¥ãããæ°ãšãã¹æ°ãç¥ãããšã§ãããã°ã©ã ã®average memory access time(AMAT)ãèšç®ã§ããŸã(ã¡ããªãã¯ã³ã³ãã¥ãŒã¿ã¢ãŒããã¯ãã¯ããŒããŠã§ã¢ãã£ãã·ã¥ãèšç®ããŸã[HP06])å ·äœçã«ã¯ããããã®å€ãèæ ®ããŠã次ã®ããã«ããã°ã©ã ã®AMATãèšç®ããããšãã§ããŸãã
ããã§ãTMã¯ã¡ã¢ãªã«ã¢ã¯ã»ã¹ããã³ã¹ããTDã¯ãã£ã¹ã¯ã«ã¢ã¯ã»ã¹ããã³ã¹ããPMã¯ãã£ãã·ã¥å ã®ããŒã¿ãèŠã€ããããªã確ç(ãã¹)ã瀺ããŸããPMissã¯0.0ãã1.0ãŸã§å€åãã確ç(äŸãã°ã10ïŒ ã®ãã¹çã¯PMiss = 0.10ãæå³ãã)ã§ã¯ãªããããŒã»ã³ããã¹çãåç §ããããšããããŸããåžžã«ã¡ã¢ãªå ã®ããŒã¿ã«ã¢ã¯ã»ã¹ããã³ã¹ããæ¯æãããšã«æ³šæããŠãã ãããããã«ãèŠéãããšãã«ã¯ããã£ã¹ã¯ããããŒã¿ãåãåºãããã®ã³ã¹ããããã«æ¯æããªããã°ãªããŸããã
ããšãã°ã(å°ããª)ã¢ãã¬ã¹ç©ºéãæã€ãã·ã³(4KBã256ãã€ãããŒãž)ãæ³åããŠã¿ãŸãããããããã£ãŠãä»®æ³ã¢ãã¬ã¹ã«ã¯ã4ãããã®VPN(æäžäœããã)ãš8ãããã®ãªãã»ãã(æäžäœããã)ã®2ã€ã®ã³ã³ããŒãã³ãããããŸãããããã£ãŠããã®äŸã®ããã»ã¹ã¯ã24ãŸãã¯16ã®åèšä»®æ³ããŒãžã«ã¢ã¯ã»ã¹ã§ããŸãããã®äŸã§ã¯ãããã»ã¹ã¯ã0x000ã0x100ã0x200ã0x300ã0x400ã0x500ã0x600ã0x700ã0x800ã0x900ãšããã次ã®ã¡ã¢ãªåç §(ããªãã¡ãä»®æ³ã¢ãã¬ã¹)ãçæããŸãããããã®ä»®æ³ã¢ãã¬ã¹ã¯ãã¢ãã¬ã¹ç©ºéã®æåã®10åã®ããŒãžã®ããããã®æåã®ãã€ããæããŸã(ããŒãžçªå·ã¯åä»®æ³ã¢ãã¬ã¹ã®æåã®16é²æ°ã§ã)
ããã«ãä»®æ³ããŒãž3ãé€ããã¹ãŠã®ããŒãžãæ¢ã«ã¡ã¢ãªå ã«ãããšä»®å®ããŸãããããã£ãŠãã¡ã¢ãªåç §ã®ã·ãŒã±ã³ã¹ã¯ããããããããããããããã¹ããããããããããããããããããããããããã«ãªããŸãããããç(ã¡ã¢ãªå ã®åç §ã®å²å)ãèšç®ããããšãã§ããŸãããã®ãšãã90ïŒ ã®åç §ãã¡ã¢ãªã«æ ŒçŽãããŠããããã90ïŒ ã§ããåŸã£ãŠããã¹çã¯10ïŒ (PMiss = 0.1)ã§ããäžè¬ã«ãPHit + PMiss = 1.0;ãããç+ãã¹çåèšã100ïŒ ãšããŸãã
AMATãèšç®ããã«ã¯ãã¡ã¢ãªã«ã¢ã¯ã»ã¹ããã³ã¹ããšãã£ã¹ã¯ã«ã¢ã¯ã»ã¹ããã³ã¹ããç¥ãå¿ èŠããããŸããã¡ã¢ãª(TM)ã«ã¢ã¯ã»ã¹ããã³ã¹ããçŽ100ããç§ã§ããããã£ã¹ã¯(TD)ã«ã¢ã¯ã»ã¹ããã³ã¹ããçŽ10ããªç§ã§ãããšä»®å®ãããšã100ns + 1msãããªãã¡1.0001msã§ãã100ns + 0.1ã»10msãçŽ1ããªç§ã§ãããããçã99.9ïŒ (Pmiss = 0.001)ã ã£ãå ŽåãAMATã¯10.1ãã€ã¯ãç§ãã€ãŸãçŽ100åé«éã§ãããããçã100ïŒ ã«è¿ã¥ããšãAMATã¯100ããç§ã«è¿ã¥ããŸãã
æ®å¿µãªããããã®äŸã§åããããã«ããã£ã¹ã¯ã¢ã¯ã»ã¹ã®ã³ã¹ãã¯çŸä»£ã®ã·ã¹ãã ã§ã¯éåžžã«é«ããããããªãã¹çã§ãå®è¡äžã®ããã°ã©ã ã®AMATå šäœãããã«æ¯é ããŸããã§ããã ãå€ãã®ãã¹ãé¿ãããããã£ã¹ã¯ã®é床ã§ãã£ãããšå®è¡ããå¿ èŠããããŸãããããæå©ããã1ã€ã®æ¹æ³ã¯ãçŸåšè¡ã£ãŠããããã«ãåªããããªã·ãŒãæ éã«éçºããããšã§ãã
ç¹å®ã®çœ®æããªã·ãŒãã©ã®ããã«æ©èœããããããããç解ããã«ã¯ãå¯èœãªéãæè¯ã®çœ®æããªã·ãŒãšæ¯èŒããããšããå§ãããŸããçµå±ã®ãšããããã®ãããªæé©ãªããªã·ãŒã¯ãäœå¹Žãåã«Beladyã«ãã£ãŠéçºãããŸããB66æé©ãªçœ®æããªã·ãŒã¯ãå šäœãšããŠæå°ã®ãã¹æ°ã«ã€ãªãããŸããBeladyã¯ãå°æ¥æãé ãã«ã¢ã¯ã»ã¹ãããããŒãžã眮ãæããã·ã³ãã«ãª(ããããæ®å¿µãªããšã«å®è£ ãé£ãã)ã¢ãããŒãããæé©ãªããªã·ãŒã§ãããçµæãšããŠãã£ãã·ã¥ãã¹ãæå°éã«æããããããšã瀺ããŸããã
TIP: COMPARING AGAINST OPTIMAL IS USEFUL
æé©ãªæ¹éã¯ããŸãå®çšçã§ã¯ãããŸããããã·ãã¥ã¬ãŒã·ã§ã³ãä»ã®ç 究ã®æ¯èŒç¹ãšããŠã¯éåžžã«æçšã§ããããªããäœãæ¯èŒããã«æŽŸæãªæ°ããã¢ã«ãŽãªãºã ã80ïŒ ã®ãããçãæã£ãŠãããšããŠãæå³ããªããšããããšã§ããæé©ã¯82ïŒ ã®ãããçãéæãããšèšããŸã(ããªãã®æ°ããã¢ãããŒãã¯æé©ã«éåžžã«è¿ãã§ã)ãã®ãããæé©ãªãã®ãäœã§ããããç¥ãããšã§ãããè¯ãæ¯èŒãå®è¡ããæ¹åã®å¯èœæ§ãã©ããããããã®ããçæ³çãªããªã·ãŒã®æ¹åã«è¿ã¥ãããšãã§ããŸã[AD03]ã
ããŸãããã°ãæé©ãªããªã·ãŒã®èåŸã«ãããã®ã¯çã«ããªã£ãŠããŸããããã«ã€ããŠèããŠã¿ãŸããããããªããããã€ãã®ããŒãžãæãæšãŠãªããã°ãªããªãå Žåãæãã¢ã¯ã»ã¹ããå°æ¥ãé ãããŒãžãæãæšãŠãŸãããïŒããããããšã§ãæ¬è³ªçã«ããã£ãã·ã¥å ã®ä»ã®ãã¹ãŠã®ããŒãžããæãé ãããŒãžãããéèŠã§ãããšããããšã«ãªããŸãããããåœãŠã¯ãŸãçç±ã¯ç°¡åã§ããæãé ããã®ãåç §ããåã«ãä»ã®ããŒãžãåç §ããŸãã
æé©ãªããªã·ãŒããããã決å®ãç解ããããã®ç°¡åãªäŸããã©ã£ãŠã¿ãŸããããããã°ã©ã ã¯ã0,1,2,0,1,3,0,3,1,2,1ã®ä»®æ³ããŒãžã®æ¬¡ã®ã¹ããªãŒã ã«ã¢ã¯ã»ã¹ãããšä»®å®ããŸããå³22.1ã¯ã3ããŒãžã«åãŸããã£ãã·ã¥ãæ³å®ããæé©ãªåäœã瀺ããŠããŸãã
ãã®å³ã§ã¯ã次ã®æäœã確èªã§ããŸããæåã®3åã®ã¢ã¯ã»ã¹ã¯ããã£ãã·ã¥ã空ã®ç¶æ ã§éå§ããããããã¹ãããŠããŸãããã®ãããªãã¹ã¯ã³ãŒã«ãã¹ã¿ãŒããã¹(ãŸãã¯åŒ·å¶ãã¹)ãšåŒã°ããããšããããŸãã次ã«ããã£ãã·ã¥å ã§ãããããããŒãž0ãš1ãå床åç §ããŸããæåŸã«ãå¥ã®ãã¹(3ããŒãžç®)ã«éããŸãããä»åã¯ãã£ãã·ã¥ããã£ã±ãã§ããã€ãŸãã亀æãè¡ãããªããã°ãããŸãããã©ã¡ãã®ããŒãžã眮ãæããªããã°ãªããªãã®ãçåã«æãã§ããããæé©ãªããªã·ãŒã§ã¯ãçŸåšãã£ãã·ã¥å ã«ããåããŒãž(0,1,2)ã調ã¹ã0ãã»ãŒå³æã«ã¢ã¯ã»ã¹ããã1ãå°ãåŸã«ã¢ã¯ã»ã¹ããã2ãå°æ¥æãåŸã«ã¢ã¯ã»ã¹ãããããšã確èªããŸããã€ãŸããããŒãž2ãéãããŠããã£ãã·ã¥å ã®ããŒãž0,1,3ãçæããŸãã次ã®3ã€ã®åèæç®ã¯ãããã§ãããéå»ããããŒãž2ã®ãã¹ã§èŠããã§ããŸããããã§ãæé©ãªããªã·ãŒã¯ããã£ãã·ã¥å ã®åããŒãž(0,1ãããã³3)ã調ã¹ãããŒãž1(ã¢ã¯ã»ã¹ããããšããŠãã)ãè¿œãåºããªãéããåé¡ãããŸããããã®äŸã§ã¯ãããŒãž3ãåé€ãããŠããããšã瀺ãããŠããŸããã0ã§ãåé¡ãããŸãããæåŸã«ã1ããŒãžç®ã§ããããããã¬ãŒã¹ãå®äºããŸããã
ASIDE: TYPES OF CACHE MISSES
ã³ã³ãã¥ãŒã¿ã¢ãŒããã¯ãã£ãŒã®äžçã§ã¯ãèšèšè ã¯ã¿ã€ãããšã«ãã¹ã3ã€ã®ã«ããŽãªã®1ã€ã«ç¹åŸŽä»ããããšãæçšã§ããããšã瀺ããŠããŸããcompulsoryãcapacityãconflictã®ã¹ãªãŒC [H87]ãšåŒã°ããããšããããŸããäžã€ç®ã®åŒ·å¶çãªãã¹(ãŸãã¯ã³ãŒã«ãã¹ã¿ãŒããã¹[EF78])ãçºçããã®ã¯ããã£ãã·ã¥ãæåãã空ã§ããããããã¢ã€ãã ãžã®æåã®åç §ã§ããããã§ããäºã€ç®ã®å®¹éäžè¶³ã¯ããã£ãã·ã¥ã®å®¹éã足ããªããªããæ°ããã¢ã€ãã ããã£ãã·ã¥ã«æã¡èŸŒãããã«ã¢ã€ãã ãè¿œãåºãå¿ èŠãããããã«çºçããŸããäžã€ç®ã®ç«¶åãã¹ã¯ãããŒããŠã§ã¢ãã£ãã·ã¥å ã«ã¢ã€ãã ã眮ãããšãã§ããéçããããããããŒããŠã§ã¢ã§çºçããŸãããã®ãããªãã£ãã·ã¥ã¯åžžã«å®å šã«é£æ³çã§ããã€ãŸããã¡ã¢ãªå ã®ã©ãã«ããŒãžã眮ãããšãã§ãããã«å¶éããªãã®ã§ãOSããŒãžã»ãã£ãã·ã¥å ã§ã¯çºçããŸããã詳现ã¯HïŒPãåç §ããŠãã ãã[HP06]ã
ãã£ãã·ã¥ã®ãããçãèšç®ã§ããŸãããããçã¯6ããããš5ãããã§ããããçã¯(ããã)/(ããã+ãã¹)ã§ã(6)/(6 + 5)ãŸãã¯54.5ïŒ ã§ãããããçãæ³ãšãã匷å¶ãã¹ãèšç®ããããšãã§ããŸã(ã€ãŸããç¹å®ã®ããŒãžãžã®æåã®ãã¹ãç¡èŠãã)ããã®çµæããããçã¯85.7ïŒ ã«ãªããŸãã
æ®å¿µãªããã以åã«ã¹ã±ãžã¥ãŒãªã³ã°æ¹éã®çå®ã«ãããŠèŠãæãšåãããã«ãããŒãžã®å°æ¥ã¯äžè¬çã«ããããŸãããæ±çšãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®æé©ãªããªã·ãŒãæ§ç¯ããããšã¯ã§ããŸããããããã£ãŠãå®éã®å±éå¯èœãªããªã·ãŒãéçºããéã«ãã©ã®ããŒãžãéå»ããããã決ããä»ã®æ¹æ³ãèŠã€ããã¢ãããŒãã«çŠç¹ãåœãŠãŸãã
å€ãã®åæã®ã·ã¹ãã ã§ã¯ãæé©ãã€éçšãããéåžžã«åçŽãªä»£æ¿ããªã·ãŒã«è¿ã¥ãããšã®è€éããåé¿ãããŸãããããšãã°ãäžéšã®ã·ã¹ãã ã§ã¯ãFIFO(å å ¥ãå åºã)眮æã䜿çšãããŸãããããã§ã¯ãããŒãžã¯ã·ã¹ãã ã«å ¥ããšãã«åã«ãã¥ãŒã«å ¥ããããŸãã眮æãè¡ããããšããã¥ãŒã®æ«å°Ÿã®ããŒãž(ããã¡ãŒã¹ãã€ã³ãããŒãž)ãè¿œãåºãããŸããFIFOã«ã¯å€§ããªåŒ·ã¿ããããŸããå®è£ ãéåžžã«ç°¡åã§ãã
ãµã³ãã«åç §ã¹ããªãŒã ã§FIFOãã©ã®ããã«åäœãããã調ã¹ãŠã¿ãŸããã(å³22.2)ãããŒãž0ã1ã2ãžã®3åã®åŒ·å¶ãã¹ã§ãã¬ãŒã¹ãéå§ãã0ãš1ã®äž¡æ¹ã§ãããããŸãã次ã«ãããŒãž3ãåç §ããããã¹ãçºçããŸãã眮æã®æ±ºå®ã¯FIFOã§ç°¡åã§ãããæåã®ãã®ãã§ãã£ãããŒãžãéžæããŸã(å³ã®ãã£ãã·ã¥ç¶æ ã¯FIFOé ã§ãæåã®ããŒãžã¯å·Šã«ãããŸã)ãããã¯ããŒãž0ã§ããæ®å¿µãªããã次ã®ã¢ã¯ã»ã¹ã¯ããŒãž0ãžã®ãã®ã§ãããå¥ã®ãã¹ãšçœ®æ(ããŒãž1ã®)ãçºçããŸãããã®åŸã3ããŒãžç®ã«ãããããŸãããã1ãš2ã§ãã¹ããŠãæçµçã«3ã«ãªããŸããã
FIFOãæé©å€ãšæ¯èŒãããšãFIFOã¯èããæªåããŸããã€ãŸãããããçã¯36.4ïŒ (匷å¶ãã¹ãé€ããš57.1ïŒ )ã§ããFIFOã¯åã«ãããã¯ã®éèŠæ§ãå€æããããšã¯ã§ããŸãããããšãããŒãž0ãäœåºŠãã¢ã¯ã»ã¹ããããšããŠããFIFOã¯ã¡ã¢ãªã«åã蟌ãŸããæåã®ãã®ã ã£ãããã§ãã
ASIDE: BELADYâS ANOMALY
Belady(æé©æ¿çã®)ãšååãã¡ã¯ãäºæ³å€ã«è¡åããèå³æ·±ãåç §ã¹ããªãŒã ãèŠã€ããŸãã[BNS69]ãã¡ã¢ãªåç §ã¹ããªãŒã ã1,2,3,4,1,2,5,1,2,3,4,5ã ã£ããšããŸãããã圌ããç 究ããŠããã®ã¯ããã£ãã·ã¥ã»ãµã€ãºã3ãã4ããŒãžã«å€æŽããããšãã«ããã£ãã·ã¥ã»ãããçãã©ã®ããã«å€åãããã§ããäžè¬ã«ããã£ãã·ã¥ã倧ãããªããšããã£ãã·ã¥ã»ãããçãåäžãã(åäžãã)ããšãæåŸ ãããŸãããããããã®å ŽåãFIFOã§ã¯ãæªåããŸãïŒãã®è¡åã¯ãäžè¬çã«Belady's Anomaly(圌ã®å ±èè ã®è³èŸ)ãšåŒã°ããŠããŸãã
LRUãªã©ã®ä»ã®ããªã·ãŒã¯ããã®åé¡ãæ±ããŠããŸããããªãã§ããããïŒçµè«ãšããŠãLRUã«ã¯ã¹ã¿ãã¯ããããã£[M+70]ããããŸãããã®ããããã£ãæã€ã¢ã«ãŽãªãºã ã®å Žåããµã€ãºN + 1ã®ãã£ãã·ã¥ã«ã¯åœç¶ãµã€ãºNã®ãã£ãã·ã¥ã®å 容ãå«ãŸããŸãããããã£ãŠããã£ãã·ã¥ãµã€ãºãå¢ãããšããããçã¯å€ãããªããåäžããŸããFIFOãšã©ã³ãã (ãšããã)ã¯æããã«ã¹ã¿ãã¯ã®ããããã£ã«åŸããããããã£ãŠç°åžžãªåäœã®åœ±é¿ãåããããã§ãã
ãã1ã€ã®åæ§ã®çœ®æããªã·ãŒã¯Randomã§ããããã¯ã¡ã¢ãªäžè¶³ã®ããšã§çœ®æããã©ã³ãã ãªããŒãžãéžæããã ãã§ããã©ã³ãã ã¯FIFOã«äŒŒãæ§è³ªãæã£ãŠããŸããå®è£ ããã®ã¯ç°¡åã§ãããã©ã®ãããã¯ãåãé€ãããšãèãããšæé©ã§ã¯ãããŸãããç§ãã¡ã®æåãªäŸã®ãªãã¡ã¬ã³ã¹ã¹ããªãŒã ã§Randomãã©ããªãããèŠãŠã¿ãŸããã(å³22.3ãåç §)
ãã¡ãããã©ã³ãã ã¯ã©ã®ããã«å¹žéãª(ãŸãã¯äžéãª)ã©ã³ãã ããã®éžæè¢ã«å ¥ããã«å®å šã«äŸåããŸããäžèšã®äŸã§ã¯ãRandomã¯FIFOããå°ãè¯ããæé©ããå°ãå£ã£ãŠããŸããå®éã«ã¯ãç¡äœçºå®éšãäœååãå®è¡ãããããã©ã®ããã«äžè¬çã«è¡ããã決å®ããããšãã§ããŸããå³22.4ã¯ãç¡äœçºã®ã·ãŒãå€ãç°ãªã10,000件ã®è©Šè¡ã«å¯ŸããŠãç¡äœçºã«éæãããããæ°ã瀺ããŠããŸããããªããèŠãããšãã§ããããã«ãæã«ã¯(æéã®ããã40ïŒ ãéããŠ)ãã©ã³ãã ã¯æé©ãªã»ã©è¯ãããµã³ãã«ã®ãã¬ãŒã¹ã§6ããããéæããŸããæã«ã¯ããã¯2ããã以äžãéæãããªã©ãããã«æªåããå ŽåããããŸããã©ã³ãã ã¯æœéžã®éå¢ã«ãã£ãŠæ±ºãŸããŸãã
æ®å¿µãªããšã«ãFIFOãã©ã³ãã ãªã©ã®åçŽãªããªã·ãŒã¯å ±éã®åé¡ãæ±ããŠããå¯èœæ§ããããŸããéèŠãªããŒãžãå床åç §ãããå¯èœæ§ããããŸããFIFOã¯ãæåã«æã¡èŸŒãŸããããŒãžãããã¯ã¢ãŠãããŸãããããéèŠãªã³ãŒããããŒã¿æ§é ãæã€ããŒãžã§ããå Žåããã®ããŒãžã¯ãŸããªãããŒãžã³ã°ãããŸãããè¿œãåºãããŸãããããã£ãŠãFIFOãã©ã³ãã ãªã©ã®ããªã·ãŒã¯æé©ã«è¿ã¥ãããã«ãããŸãããããã¹ããŒããªãã®ãå¿ èŠã§ãã
ã¹ã±ãžã¥ãŒãªã³ã°æ¹éã§è¡ã£ãããã«ãå°æ¥ã®æšæž¬ãæ¹åããããã«ãå±¥æŽãèŠãŠã¿ãŸããããããšãã°ãããã°ã©ã ãè¿ãéå»ã«ããŒãžã«ã¢ã¯ã»ã¹ããå Žåãè¿ãå°æ¥ã«ããäžåºŠãã®ããŒãžã«ã¢ã¯ã»ã¹ããå¯èœæ§ããããŸãã
ããŒãžçœ®æããªã·ãŒã䜿çšã§ããå±¥æŽæ å ±ã®1ã€ã®ã¿ã€ãã¯é »åºŠã§ããããŒãžãäœåºŠãã¢ã¯ã»ã¹ãããŠããå Žåã¯ãæããã«äœããã®äŸ¡å€ãããã®ã§ã眮ãæããŠã¯ãããŸãããããäžã€ã¯ãã¢ã¯ã»ã¹ã®ææ°æ§ã§ããããæè¿ããŒãžã«ã¢ã¯ã»ã¹ããå Žåããããããããåã³ã¢ã¯ã»ã¹ãããå¯èœæ§ãé«ããªããŸãã
ãã®äžé£ã®ããªã·ãŒã¯ã人ã ãå°åã®åå[D70]ãšããŠèšåããŠãããã®ã«åºã¥ããŠãããåºæ¬çã«ã¯ããã°ã©ã ãšãã®è¡åã«ã€ããŠã®åãªãèŠè§£ã§ãããã®åçã¯ãããã°ã©ã ãããã³ãŒãã·ãŒã±ã³ã¹(äŸãã°ãã«ãŒãå )ããã³ããŒã¿æ§é (äŸãã°ãã«ãŒãã«ãã£ãŠã¢ã¯ã»ã¹ãããé å)ã«ããªãé »ç¹ã«ã¢ã¯ã»ã¹ããåŸåãããããšãç°¡åã«ç€ºããŠããŸãããããã£ãŠãã©ã®ããŒãžãéèŠã§ããããææ¡ããããã«å±¥æŽã䜿çšããŠããã®ããŒãžãè¿œãåºãæã«ã¡ã¢ãªã«ä¿åããŠããå¿ èŠããããŸãã
ãããŠãæŽå²çã«åçŽãªã¢ã«ãŽãªãºã ã®ãã¡ããªãŒãçãŸããŸãããæå°äœ¿çšé »åºŠã®é«ã(LFU)ããªã·ãŒã¯ãéå»ãçºçããªããã°ãªããªããšãã«æãé »ç¹ã«äœ¿çšãããªãããŒãžã眮ãæããŸããåæ§ã«ãLRU(Least Recently Used)ããªã·ãŒã¯ãæãæè¿äœ¿çšãããããŒãžã眮ãæããŸãããããã®ã¢ã«ãŽãªãºã ã¯ååãç¥ããšããããäœãããã®ãæ£ç¢ºã«åãããŸããããã¯ååã«ãšã£ãŠåªããç¹æ§ã§ããLRUãããããç解ããããã«ãLRUããµã³ãã«ã®åç §ã¹ããªãŒã ã§ã©ã®ããã«åäœãããã調ã¹ãŠã¿ãŸããããå³22.5ã«çµæã瀺ããŸãããã®å³ãããLRUãã©ã³ãã ãŸãã¯FIFOãªã©ã®å±¥æŽã®ãããªç¶æ ããªãããªã·ãŒãããåªããåŠçãè¡ãããã«ãå±¥æŽãã©ã®ããã«äœ¿çšã§ããããããããŸãããã®äŸã§ã¯ã0ãš1ãæè¿ã¢ã¯ã»ã¹ããããããLRUã¯æåã«ããŒãžã眮æããå¿ èŠããããšãã«ããŒãž2ãéå»ãããŸãã1ãš3ãæè¿ã¢ã¯ã»ã¹ããããããããŒãž0ã眮ãæããããŸããã©ã¡ãã®å Žåããå±¥æŽã«åºã¥ãLRUã®æ±ºå®ã¯æ£ãããšå€æãã次ã®åç §ã¯ãããããŸãããããã£ãŠãåçŽãªäŸã§ã¯ãLRUã¯ããã©ãŒãã³ã¹ãæé©ã«ããããã«ã§ããã ãå€ãã®ããšãè¡ããŸããæã ã¯ãŸãããããã®ã¢ã«ãŽãªãºã ã®å¯Ÿç«ãããã®ãååšããŸããããã¯ãMost Frequently Used(MFU)ããã³Most Recently Used(MRU)ã§ããã»ãšãã©ã®å Žå(ãã¹ãŠã§ã¯ãããŸãã)ããããã®ããªã·ãŒã¯ãã»ãšãã©ã®ããã°ã©ã ããããæ¡çšããã®ã§ã¯ãªãå±ææ§(ãã£ãã·ã¥ã®ç¶æ )ãç¡èŠãããããããŸãæ©èœããŸããã
ASIDE: TYPES OF LOCALITY
ããã°ã©ã ãåºçŸããåŸåãããå°åã«ã¯2ã€ã®ã¿ã€ãããããŸããäžã€ã¯ç©ºéçå±ææ§(spatial locality)ãšããŠç¥ãããŠãããããŒãžPãã¢ã¯ã»ã¹ãããå Žåããã®åšèŸºã®ããŒãž(äŸãã°ãP-1ãŸãã¯P + 1)ãã¢ã¯ã»ã¹ãããå¯èœæ§ãé«ãã§ããäºã€ç®ã¯ãæéçå±ææ§ã§ããã¢ã¯ã»ã¹ãããããŒãžã¯ãè¿ãå°æ¥åã³ã¢ã¯ã»ã¹ãããå¯èœæ§ããããŸãããã®ãããªããŒã«ã«æ§ãååšãããšä»®å®ãããšãããŒããŠã§ã¢ã·ã¹ãã ã®ãã£ãã·ã¥éå±€ã§å€§ããªåœ¹å²ãæãããŸããåœä»€ãããŒã¿ãã¢ãã¬ã¹å€æãã£ãã·ã¥ã®ã¬ãã«ãããŸããŸã«é åããŠãå±ææ§ãååšããå Žåã«ããã°ã©ã ãé«éã«å®è¡ã§ããŸãããã¡ãããå±ææ§ã®ååã¯ããã¹ãŠã®ããã°ã©ã ãåŸããªããã°ãªããªãå³ããèŠåã§ã¯ãããŸãããå®éãäžéšã®ããã°ã©ã ã¯ãã¡ã¢ãª(ãŸãã¯ãã£ã¹ã¯)ã«ãããã©ã³ãã ã«ã¢ã¯ã»ã¹ãããããã¢ã¯ã»ã¹ã¹ããªãŒã ã«å°ããå±ææ§ããããŸããããããã£ãŠãããããçš®é¡ã®ãã£ãã·ã¥(ããŒããŠã§ã¢ãŸãã¯ãœãããŠã§ã¢)ãèšèšããéã«å±ææ§ãèŠããŠããããšã¯è¯ãããšã§ãããæåãä¿èšŒãããã®ã§ã¯ãããŸãããããããããã¯ã³ã³ãã¥ãŒã¿ã·ã¹ãã ã®èšèšã«ãããŠæçšã§ããããšããã蚌æãããã®ããã¥ãŒãªã¹ãã£ãã¯ã§ãã
ãããã®ããªã·ãŒã®ããã€ãã®åäœãããããç解ããããã«ãäŸãèŠãŠã¿ãŸããããããã§ã¯ãå°ããªãã¬ãŒã¹ã§ã¯ãªããããè€éãªä»äºéã調ã¹ãŸãããããããããã®ä»äºéãããå€§å¹ ã«åçŽåãããŸããããè¯ãç 究ã«ã¯ã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã¹ãå«ãŸããŸãã
ç§ãã¡ã®æåã®ä»äºéã«ã¯å±ææ§ããããŸãããã€ãŸããååç §ã¯ã¢ã¯ã»ã¹ãããããŒãžã®ã»ããå ã®ã©ã³ãã ãªããŒãžã«ãªããŸãããã®åçŽãªäŸã§ã¯ãä»äºéã¯æéã®çµéãšãšãã«100ã®ãŠããŒã¯ãªããŒãžã«ã¢ã¯ã»ã¹ããã©ã³ãã ã«åç §ãã次ã®ããŒãžãéžæããŸããå šäœçã«10,000ããŒãžãã¢ã¯ã»ã¹ãããŸããå®éšã§ã¯ãåããªã·ãŒãã©ã®ãã£ãã·ã¥ãµã€ãºã®ç¯å²ã§ã©ã®ããã«åäœãããã確èªããããã«ããã£ãã·ã¥ãµã€ãºãéåžžã«å°ãã(1ããŒãž)ãããã¹ãŠã®åºæããŒãž(100ããŒãž)ãä¿æããã®ã«ååã«å€æŽããŠããŸãã
å³22.6ã¯ãæé©ãLRUãã©ã³ãã ãããã³FIFOã®å®éšçµæããããããããã®ã§ããå³ã®y軞ã¯ãåããªã·ãŒãéæãããããçã瀺ããŠããŸããx軞ã¯ãã£ãã·ã¥ãµã€ãºãå€æŽããŸãã
ã°ã©ãããããã€ãã®çµè«ãå°ãããšãã§ããŸãããŸããä»äºéã«å±ææ§ããªãå Žåãã©ã®çŸå®çãªããªã·ãŒã䜿çšããŠãããã¯éèŠã§ã¯ãããŸãããLRUãFIFOãããã³ã©ã³ãã ã¯ãã¹ãŠããã£ãã·ã¥ã®ãµã€ãºã«ãã£ãŠæ£ç¢ºã«æ±ºå®ããããããçã§åãåŠçãè¡ããŸãã第2ã«ããã£ãã·ã¥ãä»äºéå šäœã«é©åããããã«ååãªå€§ããã§ããã°ãã©ã®ããªã·ãŒã䜿çšãããã¯éèŠã§ã¯ãããŸãããåç §ããããã¹ãŠã®ãããã¯ããã£ãã·ã¥ã«åãŸããšããã¹ãŠã®ããªã·ãŒ(ã©ã³ãã ã§ãã)ã¯100ïŒ ã®ãããçã«åæããŸããæåŸã«ãæé©åãçŸå®çãªããªã·ãŒãããé¡èã«åªããŠããããšãããããŸããå¯èœã§ããã°ãå°æ¥ãèŠãŠãããè¯ãä»äºã眮ãæããŸãã
次ã®ä»äºéã¯ã80-20ãä»äºéãšåŒã°ããå±ææ§ã瀺ããŸããåç §ã®80ïŒ ã¯ããŒãžã®20ïŒ (ãããããããŒãž)ã«äœæãããŸããåç §ã®20ïŒ ã¯ããŒãžã®80ïŒ (ãã³ãŒã«ããããŒãž)ã«äœæãããŸããç§ãã¡ã®ä»äºéã«ã¯ããŠããŒã¯ãªããŒãžãåèš100åãããŸãããããã£ãŠããããããããŒãžã¯ã»ãšãã©ã®æéã«åç §ããããã³ãŒã«ããããŒãžã¯æ®ãã®ããŒãžã«åââç §ãããŸããå³22.7ã¯ããã®ä»äºéã§ããªã·ãŒãã©ã®ããã«æ©èœãããã瀺ããŠããŸããå³ãããããããã«ãã©ã³ãã ãšFIFOã®äž¡æ¹ãåççã«ããŸãããäžæ¹ã§ãLRUã¯ããããªããŒãžãä¿æããå¯èœæ§ãé«ããããããè¯ãçµæã瀺ããŸãããããã®ããŒãžã¯éå»ã«é »ç¹ã«åç §ãããŠãããããè¿ãå°æ¥åã³åç §ãããå¯èœæ§ããããŸããLRUã®å±¥æŽæ å ±ãå®ç§ã§ã¯ãªãããšã瀺ããŠããŸãã
ããã§çåã«æããããããŸãããã©ã³ãã ãšFIFOãšLRUã¯æ¬åœã«ããã»ã©å€§ããªãã¬ãŒããªãã§ããããïŒçãã¯ãã€ãã®ããã«ãããã¯äŸåããŠãããã§ãããã¹ãéåžžã«ã³ã¹ãããããå Žåããããçã®ããããªå¢å (ãã¹çã®äœäž)ã§ããããã©ãŒãã³ã¹ã«å€§ããªéããããããå¯èœæ§ããããŸãããã¹ãããã»ã©ã³ã¹ããããããªãå Žåããã¡ããLRUã®ã¡ãªããã¯ããã»ã©ãããŸããã
æçµçãªä»äºéãèŠãŠã¿ãŸããããããããé åºã«ãŒããä»äºéãšåŒã³ãŸããããã¯ã50ããŒãžãé çªã«åç §ããŠãããŸããã€ãŸãã0ãã1ã...ã49ããŒãžãŸã§é çªã«åç §ããŸããã«ãŒããç¹°ãè¿ããŠ50ããŒãžãžåèš10,000åã®ã¢ã¯ã»ã¹ãããŸããå³22.8ã®æåŸã®ã°ã©ãã¯ããã®ä»äºéã§ã®ããªã·ãŒã®åäœã瀺ããŠããŸãã
ãã®ä»äºéã¯ãå€ãã®ã¢ããªã±ãŒã·ã§ã³(ããŒã¿ããŒã¹[CD85]ãªã©ã®éèŠãªåçšã¢ããªã±ãŒã·ã§ã³ãå«ã)ã§äžè¬çã§ãããLRUãšFIFOã®äž¡æ¹ã§ææªã®ã±ãŒã¹ã§ãããããã®ã¢ã«ãŽãªãºã ã¯ãå€ãããŒãžãè¿œãåºããŸãããã®ãããä»äºéãã«ãŒãããæ§è³ªã®ããããããã®å€ãããŒãžã¯ãå°æ¥äœ¿ããããšããŠãããªã·ãŒããã£ãã·ã¥ã«ä¿æããŸãããå®éããµã€ãº49ã®ãã£ãã·ã¥ã䜿çšããŠãã50ããŒãžã®ã«ãŒãé ã®ä»äºéã§ã¯ãããçã¯0ïŒ ã«ãªããŸããèå³æ·±ãããšã«ãã©ã³ãã ãªããªã·ãŒã¯èããåªããŠãããæé©ã«è¿ã¥ããŠããŸããããå°ãªããšããŒã以å€ã®ãããçãéæããŠããŸããã©ã³ãã ã«ã¯çŽ æŽãããæ§è³ªãããããšãããããŸãã
ã芧ã®ããã«ãLRUãªã©ã®ã¢ã«ãŽãªãºã ã¯ãäžè¬çã«ãFIFOãã©ã³ãã ãªã©ã®åçŽãªããªã·ãŒãããåªããåŠçãè¡ããŸãããéèŠãªããŒãžãæšãŠãå¯èœæ§ããããŸããæ®å¿µãªããšã«ãå±¥æŽã®ããªã·ãŒã¯ç§ãã¡ã«æ°ããªææŠãæ瀺ããŸãã
ããšãã°ãLRUãåã£ãŠã¿ãŸããããå®å šã«å®è£ ããã«ã¯ãå€ãã®äœæ¥ãå¿ èŠã§ããå ·äœçã«ã¯ãåããŒãžã¢ã¯ã»ã¹(ããªãã¡ãåã¡ã¢ãªã¢ã¯ã»ã¹ãåœä»€ãã§ãããŸãã¯ããŒããŸãã¯ã¹ãã¢)ã«å¿ããŠããã®ããŒãžããªã¹ãã®åéš(ããªãã¡ãMRUåŽ)ã«ç§»åãããããã«ããã€ãã®ããŒã¿æ§é ãæŽæ°ããªããã°ãããŸããããããFIFOã«å¯Ÿæ¯ãããšãããŒãžã®FIFOãªã¹ãã¯ãããŒãžãåãé€ããããšã(æåã®ããŒãžãåãé€ãããšã«ãã£ãŠ)ã«ã¢ã¯ã»ã¹ããããšãããŸãã¯æ°ããããŒãžããªã¹ãã«è¿œå ããããšã(æåŸã®åŽã«)ã©ã®ããŒãžãæå°ã§æãæè¿ã«äœ¿çšãããã®ããææ¡ããããã«ãã·ã¹ãã ã¯ãã¹ãŠã®ã¡ã¢ãªåç §ã«å¯ŸããŠããã€ãã®ã¢ã«ãŠã³ãã£ã³ã°äœæ¥ãè¡ãå¿ èŠããããŸããæããã«ã现å¿ã®æ³šæãæãããšããããŸããããããããã®ãããªäžé£ã®åŠçã¯ããã©ãŒãã³ã¹ãå€§å¹ ã«äœäžãããå¯èœããããŸãã
ãããã¹ããŒãã¢ããããã®ã«åœ¹ç«ã€æ¹æ³ã®1ã€ã¯ãããŒããŠã§ã¢ã®ãµããŒããå°ãè¿œå ããããšã§ããäŸãã°ããã·ã³ã¯ãåããŒãžã®ã¢ã¯ã»ã¹æã«ã¡ã¢ãªå ã®time fieldsãæŽæ°ããããšãã§ããŸã(äŸãã°ãããã¯ããã»ã¹æ¯ã®ããŒãžããŒãã«å ã«ãã£ãŠãããããã¡ã¢ãªå ã®å¥åã®é åå ã«ãã£ãŠããããã·ã¹ãã ã®ç©çããŒãžæ¯ã«1ãšã³ããª)ãã€ãŸããããŒãžãã¢ã¯ã»ã¹ããããšããtime fieldsã¯ããŒããŠã§ã¢ã«ãã£ãŠçŸåšã®æéã«èšå®ãããŸãã次ã«ãããŒãžã眮æãããšããOSã¯ã·ã¹ãã å ã®ãã¹ãŠã®time fieldsãåã«èµ°æ»ããŠãæãæè¿ã«äœ¿çšãããããŒãžãèŠã€ããããšãã§ããŸãã
æ®å¿µãªããšã«ãã·ã¹ãã å ã®ããŒãžæ°ãå¢ããã«ã€ããŠãæãæè¿äœ¿çšãããŠããªãããŒãžãèŠã€ããããã«èšå€§ãªæ°ã®time fieldsãã¹ãã£ã³ããã®ã¯éåžžã«é«äŸ¡ã§ãã4GBã®ã¡ã¢ãªãæèŒããææ°ã®ãã·ã³ã4KBã®ããŒãžã«åãããšæ³åããŠãã ããããã®ãã·ã³ã«ã¯100äžããŒãžããããããææ°ã®CPUé床ã§ãã£ãŠããLRUããŒãžã®æ€çŽ¢ã«ã¯é·ãæéãããããŸããæ¬åœã«äº€æããæãå€ãããŒãžãèŠã€ããå¿ èŠãããã®ã§ããããïŒ
CRUX: HOW TO IMPLEMENT AN LRU REPLACEMENT POLICY
å®ç§ãªLRUãå®è£ ããã®ã«ã¯ã³ã¹ãããããããšãèããã®ã§ããã°ãäœããã®æ¹æ³ã§è¿äŒŒãããããšãã§ããŸããïŒ
çµè«ãšããŠã¯ãçãã¯ãã¯ããã§ããèšç®äžã®ãªãŒããŒãããã®èŠ³ç¹ãããLRUãè¿äŒŒããæ¹ãããçŸå®çã§ãããçŸä»£ã®å€ãã®ã·ã¹ãã ã§ã¯ããã§ããã¢ã€ãã¢ã¯ã䜿çšããã(ãªãã¡ã¬ã³ã¹ããããšåŒã°ããããšããããŸã)ã®åœ¢ã§ããŒããŠã§ã¢ãµããŒããå¿ èŠãšããŸããæåã®ãã®ã¯ãããŒãžã³ã°ä»ãã®æåã®ã·ã¹ãã ã§å®è£ ãããã¢ãã©ã¹onelevel store [KE+62]ã§ããã·ã¹ãã ã®1ããŒãžããã1ãããã®äœ¿çšããããããããã®äœ¿çšãããã¯ã©ããã®ã¡ã¢ãªã«ååšããŸã(ããšãã°ãããã»ã¹ããšã®ããŒãžããŒãã«å ããŸãã¯é åã®ã©ããã«ããå¯èœæ§ããããŸã)ãããŒãžãåç §ããã(ããªãã¡ãèªã¿æžãããã)ãšãã¯ãã€ãã䜿çšãããã¯ããŒããŠã§ã¢ã«ãã£ãŠ1ã«ã»ãããããŸããããŒããŠã§ã¢ã¯ãããã決ããŠã¯ãªã¢ããŸãã(ããªãã¡0ã«ã»ããããè¡çº)ããã¯ã¯ãªã¢ãè¡ãã®ã¯OSã®è²¬ä»»ã§ãã
OSã¯LRUãè¿äŒŒããããã«äœ¿çšããããã©ã®ããã«äœ¿çšããŸããïŒãŸããããããã®æ¹æ³ããããããããŸããããclock algorithm[C69]ã§ã¯åçŽãªpproachã1ã€ææ¡ãããŸãããã·ã¹ãã ã®ãã¹ãŠã®ããŒãžã埪ç°ãªã¹ãã«é 眮ãããŠãããšããŸããæèšã®éã¯ãæåã«ããã€ãã®ç¹å®ã®ããŒãžãæããŠããŸã(æ¬åœã«åé¡ãããŸãã)ã眮æãè¡ãããªããã°ãªããªãå ŽåãOSã¯ãçŸåšæ瀺ãããããŒãžPã«1ãŸãã¯0ã®äœ¿çšãããããããã©ããããã§ãã¯ããŸãã1ãªãã°ãããã¯ããŒãžPãæè¿äœ¿çšãããããšãæå³ãããããã£ãŠçœ®æã®ããã®è¯å¥œãªåè£ã§ã¯ãããŸããããããã£ãŠãPã®äœ¿çšãããã¯0(ã¯ãªã¢)ã«èšå®ãããã¯ããã¯ã»ãã³ãã¯æ¬¡ã®ããŒãž(P + 1)ã«ã€ã³ã¯ãªã¡ã³ããããŸããã¢ã«ãŽãªãºã ã¯ããã®ããŒãžãæè¿äœ¿çšãããŠããªãããšãæå³ãã0ã«èšå®ããã䜿çšããããèŠã€ãããŸã§ç¶ããŸã(ãŸãã¯ãææªã®å Žåããã¹ãŠã®ããŒãžã®æ€çŽ¢ãçµäºããã¹ãŠã®ã¯ãªã¢ãããã«ãªã£ãŠãã)
ãã®ã¢ãããŒãã¯ãLRUãè¿äŒŒããããã«äœ¿çšãããã䜿çšããå¯äžã®æ¹æ³ã§ã¯ãªãããšã«æ³šæããŠãã ãããå®éã«ã¯ã䜿çšããããå®æçã«ã¯ãªã¢ããŠãã©ã¡ãã®ããŒãžã1ãš0ã®äœ¿çšããããæã£ãŠããããåºå¥ããŠãã©ã¡ãã眮ãæãããã決ããã¢ãããŒãã¯åé¡ãããŸãããCorbatoã®ã¯ããã¯ã¢ã«ãŽãªãºã ã¯ãæåãåããåæã®ã¢ãããŒãã®1ã€ã§ãæªäœ¿çšã®ããŒãžãæ¢ããŠãããã¹ãŠã®ã¡ã¢ãªãç¹°ãè¿ãã¹ãã£ã³ããªããšããçŽ æŽãããç¹æ§ãæã£ãŠããŸããã
å³22.9ã«ã¯ããã¯ã¢ã«ãŽãªãºã ã®å€åœ¢äŸã®åäœã瀺ããŸãããã®å€åœ¢ã¯ã眮æãè¡ããšãã«ã©ã³ãã ã«ããŒãžãã¹ãã£ã³ããŸããåºæºãããã1ã«ã»ãããããããŒãžã«ééãããšãããããã¯ãªã¢ãã(ããªãã¡ãããã0ã«ã»ãããã)ãåç §ãããã0ã«èšå®ãããããŒãžãæ€åºããããšãåç §ãããããã®ç ç²è ãšããŠéžæãããŸããã芧ã®ããã«ãå®ç§ãªLRUãšã¯èšããŸããããå±¥æŽãå šãèæ ®ããŠããªãã¢ãããŒããããåªããŠããŸãã
äžè¬çã«è¡ãããŠããã¯ããã¯ã¢ã«ãŽãªãºã (Corbato [C69]ãæåã«ææ¡ãããã®)ãå°ãå€æŽããã®ã¯ãã¡ã¢ãªå ã§ããŒãžãå€æŽããããã©ãããããã«èæ ®ããããšã§ãããã®çç±ã¯ãããŒãžãå€æŽãããŠæ±ããŠããå ŽåãããŒãžãè¿œãåºãããã«ãã£ã¹ã¯ã«æžãæ»ããªããã°ãªãããããã¯é«äŸ¡ã§ããå€æŽãããŠããªã(ãããã£ãŠã¯ãªãŒã³ãª)å Žåã¯ãåé€ã¯å®¹æã§ããç©ççãªãã¬ãŒã ã¯ãè¿œå ã®I/Oãªãã§ä»ã®ç®çã®ããã«åçŽã«åå©çšããããšãã§ããŸãããããã£ãŠãäžéšã®VMã·ã¹ãã ã§ã¯ãããŒãã£ããŒãžã§ã¯ãªãŒã³ããŒãžãåé€ããããšãã§ããŸãã
ãã®åäœããµããŒãããããã«ãããŒããŠã§ã¢ã¯å€æŽãããããã(a.k.a.ããŒãã£ããã)ãå«ãã¹ãã§ããããã®ãããã¯ãããŒãžãæžã蟌ãŸãããã³ã«èšå®ããããããããŒãžçœ®æã¢ã«ãŽãªãºã ã«çµã¿èŸŒãããšãã§ããŸããããšãã°ãã¯ããã¯ã¢ã«ãŽãªãºã ãå€æŽããŠã䜿çšãããŠããªãããŒãžãšã¯ãªãŒã³ãªããŒãžã®äž¡æ¹ãã¹ãã£ã³ããŠæåã«åé€ããããšãã§ããŸããããããèŠã€ããããšãã§ããã次ãã§ãæªäœ¿çšã®ããŒãžãæ±ããŠãããã©ãããçã ã§ãã
ããŒãžçœ®æã¯ãVMãµãã·ã¹ãã ãæ¡çšããŠããå¯äžã®ããªã·ãŒã§ã¯ãããŸãã(ãã ããæãéèŠã§ã)ãäŸãã°ãOSã¯ããŒãžãã¡ã¢ãªã«ãã€æã¡èŸŒããã決å®ããªããã°ãããŸããããã®ããªã·ãŒã¯(Denning [D70]ã«ãã£ãŠåŒã³åºãããããã«)ããŒãžéžæããªã·ãŒãšåŒã°ããããšããããŸãããOSã«ã¯ããã€ãã®ãªãã·ã§ã³ããããŸãã
ã»ãšãã©ã®ããŒãžã§ã¯ãOSã¯åçŽã«ããã³ãããŒãžã³ã°ã䜿çšããŸããã€ãŸããOSã¯ããŒãžãã¢ã¯ã»ã¹ããããšãã«ã¡ã¢ãªãããªã³ããã³ãã§ããªã³ã«ããŸãããã¡ãããOSã¯ããŒãžã䜿çšãããããšããŠããããšãæšæž¬ããããšãã§ããŸãããã®åäœã¯ããªãã§ãããšåŒã°ããåççãªæåã®å¯èœæ§ãããå Žåã«ã®ã¿å®è¡ããå¿ èŠããããŸããäŸãã°ãããã·ã¹ãã ã¯ãã³ãŒãããŒãžPãã¡ã¢ãªã«æã¡èŸŒãŸãããšããã®ã³ãŒãããŒãžP +1ããŸããªãã¢ã¯ã»ã¹ãããå¯èœæ§ãé«ãã®ã§ãã¡ã¢ãªã«æã¡èŸŒãã¹ãã§ãããšä»®å®ããŸãã
å¥ã®ããªã·ãŒã¯ãOSãã©ã®ããã«ããŒãžããã£ã¹ã¯ã«æžãåºããã決å®ããŸãããã¡ããããããã¯äžåºŠã«1ã€ãã€æžãåºãããšãã§ããŸããããããå€ãã®ã·ã¹ãã ã§ã¯ãå€æ°ã®ãã³ãã£ã³ã°æžã蟌ã¿ãã¡ã¢ãªã«ãŸãšããŠ1ã€ã®(ããå¹ççãª)æžã蟌ã¿ã§ãã£ã¹ã¯ã«æžã蟌ã¿ãŸãããã®åäœã¯ãéåžžãã¯ã©ã¹ã¿ãªã³ã°ãšåŒã°ããåçŽã«æžã蟌ã¿ã®ã°ã«ãŒãåãšåŒã°ããå€æ°ã®å°ããªãã®ãããå¹ççã«åäžã®å€§ããªæžã蟌ã¿ãå®è¡ãããã£ã¹ã¯ãã©ã€ãã®æ§è³ªã®ããã«æå¹ã§ãã
ééããåã«ãæçµçãªè³ªåã«çããŸããã¡ã¢ãªãåçŽã«éå€ã«ãªã£ããšãã«OSãè¡ãã¹ãããšã¯ãå®è¡äžã®ããã»ã¹ã®ã¡ã¢ãªèŠæ±ãåã«å©çšå¯èœãªç©çã¡ã¢ãªãäžåãã ãã§ããïŒãã®å Žåãã·ã¹ãã ã¯çµ¶ããããŒãžã³ã°ãè¡ããæã«ã¯ã¹ã©ãã·ã³ã°[D70]ãšåŒã°ããç¶æ ã«ãªããŸãã
以åã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®äžã«ã¯ãçºçæã«ã¹ã©ãã·ã³ã°ãæ€åºã察åŠããããã®ããªãæŽç·Žãããã¡ã«ããºã ããããŸãããäŸãã°ãäžé£ã®ããã»ã¹ãããå Žåãã·ã¹ãã ã¯ãããã»ã¹ã®äœæ¥ã»ãã(ç©æ¥µçã«äœ¿çšããŠããããŒãž)ã®çž®å°ãããã»ãããã¡ã¢ãªã«åãŸããæ¹åãããããšãæåŸ ããŠãããã»ã¹ã®ãµãã»ãããå®è¡ããªãããšã決å®ã§ããŸãããã®ã¢ãããŒãã¯ãäžè¬ã«ã¢ãããã·ã§ã³ã³ã³ãããŒã«ãšããŠç¥ãããŠããŸãããçŸå®ã®ç掻ã ãã§ãªãçŸä»£ã®ã³ã³ãã¥ãŒã¿ã·ã¹ãã (æ²ããããšã«)ã§é »ç¹ã«ééããç¶æ³ããäžåºŠã«ãã¹ãŠããŸãããããšããããããããŸãåäœããªãæ¹ãè¯ããšè¿°ã¹ãŠããŸãã
çŸåšã®ã·ã¹ãã ã®äžã«ã¯ãã¡ã¢ãªéè² è·ã«å¯Ÿããããå³ããã¢ãããŒãããšã£ãŠãããã®ããããŸããããšãã°ãLinuxã®ããŒãžã§ã³ã«ãã£ãŠã¯ãã¡ã¢ãªãéå°ç»é²ããããšãã«ã¡ã¢ãªäžè¶³ã®ãã©ãŒ(OOM killer)ãå®è¡ãããã®ããããŸãããã®ããŒã¢ã³ã¯å€§éã®ã¡ã¢ãªãå¿ èŠãšããããã»ã¹ãéžæããŠçµäºãããã®ã§ãã¡ã¢ãªãŒãããŸãã«ã埮åŠãªæ¹æ³ã§æžããããšãã§ããŸããã¡ã¢ãªäœ¿çšéãåæžããã®ã«æåããŠãããããã®ã¢ãããŒãã¯ãäŸãã°XãµãŒãã殺ããŠããã£ã¹ãã¬ã€ãå¿ èŠãšããã¢ããªã±ãŒã·ã§ã³ã䜿çšã§ããªããããšãåé¡ãåŒãèµ·ããå¯èœæ§ããããŸãã
æã ã¯ããã¹ãŠã®ææ°ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®VMãµãã·ã¹ãã ã®äžéšã§ããããã€ãã®ããŒãžçœ®æ(ããã³ãã®ä»ã®)ããªã·ãŒã®å°å ¥ãèŠãŠããŸãããçŸä»£ã®ã·ã¹ãã ã§ã¯ãæèšã®ãããªç°¡åãªLRUè¿äŒŒã«ããã€ãã®åŸ®èª¿æŽãè¿œå ãããŠããŸããäŸãã°ãèµ°æ»æµæã¯ãARC [MM03]ã®ãããªå€ãã®æè¿ã®ã¢ã«ãŽãªãºã ã®éèŠãªéšåã§ããã¹ãã£ã³èæ§ã¢ã«ãŽãªãºã ã¯éåžžLRUã®ãããªãã®ã§ãããLRUã®ã¯ãŒã¹ãã±ãŒã¹ã®åäœãåé¿ããããšããŠããŸããLRUã¯ã«ãŒãé ã®ä»äºéã§èŠãŸããããããã£ãŠãããŒãžçœ®æã¢ã«ãŽãªãºã ã®é²åãç¶ããŠãããŸãã
ããããå€ãã®å Žåãã¡ã¢ãªã¢ã¯ã»ã¹ãšãã£ã¹ã¯ã¢ã¯ã»ã¹æéãšã®éã®çžéãå¢å€§ããã«ã€ããŠãåèšã¢ã«ãŽãªãºã ã®éèŠæ§ãæžå°ããŠããŸãããã£ã¹ã¯ãžã®ããŒãžã³ã°ã¯éåžžã«é«äŸ¡ãªã®ã§ãé »ç¹ãªããŒãžã³ã°ã®ã³ã¹ãã¯éåžžã«é«ããªããŸãããããã£ãŠãé床ã®ããŒãžã³ã°ã«å¯Ÿããæåã®è§£æ±ºçã¯ãããåçŽ(ç¥çã«äžæºãªå Žå)ã§ãã
[AD03] âRun-Time Adaptation in Riverâ
Remzi H. Arpaci-Dusseau
ACM TOCS, 21:1, February 2003
A summary of one of the authorsâ dissertation work on a system named River. Certainly one place where he learned that comparison against the ideal is an important technique for system designers.
[B66] âA Study of Replacement Algorithms for Virtual-Storage Computerâ
Laszlo A. Belady
IBM Systems Journal 5(2): 78-101, 1966
The paper that introduces the simple way to compute the optimal behavior of a policy (the MIN algorithm).
[BNS69] âAn Anomaly in Space-time Characteristics of Certain Programs Running in a Paging Machineâ
L. A. Belady and R. A. Nelson and G. S. Shedler
Communications of the ACM, 12:6, June 1969
Introduction of the little sequence of memory references known as Beladyâs Anomaly. How do Nelson and Shedler feel about this name, we wonder?
[CD85] âAn Evaluation of Buffer Management Strategies for Relational Database Systemsâ
Hong-Tai Chou and David J. DeWitt
VLDB â85, Stockholm, Sweden, August 1985
A famous database paper on the different buffering strategies you should use under a number of common database access patterns. The more general lesson: if you know something about a workload, you can tailor policies to do better than the general-purpose ones usually found in the OS.
[C69] âA Paging Experiment with the Multics Systemâ
F.J. Corbato
Included in a Festschrift published in honor of Prof. P.M. Morse
MIT Press, Cambridge, MA, 1969
The original (and hard to find!) reference to the clock algorithm, though not the first usage of a use bit. Thanks to H. Balakrishnan of MIT for digging up this paper for us.
[D70] âVirtual Memoryâ
Peter J. Denning
Computing Surveys, Vol. 2, No. 3, September 1970
Denningâs early and famous survey on virtual memory systems.
[EF78] âCold-start vs. Warm-start Miss Ratiosâ
Malcolm C. Easton and Ronald Fagin
Communications of the ACM, 21:10, October 1978
A good discussion of cold-start vs. warm-start misses.
[FP89] âElectrochemically Induced Nuclear Fusion of Deuteriumâ
Martin Fleischmann and Stanley Pons
Journal of Electroanalytical Chemistry, Volume 26, Number 2, Part 1, April, 1989
The famous paper that would have revolutionized the world in providing an easy way to generate nearlyinfinite power from jars of water with a little metal in them. Unforuntately, the results published (and widely publicized) by Pons and Fleischmann turned out to be impossible to reproduce, and thus these two well-meaning scientists were discredited (and certainly, mocked). The only guy really happy about this result was Marvin Hawkins, whose name was left off this paper even though he participated in the work; he thus avoided having his name associated with one of the biggest scientific goofs of the 20th century.
[HP06] âComputer Architecture: A Quantitative Approachâ
John Hennessy and David Patterson
Morgan-Kaufmann, 2006
A great and marvelous book about computer architecture. Read it!
[H87] âAspects of Cache Memory and Instruction Buffer Performanceâ
Mark D. Hill
Ph.D. Dissertation, U.C. Berkeley, 1987
Mark Hill, in his dissertation work, introduced the Three Câs, which later gained wide popularity with its inclusion in H&P [HP06]. The quote from therein: âI have found it useful to partition misses ... into three components intuitively based on the cause of the misses (page 49).â
[KE+62] âOne-level Storage Systemâ
T. Kilburn, and D.B.G. Edwards and M.J. Lanigan and F.H. Sumner
IRE Trans. EC-11:2, 1962
Although Atlas had a use bit, it only had a very small number of pages, and thus the scanning of the use bits in large memories was not a problem the authors solved.
[M+70] âEvaluation Techniques for Storage Hierarchiesâ
R. L. Mattson, J. Gecsei, D. R. Slutz, I. L. Traiger
IBM Systems Journal, Volume 9:2, 1970
A paper that is mostly about how to simulate cache hierarchies efficiently; certainly a classic in that regard, as well for its excellent discussion of some of the properties of various replacement algorithms. Can you figure out why the stack property might be useful for simulating a lot of different-sized caches at once?
[MM03] âARC: A Self-Tuning, Low Overhead Replacement Cacheâ
Nimrod Megiddo and Dharmendra S. Modha
FAST 2003, February 2003, San Jose, California
An excellent modern paper about replacement algorithms, which includes a new policy, ARC, that is now used in some systems. Recognized in 2014 as a âTest of Timeâ award winner by the storage systems community at the FAST â14 conference.