Windows操作系统实验六实验报告Word文档下载推荐.docx

上传人:b****7 文档编号:21950932 上传时间:2023-02-01 格式:DOCX 页数:10 大小:178.34KB
下载 相关 举报
Windows操作系统实验六实验报告Word文档下载推荐.docx_第1页
第1页 / 共10页
Windows操作系统实验六实验报告Word文档下载推荐.docx_第2页
第2页 / 共10页
Windows操作系统实验六实验报告Word文档下载推荐.docx_第3页
第3页 / 共10页
Windows操作系统实验六实验报告Word文档下载推荐.docx_第4页
第4页 / 共10页
Windows操作系统实验六实验报告Word文档下载推荐.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

Windows操作系统实验六实验报告Word文档下载推荐.docx

《Windows操作系统实验六实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Windows操作系统实验六实验报告Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。

Windows操作系统实验六实验报告Word文档下载推荐.docx

三、工具/准备工作

四、实验内容与步骤

1.虚拟内存的检测

清单6-1所示程序使用VirtualQueryEX()函数来检查虚拟内存空间。

步骤1:

登录进入Windows2000/xpProfessional。

步骤2:

在“开始”菜单中单击“程序-MicrosoftVisualStudio6.0–MicrosoftVisualC++6.0”命令,进入VisualC++窗口。

步骤3:

在工具栏单击“打开”按钮,在“打开”对话框中找到并打开实验源程序6-1.cpp。

步骤4:

单击“Build”菜单中的“Compile6-1.cpp”命令,并单击“是”按钮确认。

系统对6-1.cpp进行编译。

步骤5:

编译完成后,单击“Build”菜单中的“Build6-1.exe”命令,建立6-1.exe可执行文件。

操作能否正常进行?

如果不行,则可能的原因是什么?

_

__

_________________________________________________________________

________________________________________________________________________

步骤6:

在工具栏单击“ExecuteProgram”按钮,执行6-1.exe程序。

1)分析运行结果(如果运行不成功,则可能的原因是什么?

)。

按committed、reserved、free等三种虚拟地址空间分别记录实验数据。

其中“描述”是指对该组数据的简单描述,例如,对下列一组数据:

00010000–00012000/xp<

8.00KB>

Committed,READWRITE,Private

可描述为:

具有READWRITE权限的已调配私有内存区。

将系统当前的自由区(free)虚拟地址空间填入表6-3中。

表6-3实验记录

地址

大小

虚拟地址

空间类型

访问权限

描述

00010000-00012000

8.00KB

free

READWRITE

具有READWRITE权限的已调配私有内存区

00012000-00020000

56.0KB

NOACCESS

没有任何权限的已调配的共有内存区

00020000-00021000

4.00KB

00021000-00030000

60.0KB

00030000-0012c000

0.98MB

READONLY

只具有READ权限的已调配私有内存区

0012c000-0012d000

0012d000-00130000

12.0KB

00130000-00133000

只具有READ权限的已调配内存区

提示:

详细记录实验数据在实验活动中是必要的,但想想是否可以简化记录的办法?

将系统当前的已调配区(committed)虚拟地址空间填入表6-4中。

表6-4实验记录

地址

描述

00010000-00020000(64.0KB)Committed,READWRITE,Mapped

00020000-00030000(64.0KB)Committed,READWRITE,Mapped

0012d000-0012e000(4.00KB)Committed,GUARD,READWRITE,Private

0012e000-00130000(8.00KB)Committed,READWRITE,Private

00130000-00134000(16.0KB)Committed,READONLY,Mapped

00140000-001a7000(412KB)Committed,READONLY,Mapped

001b0000-001b1000(4.00KB)Committed,READWRITE,Private

001c0000-001c1000(4.00KB)Committed,READWRITE,Private

001d0000-001d7000(28.0KB)Committed,READONLY,Mapped

001e0000-001e2000(8.00KB)Committed,READWRITE,Mapped

