windows操作系统实验六实验报告

上传人:luoxia****01824 文档编号:46319523 上传时间:2018-06-25 格式:DOC 页数:10 大小:236KB
返回 下载 相关 举报
windows操作系统实验六实验报告_第1页
第1页 / 共10页
windows操作系统实验六实验报告_第2页
第2页 / 共10页
windows操作系统实验六实验报告_第3页
第3页 / 共10页
windows操作系统实验六实验报告_第4页
第4页 / 共10页
windows操作系统实验六实验报告_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《windows操作系统实验六实验报告》由会员分享,可在线阅读,更多相关《windows操作系统实验六实验报告(10页珍藏版)》请在金锄头文库上搜索。

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

2、Studio 6.0 Microsoft Visual C+ 6.0”命令,进入 Visual C+窗口。步骤步骤 3:在工具栏单击“打开”按钮,在“打开”对话框中找到并打开实验源程序 6-1.cpp。步骤步骤 4:单击“Build”菜单中的“Compile 6-1.cpp”命令,并单击“是”按钮确认。系统对 6-1.cpp 进行编译。步骤步骤 5:编译完成后,单击“Build”菜单中的“Build 6-1.exe”命令,建立 6-1.exe 可执行文件。操作能否正常进行?如果不行,则可能的原因是什么?_34_5_步骤步骤 6:在工具栏单击“Execute Program”按钮,执行 6-1.

3、exe 程序。1) 分析运行结果 (如果运行不成功,则可能的原因是什么?) 。按 committed、reserved、free 等三种虚拟地址空间分别记录实验数据。其中“描述”是指对该组数据的简单描述,例如,对下列一组数据:00010000 00012000/xp Committed, READWRITE, Private可描述为:具有 READWRITE 权限的已调配私有内存区。将系统当前的自由区 (free) 虚拟地址空间填入表 6-3 中。表表 6-36-3 实验记录实验记录地址大小虚拟地址空间类型访问权限描述00010000-00012000 8.00KBfreeREADWRITE具

4、有 READWRITE 权限的已调配私有内存区00012000-0002000056.0KB freeNOACCESS没有任何权限的已调配的共有内存区00020000-00021000 4.00KBfreeREADWRITE具有 READWRITE 权限的已调配私有内存区00021000-00030000 60.0KBfreeNOACCESS没有任何权限的已调配的共有内存区600030000-0012c000 0.98MB freeREADONLY只具有 READ 权限的已调配私有内存区0012c000-0012d000 4.00KBfreeREADWRITE具有 READWRITE 权限的已

5、调配私有内存区0012d000-00130000 12.0KBfreeREADWRITE具有 READWRITE 权限的已调配私有内存区00130000-00133000 12.0KBfree READONLY只具有 READ 权限的已调配内存区提示提示:详细记录实验数据在实验活动中是必要的,但想想是否可以简化记录的办法?将系统当前的已调配区 (committed) 虚拟地址空间填入表 6-4 中。表表 6-4 实验记录实验记录地地 址址大小大小虚拟地址虚拟地址空间类型空间类型访问权限访问权限描描 述述00010000-00020000 (64.0 KB) Committed, READWRI

6、TE, Mapped00020000-00030000 (64.0 KB) Committed, READWRITE, Mapped0012d000-0012e000 (4.00 KB) Committed, GUARD, READWRITE, Private0012e000-00130000 (8.00 KB) Committed, READWRITE, Private00130000-00134000 (16.0 KB) Committed, READONLY, Mapped00140000-001a7000 (412 KB) Committed, READONLY, Mapped001b

7、0000-001b1000 (4.00 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-56-5 实验记录实验记录地地 址址大小大小虚拟地址虚拟地址空间类型空间类

8、型访问权限访问权限描描 述述70022d000-00300000 (844 KB) Reserved, READONLY, Private00306000-003c0000 (744 KB) Reserved, READONLY, Mapped003c3000-003c8000 (20.0 KB) Reserved, READONLY, Mapped00673000-00680000 (52.0 KB) Reserved, READONLY, Private006f4000-01280000 (11.5 MB) Reserved, READONLY, Mapped01288000-013800

9、00 (992 KB) Reserved, READONLY, Private01406000-01410000 (40.0 KB) Reserved, READONLY, Private2) 从上述输出结果,对照分析 5-2 程序,请简单描述程序运行的流程:_2.2. 虚拟内存操作虚拟内存操作清单 6-2 的示例显示了如何分配一个大容量空间,将物理存储委托给其中的很小一部分 (千分之一) 并加以使用。步骤步骤 7:在 Visual C+ 窗口的工具栏中单击“打开”按钮,在“打开”对话框中找到并打开实验源程序 6-2.cpp。步骤步骤 8:单击“Build”菜单中的“Compile 6-2.c

10、pp”命令,并单击“是”按钮确认。系统对 6-2.cpp 进行编译。步骤步骤 9:编译完成后,单击“Build”菜单中的“Build 6-2.exe”命令,建立 6-2.exe 可执行文件。操作能否正常进行?如果不行,则可能的原因是什么?_8_步骤步骤 10:在工具栏单击“Execute Program”按钮,执行 6-2.exe 程序。运行结果 (如果运行不成功,则可能的原因是什么?) :1) _标点_2) _3) _对照运行结果,分析程序 6-2。为了给数据库保留 1GB 的段地址空间,清单 6-2 给出了内存分配的四种方法。 第一种技术第一种技术即程序中说明为_ LPVOID pBloc

11、k = : malloc(c_dwGigabyte) ; : FillZero (pBlock, c_dwMegabyte) ; : free(pBlock) ; _的程序段,该段程序试图利用标准 C 中的 malloc() 函数,从已经已调配的小内存区获得内存。从运行结果看,这种技术成功了吗?_成功_。 第二种技术第二种技术即程序中说明为_ LPVOID pBlock = : VirtualAlloc( NULL, / 不指定起始地址 c_dwGigabyte, / 要求1GB MEM_COMMIT, / 调配物理存储9PAGE_READWRITE) ; / 对此的读写操作 : FillZe

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

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > Windows相关

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号