操作系统实验四存储管理.docx

上传人:b****4 文档编号:5239782 上传时间:2022-12-14 格式:DOCX 页数:21 大小:84.69KB
下载 相关 举报
操作系统实验四存储管理.docx_第1页
第1页 / 共21页
操作系统实验四存储管理.docx_第2页
第2页 / 共21页
操作系统实验四存储管理.docx_第3页
第3页 / 共21页
操作系统实验四存储管理.docx_第4页
第4页 / 共21页
操作系统实验四存储管理.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

操作系统实验四存储管理.docx

《操作系统实验四存储管理.docx》由会员分享,可在线阅读,更多相关《操作系统实验四存储管理.docx(21页珍藏版)》请在冰豆网上搜索。

操作系统实验四存储管理.docx

操作系统实验四存储管理

宁德师范学院计算机系

实验报告

(2014—2015学年第二学期)

课程名称操作系统

实验名称实验四存储管理

专业计算机科学与技术(非师)

年级2012级

学号B2012102147姓名王秋

指导教师王远帆

实验日期2015-05-20

 

实验目的与要求:

(1)通过对Windows7“任务管理器”、“计算机管理”、“我的电脑”属性、“系统信息”、“系统监视器”等程序的应用,学习如何察看和调整Windows的内存性能,加深对操作系统存储管理、虚拟存储管理等理论知识的理解。

(2)了解Windows7的内存结构和虚拟内存的管理,理解进程的虚拟内存空间和物理内存的映射关系。

实验设备(环境):

(1)一台安装有CygwinTerminal的计算机

(2)Windows7操作系统

(3)VC++6.0

实验内容:

(1)观察和调整Windows的内存性能。

(2)了解和检测进程的虚拟内存空间。

实验步骤、实验结果及分析:

(1)观察和调整Windows的内存性能。

1:

阅读“背景知识”,请回答:

1)什么是“分页过程”?

分页过程就是将信息从主内存移动到磁盘进行临时存储的过程。

2)什么是“内存共享”?

允许访问某些内存空间而不危及它和其他应用程序的安全性和完整性。

3)什么是“未分页合并内存”和“分页合并内存”?

Windows2000中,未分页合并内存的最大限制是多少?

未分页合并内存:

分页合并内存是存储迟早需要的可分页代码或数据的内存部分。

分页合并内存:

未分页合并内存包含必须驻留在内存中的占用代码或数据。

在Windows7中为分业合并内存的最大限制是256MB。

1)Windows分页文件默认设置的最小容量和最大容量是多少?

内存数量的1.5倍作为分页文件的最小容量,这个最小容量的两倍作为最大容量。

2:

登录进入WindowsProfessional。

3:

查看包含多个实例的应用程序的内存需求。

1)启动想要监视的应用程序,例如Word。

2)右键单击任务栏以启动“任务管理器”。

3)在“Windows任务管理器”对话框中选定“进程”选项卡。

4)向下滚动在系统上运行的进程列表,查找想要监视的应用程序。

请在表4-3中记录:

表4-3实验记录

映像名称

PID

CPU

CPU时间

内存使用

WINWORD.EXE

5160

00

0:

00:

10

22772k

图1word运行情况

“内存使用”列显示了该应用程序的一个实例正在使用的内存数量。

5)启动应用程序的另一个实例并观察它的内存需求。

请描述使用第二个实例占用的内存与使用第一个实例时的内存对比情况:

第二个实例占用内存22772K,比第一个实例占用的内存大很多

4:

未分页合并内存。

估算未分页合并内存大小的最简单方法是使用“任务管理器”。

未分页合并内存的估计值显示在“任务管理器”的“性能”选项卡的“核心内存”部分。

总数(K):

________220___________

分页数:

__________167___________

未分页(K):

_________34__________

图2核心内存

还可以使用“任务管理器”查看一个独立进程正在使用的未分页合并内存数量和分页合并内存数量。

操作步骤如下:

1)单击“Windows任务管理器”的“进程”选项卡,然后从“查看”菜单中选择“选择列”命令,显示“进程”选项卡的可查看选项。