将系统当前的保留区(reserved)虚拟地址空间填入表6-5中。

表6-5实验记录

0022d000-00300000(844KB)Reserved,READONLY,Private

00306000-003c0000(744KB)Reserved,READONLY,Mapped

003c3000-003c8000(20.0KB)Reserved,READONLY,Mapped

00673000-00680000(52.0KB)Reserved,READONLY,Private

006f4000-01280000(11.5MB)Reserved,READONLY,Mapped

01288000-01380000(992KB)Reserved,READONLY,Private

01406000-01410000(40.0KB)Reserved,READONLY,Private

2)从上述输出结果,对照分析5-2程序,请简单描述程序运行的流程:

____________________________________________________________________

2.虚拟内存操作

清单6-2的示例显示了如何分配一个大容量空间,将物理存储委托给其中的很小一部分(千分之一)并加以使用。

步骤7:

在VisualC++窗口的工具栏中单击“打开”按钮,在“打开”对话框中找到并打开实验源程序6-2.cpp。

步骤8:

单击“Build”菜单中的“Compile6-2.cpp”命令,并单击“是”按钮确认。

系统对6-2.cpp进行编译。

步骤9:

编译完成后,单击“Build”菜单中的“Build6-2.exe”命令,建立6-2.exe可执行文件。

_

___________________________________________________________________

步骤10:

在工具栏单击“ExecuteProgram”按钮,执行6-2.exe程序。

运行结果(如果运行不成功,则可能的原因是什么?

):

1)__标点____________________________________________________

2)__________________________________________________________________

3)__________________________________________________________________

对照运行结果,分析程序6-2。

为了给数据库保留1GB的段地址空间,清单6-2给出了内存分配的四种方法。

·

第一种技术

即程序中说明为__LPVOIDpBlock=:

:

malloc(c_dwGigabyte);

FillZero(pBlock,c_dwMegabyte);

free(pBlock);

_____

的程序段,该段程序试图利用标准C中的malloc()函数,从已经已调配的小内存区获得内存。

从运行结果看,这种技术成功了吗?

_____成功________________。

第二种技术

即程序中说明为_LPVOIDpBlock=:

VirtualAlloc(

NULL,//不指定起始地址

c_dwGigabyte,//要求1GB

MEM_COMMIT,//调配物理存储

PAGE_READWRITE);

//对此的读写操作

FillZero(pBlock,c_dwMegabyte);

VirtualFree(pBlock,0,MEM_RELEASE);

的程序段,该段程序试图通过VirtualAlloc(),然后利用物理备用内存将整个块分配到虚拟内存空间的任何位置。

这种技术只对拥有1GB以上的RAM且都有换页文件的计算机可行。

______成功_______________。

第三种技术

即程序中说明为LPVOIDpBlock=:

c_dwGigabyte,//

MEM_RESERVE,//不调配物理存储

}

要求1GB的程序段,该段程序利用VirtualAlloc(),如果函数成功,则获得大块内存,但不将任何物理内存调配到此块中。

_____不成功____。

第四种技术

VirtualAlloc(

pBlock,

c_dwMegabyte,

MEM_COMMIT,

的程序段,该段程序保留1GB的内存区,然后将物理内存调配给其中的很小一部分(1MB)。

这就是清单6-2介绍的处理一个假想的数据库应用程序的方法:

保留整个块,然后按要求在其一小部分内进行读操作,让系统将用过的区域换页到磁盘中。

利用VirtualLock()API,Windows可用来在自己的进程空间中控制虚拟内存的行为。

这个函数与其成对的VirtualUnlock()阻止或允许一块内存从物理RAM中换页和换页到页面文件中。

这样就会通知系统有一段特定的内存区要求对用户作出强烈的响应,所以系统不应将其移出RAM。

当然,如果要将整个虚拟内存空间锁定,系统就会停留于试图将系统中工作内存的每一小块换页到磁盘。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

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

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