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

上传人:b****6 文档编号:7103303 上传时间:2023-01-17 格式:DOCX 页数:21 大小:28.91KB
下载 相关 举报
操作系统实验四存储管理.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

操作系统实验四存储管理操作系统实验四存储管理宁德师范学院计算机系实验报告实验报告(20142015学年第二学期)课程名称操作系统实验名称实验四存储管理专业计算机科学与技术(非师)年级2012级学号B2012102147姓名王秋指导教师王远帆实验日期2015-05-20实验目的与要求:

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

了解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实验记录映像名称PIDCPUCPU时间内存使用WINWORD.EXE5160000:

00:

1022772k真Window任务苣理器回立件旧进项g5E(H庄用程吊进程軀劳_性龍丄尿网丄闲户亦曲FIB用户若CfU内机分锐丰页厂PCConporiia.-.3S32UM00lEgK.轴KCMA.exe3624LIH002P7O0K176KPCCoflijaftifr.3836UH00lr52KNDEB酬倉Wh酣3732口JI001,10QK旳K4196UH26,149Bt4T4Ktiiskner.exe42GBLIM002.65&K.135Kwn-aacll.427BUN00ir576K114ETfLobaePirit.431&UN000r032K105KTIF1alEmm.”4T4BUHaomr94KoIlwsEV.4X&S1DDLIMonIQ4K9TECDmha51.exeSI12LIM00ir(M6K96EAlitiybsflk.5L4BUN004.720K1H0K:

numuieye引帀UNgg23,OSSK丽3氐:

Evchast.ea7ZDLDCtL.兀736rBTK:

svchost.exe1252LOCAL.onT公2K.nilkfi.svchost.ese1364LOC肛.004.020KHOK.litJ显示商有周户的退程&结丟进程进题75CPU修用玺12%吻毘田津37J二一图1word运行情况“内存使用”列显示了该应用程序的一个实例正在使用的内存数量。

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

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

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

未分页合并内存。

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

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

总数(K):

220分页数:

167未分页(K):

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

操作步骤如下:

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

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

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

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

表4-4实验记录映像名称PID内存使用页面缓冲池非页面缓冲池WINWORD.EXE29643748895142从性能的角度来看,未分页合并内存越多,可以加载到这个空间的数据就越多。

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

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

5:

提高分页性能。

在Windows2000的安装过程中,将使用连续的磁盘空间自动创建分页文件(pagefile.sys)用户可以事先监视变化的内存需求并正确配置分页文件,使得当系统必须借助于分页时的性能达到最高。

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

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

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

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

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

这是因为:

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

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

请在表4-5中记录:

表4-5实验记录卷布局类型文件系统容量状态C简单基本NTFS30GD简单基本NTFS90G良好E简单基本NTFS90G良好F简单基本NTFS88G良好卷布局I类型I文件累统I状态I容量CJI(C:

)简单NTFS状态良好妙,BA活赦故眸储.主分区)30.01GBcjj(D:

简单基本NTFS狀态良好住分区)90.00(E3简单基本NTFS状态良好住分因90.00(F:

】简单NTFS状态艮好(页面文件主分区)38.0SGB图3磁盘情况6:

计算分页文件的大小。

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

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

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

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

请记录:

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

驱动器:

F可用空间:

9825MB初始大小(MB):

2048_最大值(MB):

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

允许的最小值:

16MB推荐:

4590MB当前已分配:

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

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-00017Committed,READWRITE,Private可描述为:

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

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

表4-6实验记录地址大小虚拟地访问权限描述址空间类型00134000-0014048.0KBfreeNOACC有任何权限的已调配的000ESS共有内存区00141000-0015060KBfreeNOACC有任何权限的已调配的000ESS共有内存区001b7000-001c036KBfreeNOACC没有任何权限的已调配000ESS的共有内存区00288000-0029032KBfNOACC没有任何权限的已调配000eeESS的共有内存区00391000-003a060KBfreeNOACC没有任何权限的已调配000ESS的共有内存区003b1000-003c060KBfreeNOACC没有任何权限的已调配000ESS的共有内存区003c1000-003d060KBfreeNOACC没有任何权限的已调配000ESS的共有内存区003d1000-003e060KBfreeNOACC没有任何权限的已调配000ESS的共有内存区003e1000-003f060KBfreeNOACC没有任何权限的已调配000ESS的共有内存区003f1000-0040060KBfreeNOACC没有任何权限的已调配000ESS的共有内存区00485000-0049044KBfreeNOACC没有任何权限的已调配000ESS的共有内存区00491000-004a060KBfreeNOACC没有任何权限的已调配000ESS的共有内存区004a7-004b000056KBfreeNOACC没有任何权限的已调配ESS的共有内存区004b1000-004c060KBfreeNOACC没有任何权限的已调配00ESS的共有内存区004c1000-004d060KBfreeNOACC没有任何权限的已调配000ESS的共有内存区004d7000-004e036KBfreeNOACC没有任何权限的已调配000ESS的共有内存区004e7-00570000568KBfNOACC没有任何权限的已调配eeESS的共有内存区00590000-006500768KBfreeNOACC没有任何权限的已调配00ESS的共有内存区00185b000-70001.72GBfreeNOACCESS没有任何权限的已调配的共有内存区000070001000-7375000055.3MBfreeNOACCESS没有任何权限的已调配的共有内存区73845000-74f5000023MBfreeNOACCESS没有任何权限的已调配的共有内存区74f59000-74f6000028KBfreeNOACCESS没有任何权限的已调配的共有内存区74f9d000-751900001.94MBfreeNOACCESS没有任何权限的已调配的共有内存区751db000-754300002.33MBfreeNOACCESS没有任何权限的已调配的共有内存区75487000-7549000036KBfreeNOACCESS没有任何权限的已调配的共有内存区将系统当前的已调配区(committed)虚拟地址空间填入表4-7中表4-7实验记录地址大小虚拟地址空间类型访问权限描述00010000-0007064KBcommittedREADWRITE具有READWRITE权限的已调配私有内存区。

00070-0003000064KBcommittedREADWRITE具有READWRITE权限的已调配私有内存区。

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

0012e000-001300008KBcommittedREADWRITE具有READWRITE权限的已调配私有内存区。

00130000-0013400016KBcommittedREADONLY具有READONLY权限的已调配私有内存区。

00140000-001410004KBcommittedREADWRITE具有READWRITE权限的已调配私有内存区。

00150000-001b7000412KBcommittedREADONLY具有READONLY权限的已调配私有内存区。

001c0000-001c500020KBcommittedREADONLY具有READONLY权限的已调配私有内存区。

00280000-0028312KBcommiREADON具有READONLY权限的000ttedLY已调配私有内存区。

00290000-003911MBcommiREADON具有READONLY权限的000ttedLY已调配私有内存区。

003a0000-003a14KBcommiREADWR具有READWRITE权限的000ttedITE已调配私有内存区。

003b0000-003b14KBcommiREADWR具有READWRITE权限的000ttedITE已调配私有内存区。

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

003d0000-003d14KBcommiEX-READ具有READWRITE权限的000ttedWRITE已调配私有内存区。

003e0000-003e14KBcommiEX-READ具有EX-READWRITE权000ttedWRITE限的已调配私有内存区。

003f0000-003f104KBcommiEX-READ具有EX-READWRITE权00ttedWRITE限的已调配私有内存区。

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

00401000-00470444KBcommiEX-READ具有EX-READ权限的已000tted调配私有内存区。

00470000-0047832KBcommiREADON具有READONLY权限的000ttedLY已调配私有内存区。

00478000-0047b12KBcommiREADW具有READWRITE权限的000ttedRITE已调配私有内存区。

0047b000-0047d8KBcommiWRITEC具有WRITECOPY权限的000ttedOPY已调配私有内存区。

0047d000-0048116KBcommiREADW具有READWRITE权限的000ttedRITE已调配私有内存区。

00481000-0048516KBcommiREADO具有READONLY权限的000ttedNLY已调配私有内存区。

00490000-004sf0124KBcommiREADW具有READWRITE权限的00ttedRITE已调配私有内存区。

00590000-005978KBcommittedREADONLY具有READONLY权限的已调配私有内存区。

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

表4-8实验记录地址大小虚拟地访问权限描述址空间类型00030000-0012D0000.98MBreservedREADONLY具有READONLY已调配私有内存区权限的001C5000-00280000748KBreservedREADONLY具有READONLY已调配私有内存区权限的00283000-0028820KBreserveREADON具有READONLY权限的000dLY已调配私有内存区004AF000-00590000900KBreservedREADONLY具有READONLY已调配私有内存区权限的00607000-0061036KBreserveREADON具有READONLY权限的000dLY已调配私有内存区00613000-0067052KBreservedREADONLY具有READONLY已调配私有内存区权限的0069d000-00770000844KBreservedREADONLY具有READONLY已调配私有内存区权限的007c6000-0137011.6MBreservedREADONLY具有READONLY权限的000已调配私有内存区01370000-0146d0000.98MBreservedREADONLY具有READONLY已调配私有内存区权限的014f3000-0150052KBreserveREADON具有READONLY权限的000dLY已调配私有内存区实验结论:

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

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

程序代码清单程序4-1代码:

#include#inelude#inelude#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)SYSTEM_INFOsi;:

ZeroMemory(&si,sizeof(si);:

GetSystemInfo(&si);MEMORY_BASIC_INFORMATIONmbi;:

ZeroMemory(&mbi,sizeof(mbi);LPCVOIDpBlock=(LPVOID)si.lpMinimumApplicationAddress;while(pBlocksi.lpMaximumApplicationAddress)if(:

VirtualQueryEx(hProcess,pBlock,&mbi,sizeof(mbi)=sizeof(mbi)LPCVOIDpEnd=(PBYTE)pBlock+mbi.RegionSize;TCHARszSizeMAX_PATH;:

StrFormatByteSize(mbi.RegionSize,szSize,MAX_PATH);std:

cout.fill(0);std:

coutstd:

hexstd:

setw(8)(DWORD)pBlock-std:

hexstd:

setw(8)(DWORD)pEnd(:

strlen(szSize)=7?

(:

()szSize);switch(mbi.State)caseMEM_COMMIT:

std:

coutCommitted;break;c

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

当前位置:首页 > 解决方案 > 学习计划

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

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