2)在“选择列”对话框中,选定“页面缓冲池”选项和“非页面缓冲池”选项旁边的复选框,然后单击“确定”按钮。

返回Windows“任务管理器”的“进程”选项卡时,将看到其中增加显示了各个进程占用的分页合并内存数量和未分页合并内存数量。

仍以刚才打开观察的应用程序(例如Word)为例,请在表4-4中记录:

表4-4实验记录

映像名称

PID

内存使用

页面缓冲池

非页面缓冲池

WINWORD.EXE

2964

37488

951

42

从性能的角度来看,未分页合并内存越多,可以加载到这个空间的数据就越多。

拥有的物理内存越多,未分页合并内存就越多。

但未分页合并内存被限制为256MB,因此添加超出这个限制的内存对未分页合并内存没有影响。

5:

提高分页性能。

在Windows2000的安装过程中,将使用连续的磁盘空间自动创建分页文件(pagefile.sys)。

用户可以事先监视变化的内存需求并正确配置分页文件,使得当系统必须借助于分页时的性能达到最高。

虽然分页文件一般都放在系统分区的根目录下面,但这并不总是该文件的最佳位置。

要想从分页获得最佳性能,应该首先检查系统的磁盘子系统的配置,以了解它是否有多个物理硬盘驱动器。

1)在“开始”菜单中单击“设置”–“控制面板”命令,双击“管理工具”图标,再双击“计算机管理”图标。

2)在“计算机管理”窗口的左格选择“磁盘管理”管理单元来查看系统的磁盘配置。

如果系统只有一个硬盘,那么建议应该尽可能为系统配置额外的驱动器。

这是因为:

Windows2000最多可以支持在多个驱动器上分布的16个独立的分页文件。

为系统配置多个分页文件可以实现对不同磁盘I/O请求的并行处理,这将大大提高I/O请求的分页文件性能。

请在表4-5中记录:

表4-5实验记录

布局

类型

文件系统

容量

状态

C

简单

基本

NTFS

30G

良好(系统)

D

简单

基本

NTFS

90G

良好

E

简单

基本

NTFS

90G

良好

F

简单

基本

NTFS

88G

良好

图3磁盘情况

6:

计算分页文件的大小。

要想更改分页文件的位置或大小配置参数,可按以下步骤进行:

1)右键单击桌面上的“我的电脑”图标并选定“属性”。

2)在“高级”选项卡上单击“性能选项”按钮。

3)单击对话框中的“虚拟内存”区域中的“更改”按钮。

请记录:

所选驱动器的页面文件大小:

驱动器:

______________F_____________________

可用空间:

___________9825_____________________MB

初始大小(MB):

_____2048______________________

最大值(MB):

________4092_____________________

所有驱动器页面文件大小的总数:

允许的最小值:

________16____________________MB

推荐:

____________4590________________________MB

当前已分配:

________2048______________________MB

4)要想将另一个分页文件添加到现有配置,在“虚拟内存”对话框中选定一个还没有分页文件的驱动器,然后指定分页文件的初始值和最大值(以兆字节表示),单击“设置”,然后单击“确定”。

5)要想更改现有分页文件的最大值和最小值,可选定分页文件所在的驱动器。

然后指定分页文件的初始值和最大值,单击“设置”按钮,然后单击“确定”按钮。

6)在“性能选项”对话框中单击“确定”按钮。

7)单击“确定”按钮以关闭“系统特性”对话框。

7:

使用任务管理器。

可以使用“任务管理器”来简单地检查分页文件是否配置了正确容量。

这样可以实时提供系统正在使用分页文件的方式以及其他重要系统信息的准确描述。

通过右键单击任务栏运行“任务管理器”,选定“性能”选项卡查看实时的系统统计数据。

与分页文件大小最有关的信息位于“认可用量”区域。

这一区域显示了认可“峰值”是否达到或超过了认可“限制”,以及它是否超过了系统上的物理内存数量。

认可“峰值”是指系统迄今为止向进程分配的最大物理内存和虚拟内存数量。

