虚存管理OS实验

虚存管理OS实验

ID:46896550

大小:116.50 KB

页数:14页

时间:2019-11-29

虚存管理OS实验_第1页
虚存管理OS实验_第2页
虚存管理OS实验_第3页
虚存管理OS实验_第4页
虚存管理OS实验_第5页
资源描述:

《虚存管理OS实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验三虚存管理—、实验目的1.加深对存储管理概念的理解。2.深入了解Windows内存管理机制。3.理解内存分配原理,特别是以页面为单位的虚拟内存分配方法。4.掌握页式虚拟存储技术。5.掌握“最不频繁使用淘汰算法”,即LFU页面淘汰算法。二、理论基础1.页式存储管理技术。2.虚拟存储管理技术。三、实验要求1.编写程序实现简单的虚存管理。2.实验具体包括:(1)设计并实现一个虚存管理程序,模拟一个单道程序的页式存储管理,用一个一维数组模拟实存空间,用一个文本文件模拟辅存空间;(2)建立一张一级页表;(3)编写函数随机产生访存请求,访存操作包括读取、写入、执行等三种类型;(

2、4)编写函数响应访存请求,完成艰地址到实地址的定位及读/写/执行操作,同时判断并处理缺页中断;(5)实现LFU页面淘汰算法。3.实验结束提交书面实验报告。四、实验环境1.运行Windows操作系统的PC机一台。2.PC机上安装VisualC++6.0开发工具软件。五、实验内容1.建立"Win32ConsoleApplication”工程"vmm”。2.建立“C/O+HeaderFile"头文件“vmm.h”,文件内容参见“程序代码”。3.建立“C++SourceFile”源文件“vmm.cpp”,文件内容参见“程序代码”。4.建立“TextFile”文本文件"vmm_a

3、uxMem.txt”,模拟辅存空间,文件内容对以输入任意字符(字符数多于512个)。5.运行程序并认真观察和分析程序的运行结果。七、程序代码#ifndefVMM_H#defineVMM_H/*模拟辅存的文件路径*/#defineAUXILIARY_MEMORY“vmm_auxMem.txt”/*页面大小(字节)*/#definePAGE.SIZE4/*虚存空间大小(字节)*/#defineVIRTUAL_MEMORY_SIZE(64*4)/*实存空间大小(字节)*/#defineACTUAL_MEMORY_SIZE(32*4)/*总虚页数*/#definePAGE_SU

4、M(VIRTUAL_MEMORY_SIZE/PAGE_SIZE)/*总物理块数*/#defineBLOCK.SUM(ACTUAL_MEMORY_SIZE/PAGE.SIZE)/*可读标识位*/#defineREADABLE0x01u/*可写标识位*/#defineWRITABLE0x02u/*可执行标识位*/#defineEXECUTABLE0x()4u/*页表项*/typedefstruct{unsignedintblockNum;〃物理块号BOOLfilled;〃页面装入特征位BYTEproType;//页面保护类型BOOLedited;〃页面修改标识unsigne

5、dlongauxAddr;〃外存地址unsignedlongcount;〃页面使用计数器}PageTableltem,*Ptr_PageTableItem;产访存请求类型*/typedefenum{REQUEST.READ,REQUEST_WRITE,REQUEST_EXECUTE}MemoryAccessRequestType;/*访存请求*/typedefstruct{MemoryAccessRequestType「eqType;//访存请求类型unsignedlongvirAddr;//虚地址BYTEvalue;//写请求的值}MemoryAccessReques

6、t,*Ptr_MemoryAccessRequest;产访存错误代码*/typedefenum{ERROR_READ_DENY,〃该页不可读ERROR_WRITE_DENY,〃该页不可写ERROR_EXECUTE_DENY,〃该页不可执行ERROR_1NVALID_REQUEST,〃非法请求类型ERROR_OVER_BOUNDARY,〃地址越界ERROR_FILE_OPEN_FAILED,〃文件打开失败ERROR_FILE_CLOSE_FAILED,〃文件关闭失败ERROR_FILE_SEEK_FAILED,//文件指针定位失败ERROR_FILE_READ_FAILE

7、D,〃文件读取失败ERROR_FILE_WRITE_FAILED//文件写入失败}ERROR_CODE;/*产生访存请求*/voiddo_request();/*响应访存请求*/voiddo_response();/*处理缺页中断*/voiddo_page_fault(Ptr_PageTableItem);/*LFU页面替换*/voiddo_LFU(Ptr_PageTableItem);/*装入页面*/voiddo_page_in(Ptr_PageTableItem,unsignedint);/*写出页面*/voiddo_page_out

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。