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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

Windows操作系统实验六实验报告.docx

1、Windows操作系统实验六实验报告Windows操作系统 C/C+ 程序实验姓名:_ _学号:_班级:_院系:_信息工程学院_年_月_日实验六 Windows 2000/xp虚拟内存一、背景知识二、实验目的三、工具/准备工作四、实验内容与步骤 1. 虚拟内存的检测清单6-1所示程序使用VirtualQueryEX() 函数来检查虚拟内存空间。步骤1:登录进入Windows 2000/xp Professional。步骤2:在“开始”菜单中单击“程序-Microsoft Visual Studio 6.0 Microsoft Visual C+ 6.0”命令,进入Visual C+窗口。步骤3

2、:在工具栏单击“打开”按钮,在“打开”对话框中找到并打开实验源程序6-1.cpp。步骤4:单击“Build”菜单中的“Compile 6-1.cpp”命令,并单击“是”按钮确认。系统对6-1.cpp进行编译。步骤5:编译完成后,单击“Build”菜单中的“Build 6-1.exe”命令,建立6-1.exe可执行文件。操作能否正常进行?如果不行,则可能的原因是什么?_步骤6:在工具栏单击“Execute Program”按钮,执行6-1.exe程序。1) 分析运行结果 (如果运行不成功,则可能的原因是什么?) 。按committed、reserved、free等三种虚拟地址空间分别记录实验数据

3、。其中“描述”是指对该组数据的简单描述,例如,对下列一组数据: /xp Committed, READWRITE, Private可描述为:具有READWRITE权限的已调配私有内存区。将系统当前的自由区 (free) 虚拟地址空间填入表6-3中。表6-3 实验记录地址大小虚拟地址空间类型访问权限描述-8.00KBfreeREADWRITE具有READWRITE权限的已调配私有内存区-56.0KB freeNOACCESS没有任何权限的已调配的共有内存区-4.00KBfreeREADWRITE具有READWRITE权限的已调配私有内存区-60.0KBfreeNOACCESS没有任何权限的已调配

4、的共有内存区-0012c0000.98MB freeREADONLY只具有READ权限的已调配私有内存区0012c000-0012d0004.00KBfreeREADWRITE具有READWRITE权限的已调配私有内存区0012d000-12.0KBfreeREADWRITE具有READWRITE权限的已调配私有内存区-12.0KBfreeREADONLY只具有READ权限的已调配内存区提示:详细记录实验数据在实验活动中是必要的,但想想是否可以简化记录的办法?将系统当前的已调配区 (committed) 虚拟地址空间填入表6-4中。表6-4 实验记录地 址大小虚拟地址空间类型访问权限描 述-

5、(64.0 KB) Committed, READWRITE, Mapped- (64.0 KB) Committed, READWRITE, Mapped0012d000-0012e000 (4.00 KB) Committed, GUARD, READWRITE, Private0012e000- (8.00 KB) Committed, READWRITE, Private- (16.0 KB) Committed, READONLY, Mapped -001a7000 (412 KB) Committed, READONLY, Mapped 001b0000-001b1000 (4.0

6、0 KB) Committed, READWRITE, Private001c0000-001c1000 (4.00 KB) Committed, READWRITE, Private001d0000-001d7000 (28.0 KB) Committed, READONLY, Mapped001e0000-001e2000 (8.00 KB) Committed, READWRITE, Mapped将系统当前的保留区 (reserved) 虚拟地址空间填入表6-5中。表6-5 实验记录地 址大小虚拟地址空间类型访问权限描 述0022d000- (844 KB) Reserved, READ

7、ONLY, Private -003c0000 (744 KB) Reserved, READONLY, Mapped 003c3000-003c8000 (20.0 KB) Reserved, READONLY, Mapped- (52.0 KB) Reserved, READONLY, Private 006f4000- (11.5 MB) Reserved, READONLY, Mapped- (992 KB) Reserved, READONLY, Private- (40.0 KB) Reserved, READONLY, Private2) 从上述输出结果,对照分析5-2程序,请简