请记录:

物理内存(K)

总数:

________2022224_______________

可用数:

_______1249540______________

系统缓存:

______806992______________

认可用量(K)

总数:

_________930388_______________

限制:

________3960780_______________

峰值:

________1024464______________

当系统遇到分页活动增加的情况时,提交的内存数量(“认可总数”)就会增加。

一旦它达到了“认可限制”值,系统就需要扩展分页文件。

“认可限制”值指出在不必扩展分页文件的情况下可以向内存提交的虚拟内存数量。

因为目标是避免扩展分页文件,所以必须保持“认可总数”和“认可限制”值相差较大。

如果这两个值接近了,那么系统必须动态增加分页文件的大小。

“任务管理器”的“认可用量”区域显示的信息还说明了系统的主内存是否足以满足系统执行的任务。

如果认可“总数”值经常超过系统中的内存数量,那么系统的物理内存可能不足。

(2)了解和检测进程的虚拟内存空间。

1:

创建一个“Win32ConsolApplication”工程,然后拷贝清单4-1中的程序,编译成可执行文件。

2:

在VC的工具栏单击“ExecuteProgram”(执行程序)按钮,或者按Ctrl+F5键,或者在“命令提示符”窗口运行步骤1中生成的可执行文件。

3:

根据运行结果,回答下列问题

虚拟内存每页容量为:

_________4.00KB_______________________________

最小应用地址:

_____________0x00010000_____________________________

最大应用地址:

_____________0x7ffeffff___________________________

当前可供应用程序使用的内存空间为:

_______1.99GB_________________

当前计算机的实际内存大小为:

__________3GB_________________________

理论上每个Windows应用程序可以独占的最大存储空间是:

___3GB______

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

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

00010000–00017<8.00KB>Committed,READWRITE,Private

可描述为:

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

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

表4-6实验记录

地址

大小

虚拟地址

空间类型

访问权限

描述

 00134000-00140000

 48.0KB

free

 NOACCESS

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

 00141000-00150000

 60KB

free

 NOACCESS

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

 001b7000-001c0000

 36KB

free

 NOACCESS

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

 00288000-00290000

 32KB

f

ee

 NOACCESS

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

 00391000-003a0000

 60KB

free

 NOACCESS

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

 003b1000-003c0000

 60KB

free

 NOACCESS

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

 003c1000-003d0000

 60KB

free

 NOACCESS

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

 003d1000-003e0000

60 KB

free

 NOACCESS

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

 003e1000-003f0000

60 KB

free

 NOACCESS

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

 003f1000-00400000

 60KB

free

 NOACCESS

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

 00485000-00490000

 44KB

free

 NOACCESS

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

 00491000-004a0000

 60KB

free

 NOACCESS

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

 004a7-004b0000

 56KB

free

 NOACCESS

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

 004b1000-004c000

60 KB

free

 NOACCESS

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

 004c1000-004d0000

60 KB

free

 NOACCESS

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

004d7000-004e0000 

36 KB

free

 NOACCESS

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

 004e7-00570000

568 KB

f

ee

 NOACCESS

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

00590000-00650000

768 KB

free

 NOACCESS

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

00185b000-70000000

1.72GB 

free

 NOACCESS

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

70001000-73750000 

55.3MB 

free

 NOACCESS

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

 73845000-74f50000

23MB 

free

 NOACCESS

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

 74f59000-74f60000

28 KB

free

 NOACCESS

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

74f9d000-75190000 

 1.94MB

free

 NOACCESS

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

 751db000-75430000

2.33MB

free

 NOACCESS

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

75487000-75490000

36KB

free

 NOACCESS

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

 

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

表4-7实验记录

地址

大小

虚拟地址

空间类型

访问权限

描述

 00010000-00070

 64KB

committed

 READWRITE

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

 00070-00030000

64 KB

committed

 READWRITE

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

 0012d000-0012e000

4 KB

committed

 GUARD,READWRITE

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

 0012e000-00130000

8 KB

committed

 READWRITE

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

 00130000-00134000

 16KB

