版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、存储器管理实验 _ 1 成都信息工程学院 徐虹,第4章 存储器管理实验,4.1 实验目的 4.2 准备知识 4.3 实验内容 4.4 实验指导,存储器管理实验 _ 2 成都信息工程学院 徐虹,4.4.1 FIFO页面置换算法,存储器管理实验 _ 3 成都信息工程学院 徐虹,4.4.2 LRU页面置换算法,存储器管理实验 _ 4 成都信息工程学院 徐虹,4.4.3 NUR页面置换算法,存储器管理实验 _ 5 成都信息工程学院 徐虹,4.4.4 OPT页面置换算法,存储器管理实验 _ 6 成都信息工程学院 徐虹,4.5 参考源程序代码,#ifndef _PAGE_H #define _PAGE_H
2、 class cpage public: int m_nPageNumber, m_nPageFaceNumber, m_nCounter, m_nTime; ; #endif,存储器管理实验 _ 7 成都信息工程学院 徐虹,#ifndef _PAGECONTROL_H #define _PAGECONTROL_H class CpageControl public: int m_nPageNumber,m_nPageFaceNumber; class CPageControl * m_pNext; ; #endif,存储器管理实验 _ 8 成都信息工程学院 徐虹,#ifndef _MEMOR
3、Y_H #define _MEMORY_H class CMemory public: CMemory(); void initialize(const int nTotal_pf); void FIFO(const int nTotal_pf); void LRU(const int nTotal_pf); void NUR(const int nTotal_pf); void OPT(const int nTotal_pf);,存储器管理实验 _ 9 成都信息工程学院 徐虹,private: vector _vDiscPages; vector _vMemoryPages; CPageCo
4、ntrol *_pFreepf_head, *_pBusypf_head, *_pBusypf_tail; vector _vMain,_vPage,_vOffset; int _nDiseffect; ;,存储器管理实验 _ 10 成都信息工程学院 徐虹,CMemory:CMemory(): _vDiscPages(TOTAL_VP), _vMemoryPages(TOTAL_VP), _vMain(TOTAL_INSTRUCTION), _vPage(TOTAL_INSTRUCTION), _vOffset(TOTAL_INSTRUCTION) int S,i,nRand; srand(g
5、etpid()*10);,存储器管理实验 _ 11 成都信息工程学院 徐虹,nRand=rand()%32767; S=(float)319*nRand/32767+1; for(i=0;iTOTAL_INSTRUCTION;i+=4) _vMaini=S; _vMaini+1=_vMaini+1; nRand=rand()%32767; _vMaini+2=(float)_vMaini *nRand/32767; _vMaini+3=_vMaini+2+1; nRand=rand()%32767;,存储器管理实验 _ 12 成都信息工程学院 徐虹,S=(float)nRand * (318-
6、_vMaini+2)/ 32767+_vMaini+2+2; for(i=0;iTOTAL_INSTRUCTION;i+) _vPagei=_vMaini/10; _vOffseti=_vMaini%10; _vPagei%=32; ,存储器管理实验 _ 13 成都信息工程学院 徐虹,void CMemory:initialize(const int nTotal_pf) int ix; _nDiseffect=0; for(ix=0;ix_vDiscPages.size();ix+) _vDiscPagesix.m_nPageNumber=ix; _vDiscPagesix.m_nPageF
7、aceNumber=INVALID; _vDiscPagesix.m_nCounter=0; _vDiscPagesix.m_nTime=-1; for(ix=1;ixnTotal_pf;ix+) _vMemoryPagesix-1.m_pNext= ,存储器管理实验 _ 14 成都信息工程学院 徐虹,_vMemoryPagesnTotal_pf-1.m_pNext=NULL; _vMemoryPagesnTotal_pf-1.m_nPageFace Number=nTotal_pf-1; _pFreepf_head=i+) ,存储器管理实验 _ 15 成都信息工程学院 徐虹,if(_vDis
8、cPages_vPagei.m_nPageFaceNumber =INVALID) _nDiseffect+=1; if(_pFreepf_head=NULL) / 无空闲页面 p=_pBusypf_head-m_pNext; _vDiscPages_pBusypf_head-m_nPageNumber .m_nPageFaceNumber=INVALID; _pFreepf_head=_pBusypf_head; _pFreepf_head-m_pNext=NULL; _pBusypf_head=p; ,存储器管理实验 _ 16 成都信息工程学院 徐虹,p=_pFreepf_head-m_p
9、Next; _pFreepf_head-m_pNext=NULL; _pFreepf_head-m_nPageNumber=_vPagei; _vDiscPages_vPagei.m_nPageFaceNumber =_pFreepf_head- m_nPageFaceNumber; if(_pBusypf_tail=NULL) _pBusypf_head=_pBusypf_tail=_pFreepf_head; else _pBusypf_tail-m_pNext=_pFreepf_head; _pBusypf_tail=_pFreepf_head; ,存储器管理实验 _ 17 成都信息工程
10、学院 徐虹,_pFreepf_head=p; coutFIFO: 1-(float)_nDiseffect/320; void CMemory:LRU(const int nTotal_pf) int i,j,nMin,minj,nPresentTime(0); initialize(nTotal_pf);,存储器管理实验 _ 18 成都信息工程学院 徐虹,for(i=0;i_vDiscPagesj.m_nTime ,存储器管理实验 _ 19 成都信息工程学院 徐虹,_pFreepf_head= ,存储器管理实验 _ 20 成都信息工程学院 徐虹,else _vDiscPages_vPagei
11、.m_nTime=nPresentTime; nPresentTime+; coutLRU: 1-(float)_nDiseffect/320; void CMemory:NUR(const int nTotal_pf) int i,j,nDiscPage,nOld_DiscPage; bool bCont_flag; initialize(nTotal_pf); nDiscPage=0;,存储器管理实验 _ 21 成都信息工程学院 徐虹,for(i=0;iTOTAL_INSTRUCTION;i+) if(_vDiscPages_vPagei.m_nPageFaceNumber =INVALI
12、D) _nDiseffect+; if(_pFreepf_head=NULL) bCont_flag=true; nOld_DiscPage=nDiscPage; while(bCont_flag) if(_vDiscPagesnDiscPage.m_nCounter=0,存储器管理实验 _ 22 成都信息工程学院 徐虹,else nDiscPage+; if(nDiscPage=TOTAL_VP) nDiscPage=0; if(nDiscPage=nOld_DiscPage) for(j=0;jTOTAL_VP;j+) _vDiscPagesj.m_nCounter=0; _pFreepf
13、_head=,存储器管理实验 _ 23 成都信息工程学院 徐虹,_vDiscPagesnDiscPage.m_nPageFaceNumber=INVALID; _pFreepf_head-m_pNext=NULL; _vDiscPages_vPagei.m_nPageFaceNumber= _pFreepf_head-m_nPageFaceNumber; _pFreepf_head=_pFreepf_head-m_pNext; else _vDiscPages_vPagei.m_nCounter=1; if(i%CLEAR_PERIOD=0) for(j=0;jTOTAL_VP;j+) _vD
14、iscPagesj.m_nCounter=0; ,存储器管理实验 _ 24 成都信息工程学院 徐虹,coutNUR:1-(float)_nDiseffect/320; void CMemory:OPT(const int nTotal_pf) int i,j,max,maxpage,nDistance,vDistanceTOTAL_VP; initialize(nTotal_pf); for(i=0;iTOTAL_INSTRUCTION;i+) if(_vDiscPages_vPagei.m_nPageFaceNumber=INVALID) _nDiseffect+; if(_pFreepf_
15、head=NULL) for(j=0;jTOTAL_VP;j+) if(_vDiscPagesj.m_nPageFaceNumber!=INVALID) vDistancej=32767; else vDistancej=0;,存储器管理实验 _ 25 成都信息工程学院 徐虹,nDistance=1; for(j=i+1;jTOTAL_INSTRUCTION;j+) if(_vDiscPages_vPagej.m_nPageFaceNumber!=INVALID),存储器管理实验 _ 26 成都信息工程学院 徐虹,_pFreepf_head= #endif,存储器管理实验 _ 27 成都信息工程学院 徐虹,#include #include #include #include #include #include using namespace std; #define INVALID -1 const int TOTAL_INSTRUCTION(320); const int TOTAL_VP(32); const int CLEAR_PERIOD(50);,存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026六年级数学下册 负数方法拓展
- 【 生物 】生命的延续和发展(第一、二章)复习课件-2025-2026学年人教版生物八年级下册
- 2024高考语文复习的重点
- 中风昏迷患者护理
- 安全生产四查制度讲解
- 美图M8 AI美颜技术
- 2023长春某中学高三数学(理)期末试题及答案
- 2023年军队文职人员招录考试《档案专业》考前模拟题及答案
- 智能化弱电机房工程防雷接地知识
- 制度型开放的理论逻辑与现实路径阅读札记
- 2025河北省烟草专卖局(公司)招聘141人模拟试卷及答案详解(典优)
- 新时代背景下人工智能赋能初中数学的教学创新
- 巡游出租车考试题及答案
- DB37-T 5118-2018 市政工程资料管理标准
- 党校讲师面试题目及答案
- 2025年度市场监管总局直属单位第一批招聘(210人)笔试备考试题附答案详解(a卷)
- 4完整版本.2.1值机服务礼仪规范
- 长沙外摆管理办法
- 初中历史全册知识点总结
- 廉洁文化建设中面临的主要问题及解决思路
- 港口电气安全培训
评论
0/150
提交评论