8、单描述程序运行的流程: _ 2. 虚拟内存操作清单6-2的示例显示了如何分配一个大容量空间,将物理存储委托给其中的很小一部分 (千分之一) 并加以使用。步骤7:在Visual C+ 窗口的工具栏中单击“打开”按钮,在“打开”对话框中找到并打开实验源程序6-2.cpp。 步骤8:单击“Build”菜单中的“Compile 6-2.cpp”命令,并单击“是”按钮确认。系统对6-2.cpp进行编译。步骤9:编译完成后,单击“Build”菜单中的“Build 6-2.exe”命令,建立6-2.exe可执行文件。操作能否正常进行?如果不行,则可能的原因是什么? _步骤10:在工具栏单击“Execute

9、Program”按钮,执行6-2.exe程序。运行结果 (如果运行不成功,则可能的原因是什么?) :1) _标点_2) _3) _对照运行结果,分析程序6-2。为了给数据库保留1GB的段地址空间,清单6-2给出了内存分配的四种方法。 第一种技术即程序中说明为_ LPVOID pBlock = : malloc(c_dwGigabyte) ;: FillZero (pBlock, c_dwMegabyte) ;: free(pBlock) ; _的程序段,该段程序试图利用标准C中的malloc() 函数,从已经已调配的小内存区获得内存。从运行结果看,这种技术成功了吗?_成功_。 第二种技术即程序

10、中说明为_ LPVOID pBlock = : VirtualAlloc(NULL, / 不指定起始地址c_dwGigabyte, / 要求1GBMEM_COMMIT, / 调配物理存储PAGE_READWRITE) ; / 对此的读写操作: FillZero(pBlock, c_dwMegabyte) ;: VirtualFree(pBlock, 0, MEM_RELEASE) ;的程序段,该段程序试图通过VirtualAlloc() ,然后利用物理备用内存将整个块分配到虚拟内存空间的任何位置。这种技术只对拥有1GB以上的RAM且都有换页文件的计算机可行。从运行结果看,这种技术成功了吗?_成

11、功_。 第三种技术即程序中说明为LPVOID pBlock = : VirtualAlloc(NULL, / 不指定起始地址c_dwGigabyte, /MEM_RESERVE, / 不调配物理存储PAGE_READWRITE) ; / 对此的读写操作: FillZero(pBlock, c_dwMegabyte) ;: VirtualFree(pBlock, 0, MEM_RELEASE) ;要求1GB的程序段,该段程序利用VirtualAlloc() ,如果函数成功,则获得大块内存,但不将任何物理内存调配到此块中。从运行结果看,这种技术成功了吗?_不成功_。 第四种技术即程序中说明为LPV

12、OID pBlock = : VirtualAlloc( NULL, / 不指定起始地址c_dwGigabyte, / 要求1GBMEM_RESERVE, / 不调配物理存储PAGE_READWRITE) ; / 对此的读写操作: VirtualAlloc(pBlock,c_dwMegabyte,MEM_COMMIT,PAGE_READWRITE) ;: FillZero(pBlock, c_dwMegabyte) ;: VirtualFree(pBlock, 0, MEM_RELEASE) ; 的程序段,该段程序保留1GB的内存区,然后将物理内存调配给其中的很小一部分 (1MB) 。这就是清单6-2介绍的处理一个假想的数据库应用程序的方法:保留整个块,然后按要求在其一小部分内进行读操作,让系统将用过的区域换页到磁盘中。利用VirtualLock() API,Windows可用来在自己的进程空间中控制虚拟内存的行为。这个函数与其成对的VirtualUnlock() 阻止或允许一块内存从物理RAM中换页和换页到页面文件中。这样就会通知系统有一段特定的内存区要求对用户作出强烈的响应,所以系统不应将其移出RAM。当然,如果要将整个虚拟内存空间锁定,系统就会停留于试图将系统中工作内存的每一小块换页到磁盘。

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

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