committed

 READONLY

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

 00140000-00141000

4 KB

committed

 READWRITE

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

 00150000-001b7000

412 KB

committed

 READONLY

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

 001c0000-001c5000

 20KB

committed

 READONLY

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

 00280000-00283000

12 KB

committed

 READONLY

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

 00290000-00391000

 1MB

committed

 READONLY

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

 003a0000-003a1000

4 KB

committed

 READWRITE

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

 003b0000-003b1000

4 KB

committed

 READWRITE

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

 003c0000-003c1000

 4KB

committed

 EX-READWRITE

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

 003d0000-003d1000

4 KB

committed

 EX-READWRITE

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

 003e0000-003e1000

4 KB

committed

 EX-READWRITE

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

 003f0000-003f1000

4 KB

committed

 EX-READWRITE

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

 00400000-00401000

4 KB

committed

 RX-READWRITE

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

 00401000-00470000

444 KB

committed

 EX-READ

 具有EX-READ权限的已调配私有内存区。

 00470000-00478000

32 KB

committed

 READONLY

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

 00478000-0047b000

12 KB

committed

  READWRITE

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

 0047b000-0047d000

8 KB

committed

  WRITECOPY

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

 0047d000-00481000

16 KB

committed

  READWRITE

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

 00481000-00485000

16 KB

committed

  READONLY

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

 00490000-004sf000

124 KB

committed

  READWRITE

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

 00590000-00597

 8KB

committed

  READONLY

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

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

表4-8实验记录

地址

大小

虚拟地址

空间类型

访问权限

描述

 00030000-0012D000

0.98MB 

reserved

 READONLY

 具有READONLY权限的

已调配私有内存区

 001C5000-00280000

748KB 

reserved

 READONLY

 具有READONLY权限的

已调配私有内存区

 00283000-00288000

20KB 

reserved

 READONLY

 具有READONLY权限的

已调配私有内存区

 004AF000-00590000

900KB 

reserved

READONLY 

 具有READONLY权限的

已调配私有内存区

 00607000-00610000

36KB 

reserved

 READONLY

 具有READONLY权限的

已调配私有内存区

 00613000-00670

52KB 

reserved

 READONLY

 具有READONLY权限的

已调配私有内存区

 0069d000-00770000

844KB 

reserved

 READONLY

 具有READONLY权限的

已调配私有内存区

 007c6000-01370000

 11.6MB

reserved

 READONLY

 具有READONLY权限的

已调配私有内存区

 01370000-0146d000

 0.98MB

reserved

 READONLY

 具有READONLY权限的

已调配私有内存区

 014f3000-01500000

 52KB

reserved

 READONLY

 具有READONLY权限的

已调配私有内存区

实验结论:

简单描述windows进程的虚拟内存管理方案:

通过对文件的操作权限,有只读,读写,不允许访问等等和不同的调度方式实现对虚拟内存的管理。

程序代码清单

程序4-1代码:

#include

#include

#include

#include

#pragmacomment(lib,"Shlwapi.lib")

inlineboolTestSet(DWORDdwTarget,DWORDdwMask)

{

return((dwTarget&dwMask)==dwMask);

}

#defineSHOWMASK(dwTarget,type)\

if(TestSet(dwTarget,PAGE_##type))\

{std:

:

cout<<","<<#type;}

voidShowProtection(DWORDdwTarget)

{

SHOWMASK(dwTarget,READONLY);

SHOWMASK(dwTarget,GUARD);

SHOWMASK(dwTarget,NOCACHE);

SHOWMASK(dwTarget,READWRITE);

SHOWMASK(dwTarget,WRITECOPY);

SHOWMASK(dwTarget,EXECUTE);

SHOWMASK(dwTarget,EXECUTE_READ);

SHOWMASK(dwTarget,EXECUTE_READWRITE);

SHOWMASK(dwTarget,EXECUTE_WRITECOPY);

SHOWMASK(dwTarget,NOACCESS);

}

voidWalkVM(HANDLEhProcess)

{

SYST

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

当前位置:首页 > 人文社科

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

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