页面置换算法OPT+FIFO+LRU+clock(共8页).doc
《页面置换算法OPT+FIFO+LRU+clock(共8页).doc》由会员分享,可在线阅读,更多相关《页面置换算法OPT+FIFO+LRU+clock(共8页).doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上#include#includeusing namespace std;#define BlockSize 10#define PageSize 100int pagePageSize; /页面数组存放页面 int blockBlockSize; /物理块数组int resultPageSizeBlockSize; /存放页面和物理块二维数组int pSize = 0; /用户使用页面数 int bSize = 0; /用户使用物理块数int blockFlagBlockSize; /用于LRU与最佳置换算法中,辅助判断该换出的页面int noPageCount =
2、0; /缺页次数/输入数据void inputData() coutendl请输入物理块数(1=bSize=BlockSize)bSize; cout请输入页面数 (1=pSize=PageSize)pSize; while(bSizeBlockSize|pSizePageSize)/判断用户输入是否在范围内 cout输入范围错误,请重新输入:endl; cout请输入物理块数(1=F=BlockSizebSize; coutendl请输入页面数 (1=p=PageSizepSize; cout请输入页面走向endl; for(int i = 0;i pagei;/初始化page数组void
3、initPage()for(int i = 0;iPageSize;i+) pagei = -1; /初始化block与result数组void initBlockResult() int i = 0; for(i = 0;iBlockSize;i+) blocki = -1; for(i = 0;i PageSize;i+) for(int j = 0; j BlockSize;j+) resultij = -1;/查找物理块中是否存在要调用的页面int Exist(int i) for(int j = 0;j bSize;j+) if(blockj = i) return j; retur
4、n -1;/显示结果void display(int noPageCount) for(int i =0 ;i pSize;i+) cout pagei ; for(int j = 0;j bSize;j+) if(resultij = -1) break; else coutresultij ; coutendl; cout_endl;coutendl缺页次数:noPageCountendl;cout缺页率:(double)noPageCount/pSize)*100%endl;cout=endl;/最佳置换算法OPTvoid OPT()int i = 0,j = 0;int positio
5、n = 0,noPageCount = 0;int pageFlag = 0,resultFlag = 0; /页面标记(下标)指向下一个页面,结果标记表示结果的行,即result数组的行标 for(i = 0;i BlockSize;i+)blockFlagi = 0;while(pageFlag pSize)if(Exist(pagepageFlag) != -1) /判断页面是否已经存在resultFlag+;elseif(position bSize) /判断有无空闲物理块 /若有则将页面放入空闲块blockposition = pagepageFlag;position+;noPag
6、eCount+;for(i = 0;i position;i+)resultresultFlagi = blocki;resultFlag+;elsefor(i = 0;i bSize;i+)for(j = pageFlag+1;j pSize;j+)if(blocki = pagej)blockFlagi = j;break;if(j = pSize) blockFlagi = 999;int optPos = 0,max = blockFlag0;for(int i = 0;i bSize;i+)if(max blockFlagi)max = blockFlagi;optPos = i;b
7、lockoptPos = pagepageFlag;noPageCount+;for(i = 0;i bSize;i+)resultresultFlagi = blocki;resultFlag+;pageFlag+;coutendl最佳置换算法:endl;display(noPageCount);return;/先进先出页面置换算法FIFOvoid FIFO() int blockFlag = 0,pageFlag = 0,resultFlag = 0; /物理块标记,确定该换出的物理块下标 int i = 0,j = 0,noPageCount = 0; int position = 0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 页面 置换 算法 OPT FIFO LRU clock
限制150内