1.Page
用PAGE_SIZE来规定页的大小,char数组存储,我这里设置的4096
2.BufferPoolManager
我现在的replacer用的是clock策略,算是一个baseline,这部分的算法是未来提高的很大优化点。主要的成员函数是:FetchPage,UnpinPage,FlushPage,NewPage,DeletePage和FlushAllPage
3.Clock

简单的CLOCK算法是通过给每一个访问的页面关联一个附加位(reference bit),有些地方也叫做使用位(use bit)。他的主要思想是:当某一页装入主存时,将use bit置成1;如果该页之后又被访问到,使用位也还是标记成1。对于页面置换算法,候选的帧集合可以看成是一个循环缓冲区,并且有一个指针和缓冲区相关联。遇到页面替换时,指针指向缓冲区的下一帧。如果这页进入主存后发现没有空余的帧(frame),即所有页面的使用位均为1,那么这时候从指针开始循环一个缓冲区,将之前的使用位都清0,并且留在最初的位置上,换出该桢对应的页。
浙公网安备 33010602011771号