ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:350.66KB ,
资源ID:13653858      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13653858.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(北理工操作系统内存管理实验报告Word文档格式.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

北理工操作系统内存管理实验报告Word文档格式.docx

1、图1 页式存储管理程序参考流程四、实验环境硬件设备:个人计算机。系统软件:windows操作系统,Visual C+6.0编译环境。五、实验结果说明:模拟产生35个指令地址,随机产生20个指令地址进行排队,假设主存中共有10个工作集页帧。将前9个指令调入内存,因为前9个指令中,页号为13的指令有两个,所以调入内存中共有8页。此时主存中还有两个空闲帧。此时按刚才随机顺序进行访问指令工作。前9页因都在主存中可直接调用。第10个随机地址为页号为5的指令,也在主存中,也可直接调用。页号为24,3因不在主存中,需要调用进主存。此时主存已满。然后主存需要进行调用页号为27号的指令,因主存已满,需要执行FI

2、FO算法,将最先进入主存的页号为30的指令调出,将27号放入第1000000帧。以后需要调用的页面按照存在就无需调用,否则按FIFO原则进行调页工作。六、实验感想七、实验代码#include iomanipstdlib.htime.h vectorqueue/#include using namespace std ;#define PAGETABLE_NUM35/模拟进程的页表表项数量;#define AVAILABLEFRAME_NUM10/主存中固定工作集页帧的数量;#define RANDOMNUMBER_NUM20/产生随机指令地址的数量;struct PageTableEntryu

3、nsigned int FrameNum ;bool Pressent ;void InitRandomAddr(vector &RandomAddr) ;void InitIdleFrameQueue(queueIdleFrameQueue) ;void InitPageTable(vectorPageTable, vectorRandomAddr, queueIdleFrameQueue, queueAvtiveFrameQueue) ;void SetPTE(PageTableEntry &PTE) ;int main()int a ;/初始化RANDERNUMBER_NUM条随机的32

4、位指令地址;vector RandomAddr(RANDOMNUMBER_NUM) ;InitRandomAddr(RandomAddr) ;/初始化FIFS指针;:iterator FIFS_pintor ;FIFS_pintor = RandomAddr.begin() ;/初始空闲帧队列;queue IdleFrameQueue, ActiveFrameQueue ;InitIdleFrameQueue(IdleFrameQueue) ;/初始进程页表(模拟进程初始时,工作集已经使用至少10个页帧); PageTable(PAGETABLE_NUM) ;InitPageTable(Pag

5、eTable, RandomAddr, IdleFrameQueue, ActiveFrameQueue) ;/Testcout 12 ;cout地址:0xhex*pt_RandomAddrdect页号:PageNum;if ( PageTablePageNum.Pressent = 0 )/该页不在主存中 ;coutt该页不在主存,;if (IdleFrameQueue.empty()/工作集空闲页帧已用完;cout 12.Pressent = 0 ;/标记此页已经被置换出主存;/置换进新页;PageTablePageNum.FrameNum = Frame_Num ;PageTablePa

6、geNum.Pressent = 1 ;ActiveFrameQueue.push(Frame_Num) ;/移动FIFS指针 ;FIFS_pintor+ ;else调入所需页到空闲页t/调入当前所需的页到空闲页中;Frame_Num = IdleFrameQueue.front() ;IdleFrameQueue.pop() ; elset该页在主存t帧号:PageTablePageNum.FrameNumendl ;return 0 ;RandomAddr) 生成随机指令地址 niterator pd ;srand( (unsigned)time( NULL ) );for( pd = R

7、andomAddr.begin(); pd ! pd+ )/产生随机页号0PAGETABLE_NUM - 1;unsigned int High_20 = rand() % PAGETABLE_NUM ;/产生随机偏移量04095 ;unsigned int Low_12 = rand() % 4096 ;unsigned int Addr = (High_20 12) | Low_12 ;*pd = Addr ;随机指令地址:setw(8)setfill(0) setiosflags(ios:uppercase | ios:fixed)*pdHigh_20t偏移量:Low_12IdleFra

8、meQueue)/帧号从01048575,这里取10000001000016;for ( unsigned int FrameNum = 1000000; FrameNum 1000000 + AVAILABLEFRAME_NUM; FrameNum+ )IdleFrameQueue.push(FrameNum) ;AvtiveFrameQueue) 初始化页表; nfor_each(PageTable.begin(), PageTable.end(), SetPTE) ;unsigned int Page_Num, Frame_Num ;for ( int count = 0; count if ( PageTablePage_Num.Pressent != 0 )break ;Frame_Num = IdleFrameQueue.front() ;IdleFrameQueue.pop() ;PageTablePage_Num.FrameNum = Frame_Num ;/设置页帧号;PageTablePage_Num.Pressent = 1 ;/标记页帧在主存中;AvtiveFrameQueue.push(Frame_Num) ;/记录活动页帧;将模拟进程的第Page_Num页初始化至主存中,帧号为:Frame_Numendl;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1