版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、宁德师范学院计算机系实验报告(20142015学年 第二学期)课程名称 操作系统 实验名称 实验四 存储管理 专 业 计算机科学与技术(非师)年 级 2012级 学号 B2012102147 姓名 王 秋 指导教师 王远帆 实验日期 2015-05-20 实验目的与要求:(1)通过对Windows 7“任务管理器”、“计算机管理”、“我的电脑”属性、“系统信息”、“系统监视器”等程序的应用,学习如何察看和调整Windows的内存性能,加深对操作系统存储管理、虚拟存储管理等理论知识的理解。(2)了解Windows 7的内存结构和虚拟内存的管理,理解进程的虚拟内存空间和物理内存的映射关系。实验设备
2、(环境):(1)一台安装有Cygwin Terminal的计算机(2) Windows 7操作系统(3)VC+6.0实验内容:(1)观察和调整Windows的内存性能。(2)了解和检测进程的虚拟内存空间。实验步骤、实验结果及分析:(1)观察和调整Windows的内存性能。1:阅读“背景知识”,请回答:1) 什么是“分页过程”?分页过程就是将信息从主内存移动到磁盘进行临时存储的过程。2)什么是“内存共享”?允许访问某些内存空间而不危及它和其他应用程序的安全性和完整性。3)什么是“未分页合并内存”和“分页合并内存”?Windows 2000中,未分页合并内存的最大限制是多少?未分页合并内存:分页合
3、并内存是存储迟早需要的可分页代码或数据的内存部分。 分页合并内存:未分页合并内存包含必须驻留在内存中的占用代码或数据。 在Windows7中为分业合并内存的最大限制是256MB。1) Windows 分页文件默认设置的最小容量和最大容量是多少?内存数量的1.5倍作为分页文件的最小容量,这个最小容量的两倍作为最大容量。2:登录进入Windows Professional。3:查看包含多个实例的应用程序的内存需求。1) 启动想要监视的应用程序,例如Word。2) 右键单击任务栏以启动“任务管理器”。3) 在“Windows任务管理器”对话框中选定“进程”选项卡。4) 向下滚动在系统上运行的进程列表
4、,查找想要监视的应用程序。请在表4-3中记录:表4-3 实验记录映像名称PIDCPUCPU时间内存使用 WINWORD.EXE 5160 00 0:00:10 22772k图1 word运行情况“内存使用”列显示了该应用程序的一个实例正在使用的内存数量。5) 启动应用程序的另一个实例并观察它的内存需求。请描述使用第二个实例占用的内存与使用第一个实例时的内存对比情况:第二个实例占用内存22772K,比第一个实例占用的内存大很多4:未分页合并内存。估算未分页合并内存大小的最简单方法是使用“任务管理器”。未分页合并内存的估计值显示在“任务管理器”的“性能”选项卡的“核心内存”部分。总数 (K) :_
5、220_分页数:_167_未分页 (K) :_34_图2核心内存还可以使用“任务管理器”查看一个独立进程正在使用的未分页合并内存数量和分页合并内存数量。操作步骤如下:1) 单击“Windows任务管理器”的“进程”选项卡,然后从“查看”菜单中选择“选择列”命令,显示“进程”选项卡的可查看选项。2) 在“选择列”对话框中,选定“页面缓冲池”选项和“非页面缓冲池”选项旁边的复选框,然后单击“确定”按钮。返回Windows “任务管理器”的“进程”选项卡时,将看到其中增加显示了各个进程占用的分页合并内存数量和未分页合并内存数量。仍以刚才打开观察的应用程序 (例如Word) 为例,请在表4-4中记录:
6、表4-4 实验记录映像名称PID内存使用页面缓冲池非页面缓冲池 WINWORD.EXE 2964 37488 951 42从性能的角度来看,未分页合并内存越多,可以加载到这个空间的数据就越多。拥有的物理内存越多,未分页合并内存就越多。但未分页合并内存被限制为256MB,因此添加超出这个限制的内存对未分页合并内存没有影响。5:提高分页性能。在Windows 2000的安装过程中,将使用连续的磁盘空间自动创建分页文件(pagefile.sys) 。用户可以事先监视变化的内存需求并正确配置分页文件,使得当系统必须借助于分页时的性能达到最高。虽然分页文件一般都放在系统分区的根目录下面,但这并不总是该文
7、件的最佳位置。要想从分页获得最佳性能,应该首先检查系统的磁盘子系统的配置,以了解它是否有多个物理硬盘驱动器。1) 在“开始”菜单中单击“设置” “控制面板”命令,双击“管理工具”图标,再双击“计算机管理”图标。2) 在“计算机管理”窗口的左格选择“磁盘管理”管理单元来查看系统的磁盘配置。如果系统只有一个硬盘,那么建议应该尽可能为系统配置额外的驱动器。这是因为:Windows 2000最多可以支持在多个驱动器上分布的16个独立的分页文件。为系统配置多个分页文件可以实现对不同磁盘I/O请求的并行处理,这将大大提高I/O请求的分页文件性能。请在表4-5中记录:表4-5 实验记录卷布局类型文件系统容量
8、状态 C 简单 基本 NTFS 30G 良好(系统) D 简单 基本 NTFS 90G 良好 E 简单 基本 NTFS 90G 良好 F 简单 基本 NTFS 88G 良好 图3磁盘情况6:计算分页文件的大小。要想更改分页文件的位置或大小配置参数,可按以下步骤进行:1) 右键单击桌面上的“我的电脑”图标并选定“属性”。2) 在“高级”选项卡上单击“性能选项”按钮。3) 单击对话框中的“虚拟内存”区域中的“更改”按钮。请记录:所选驱动器的页面文件大小:驱动器:_F_可用空间:_9825_ MB初始大小 (MB) :_ 2048_最大值 (MB) :_4092_所有驱动器页面文件大小的总数:允许的
9、最小值:_16_ MB推荐:_4590_ MB当前已分配:_2048_ MB4) 要想将另一个分页文件添加到现有配置,在“虚拟内存”对话框中选定一个还没有分页文件的驱动器,然后指定分页文件的初始值和最大值 (以兆字节表示) ,单击“设置”,然后单击“确定”。5) 要想更改现有分页文件的最大值和最小值,可选定分页文件所在的驱动器。然后指定分页文件的初始值和最大值,单击“设置”按钮,然后单击“确定”按钮。6) 在“性能选项”对话框中单击“确定”按钮。7) 单击“确定”按钮以关闭“系统特性”对话框。7:使用任务管理器。可以使用“任务管理器”来简单地检查分页文件是否配置了正确容量。这样可以实时提供系统
10、正在使用分页文件的方式以及其他重要系统信息的准确描述。通过右键单击任务栏运行“任务管理器”,选定“性能”选项卡查看实时的系统统计数据。与分页文件大小最有关的信息位于“认可用量”区域。这一区域显示了认可“峰值”是否达到或超过了认可“限制”,以及它是否超过了系统上的物理内存数量。认可“峰值”是指系统迄今为止向进程分配的最大物理内存和虚拟内存数量。请记录:物理内存 (K)总数:_2022224_可用数:_1249540_系统缓存:_806992_认可用量 (K)总数:_930388_限制:_3960780_峰值:_1024464_当系统遇到分页活动增加的情况时,提交的内存数量 (“认可总数”) 就会
11、增加。一旦它达到了“认可限制”值,系统就需要扩展分页文件。“认可限制”值指出在不必扩展分页文件的情况下可以向内存提交的虚拟内存数量。因为目标是避免扩展分页文件,所以必须保持“认可总数”和“认可限制”值相差较大。如果这两个值接近了,那么系统必须动态增加分页文件的大小。“任务管理器”的“认可用量”区域显示的信息还说明了系统的主内存是否足以满足系统执行的任务。如果认可“总数”值经常超过系统中的内存数量,那么系统的物理内存可能不足。(2)了解和检测进程的虚拟内存空间。1:创建一个“Win32 Consol Application”工程,然后拷贝清单4-1中的程序,编译成可执行文件。2:在VC的工具栏单
12、击“Execute Program”(执行程序) 按钮,或者按Ctrl + F5键,或者在“命令提示符”窗口运行步骤1中生成的可执行文件。排版要整理,要层次分明,合理,内容清晰。3:根据运行结果,回答下列问题 虚拟内存每页容量为:_4.00KB_ 最小应用地址:_0x00010000_ 最大应用地址:_0x7ffeffff_ _ 当前可供应用程序使用的内存空间为:_1.99GB_ _ 当前计算机的实际内存大小为:_3GB_ 理论上每个Windows应用程序可以独占的最大存储空间是:_3GB_按committed、reserved、free等三种虚拟地址空间分别记录实验数据。其中“描述”是指对该
13、组数据的简单描述,例如,对下列一组数据:00010000 00017<8.00KB> Committed, READWRITE, Private可描述为:具有READWRITE权限的已调配私有内存区。将系统当前的自由区 (free) 虚拟地址空间填入表4-6中。表4-6 实验记录地址大小虚拟地址空间类型访问权限描述 00134000-00140000 48.0KBfree NOACCESS 有任何权限的已调配的共有内存区 00141000-00150000 60 KBfree NOACCESS 有任何权限的已调配的共有内存
14、区 001b7000-001c0000 36 KBfree NOACCESS 没有任何权限的已调配的共有内存区 00288000-00290000 32 KBfee NOACCESS 没有任何权限的已调配的共有内存区 00391000-003a0000 60 KBfree NOACCESS 没有任何权限的已调配的共有内存区 003b1000-003c0000 60 KBfree NOACCESS 没有任何权限的已调配的共有内存区
15、0;003c1000-003d0000 60 KBfree NOACCESS 没有任何权限的已调配的共有内存区 003d1000-003e000060 KBfree NOACCESS 没有任何权限的已调配的共有内存区 003e1000-003f000060 KBfree NOACCESS 没有任何权限的已调配的共有内存区 003f1000-00400000 60 KBfree NOACCESS 没有任何权限的已调配的共有内存区 0048
16、5000-00490000 44 KBfree NOACCESS 没有任何权限的已调配的共有内存区 00491000-004a0000 60 KBfree NOACCESS 没有任何权限的已调配的共有内存区 004a7-004b0000 56 KBfree NOACCESS 没有任何权限的已调配的共有内存区 004b1000-004c00060 KBfree NOACCESS 没有任何权限的已调配的共有内存区 004c1000-004d
17、000060 KBfree NOACCESS 没有任何权限的已调配的共有内存区004d7000-004e0000 36 KBfree NOACCESS 没有任何权限的已调配的共有内存区 004e7-00570000568 KBfee NOACCESS 没有任何权限的已调配的共有内存区00590000-00650000768 KBfree NOACCESS 没有任何权限的已调配的共有内存区00185b000-700000001.72GB free&
18、#160;NOACCESS 没有任何权限的已调配的共有内存区70001000-73750000 55.3MB free NOACCESS 没有任何权限的已调配的共有内存区 73845000-74f5000023MB free NOACCESS 没有任何权限的已调配的共有内存区 74f59000-74f6000028 KBfree NOACCESS 没有任何权限的已调配的共有内存区74f9#160; 1.94MBfree
19、;NOACCESS 没有任何权限的已调配的共有内存区 751db000-754300002.33MBfree NOACCESS 没有任何权限的已调配的共有内存区75487000-7549000036 KBfree NOACCESS 没有任何权限的已调配的共有内存区 将系统当前的已调配区 (committed) 虚拟地址空间填入表4-7中表4-7 实验记录地址大小虚拟地址空间类型访问权限描述 00010000-00070 64KBcommitted READWRITE 具有READWRI
20、TE权限的已调配私有内存区。 00070-0003000064 KBcommitted READWRITE 具有READWRITE权限的已调配私有内存区。 0012d000-0012e0004 KBcommitted GUARD,READWRITE 具有GUARD,READWRITE权限的已调配私有内存区。 0012e000-001300008 KBcommitted READWRITE 具有READWRITE权限的已调配私有内存区。 00130000-001340
21、00 16 KBcommitted READONLY 具有READONLY权限的已调配私有内存区。 00140000-001410004 KBcommitted READWRITE 具有READWRITE权限的已调配私有内存区。 00150000-001b7000412 KBcommitted READONLY 具有READONLY权限的已调配私有内存区。 001c0000-001c5000 20 KBcommitted READONLY 具有R
22、EADONLY权限的已调配私有内存区。 00280000-0028300012 KBcommitted READONLY 具有READONLY权限的已调配私有内存区。 00290000-00391000 1MBcommitted READONLY 具有READONLY权限的已调配私有内存区。 003a0000-003a10004 KBcommitted READWRITE 具有READWRITE权限的已调配私有内存区。 003b0000-003b10004
23、;KBcommitted READWRITE 具有READWRITE权限的已调配私有内存区。 003c0000-003c1000 4 KBcommitted EX-READWRITE 具有EX-READWRITE权限的已调配私有内存区。 003d0000-003d10004 KBcommitted EX-READWRITE 具有READWRITE权限的已调配私有内存区。 003e0000-003e10004 KBcommitted EX-READWRITE
24、;具有EX-READWRITE权限的已调配私有内存区。 003f0000-003f10004 KBcommitted EX-READWRITE 具有EX-READWRITE权限的已调配私有内存区。 00400000-004010004 KBcommitted RX-READWRITE 具有EX-READWRITE权限的已调配私有内存区。 00401000-00470000444 KBcommitted EX-READ 具有EX-READ权限的已调配私有内存区。 00
25、470000-0047800032 KBcommitted READONLY 具有READONLY权限的已调配私有内存区。 00478000-0047b00012 KBcommitted READWRITE 具有READWRITE权限的已调配私有内存区。 0047b000-0047d0008 KBcommitted WRITECOPY 具有WRITECOPY权限的已调配私有内存区。 0047d000-0048100016 KBcommitte
26、d READWRITE 具有READWRITE权限的已调配私有内存区。 00481000-0048500016 KBcommitted READONLY 具有READONLY权限的已调配私有内存区。 00490000-004sf000124 KBcommitted READWRITE 具有READWRITE权限的已调配私有内存区。 00590000-00597 8 KBcommitted READONLY 具
27、有READONLY权限的已调配私有内存区。将系统当前的保留区 (reserved) 虚拟地址空间填入表4-8中。表4-8 实验记录地址大小虚拟地址空间类型访问权限描述 00030000-0012D0000.98MB reserved READONLY 具有READONLY权限的已调配私有内存区 001C5000-00280000748KB reserved READONLY 具有READONLY权限的已调配私有内存区 00283000-0028800020KB reserved REA
28、DONLY 具有READONLY权限的已调配私有内存区 004AF000-00590000900KB reservedREADONLY 具有READONLY权限的已调配私有内存区 00607000-0061000036KB reserved READONLY 具有READONLY权限的已调配私有内存区 00613000-0067052KB reserved READONLY 具有READONLY权限的已调配私有内存区 0069d000-007700008
29、44KB reserved READONLY 具有READONLY权限的已调配私有内存区 007c6000-01370000 11.6MBreserved READONLY 具有READONLY权限的已调配私有内存区 01370000-0146d000 0.98MBreserved READONLY 具有READONLY权限的已调配私有内存区 014f3000-01500000 52KBreserved READONLY 具有READONLY权限
30、的已调配私有内存区实验结论:简单描述windows进程的虚拟内存管理方案:通过对文件的操作权限,有只读,读写,不允许访问等等和不同的调度方式实现对虚拟内存的管理。程序代码清单程序4-1代码:#include <windows.h>#include <iostream>#include <shlwapi.h>#include <iomanip>#pragma comment(lib, "Shlwapi.lib")inline bool TestSet(DWORD dwTarget, DWORD dwMask) return (d
31、wTarget &dwMask) = dwMask) ;# define SHOWMASK(dwTarget, type) if (TestSet(dwTarget, PAGE_#type) ) std : cout << ", " << #type; void ShowProtection(DWORD dwTarget) SHOWMASK(dwTarget, READONLY) ; SHOWMASK(dwTarget, GUARD) ; SHOWMASK(dwTarget, NOCACHE) ; SHOWMASK(dwTarget, REA
32、DWRITE) ; SHOWMASK(dwTarget, WRITECOPY) ; SHOWMASK(dwTarget, EXECUTE) ; SHOWMASK(dwTarget, EXECUTE_READ) ; SHOWMASK(dwTarget, EXECUTE_READWRITE) ; SHOWMASK(dwTarget, EXECUTE_WRITECOPY) ; SHOWMASK(dwTarget, NOACCESS) ;void WalkVM(HANDLE hProcess) SYSTEM_INFO si; : ZeroMemory(&si, sizeof(si) ) ; :
33、 GetSystemInfo(&si) ; MEMORY_BASIC_INFORMATION mbi; : ZeroMemory(&mbi, sizeof(mbi) ) ; LPCVOID pBlock = (LPVOID) si.lpMinimumApplicationAddress; while (pBlock < si.lpMaximumApplicationAddress) if (: VirtualQueryEx( hProcess, pBlock, &mbi, sizeof(mbi)=sizeof(mbi) ) LPCVOID pEnd = (PBYT
34、E) pBlock + mbi.RegionSize;TCHAR szSizeMAX_PATH; : StrFormatByteSize(mbi.RegionSize, szSize, MAX_PATH) ; std : cout.fill ('0') ; std : cout << std : hex << std : setw(8) << (DWORD) pBlock << "-" << std : hex << std : setw(8) << (DWORD) pEnd
35、 << (: strlen(szSize)=7? " (" : " (") << szSize << ") " ; switch(mbi.State) case MEM_COMMIT :std : cout << "Committed" ;break; case MEM_FREE :std : cout << "Free" ;break; case MEM_RESERVE :std : cout << "Reser
36、ved" ;break; if(mbi.Protect=0 && mbi.State!=MEM_FREE) mbi.Protect=PAGE_READONLY; ShowProtection(mbi.Protect); switch(mbi.Type) case MEM_IMAGE :std : cout << ", Image" ;break;case MEM_MAPPED:std : cout << ", Mapped"break; case MEM_PRIVATE :std : cout <&
37、lt; ", Private" ;break; TCHAR szFilename MAX_PATH ; if (: GetModuleFileName ( (HMODULE) pBlock,szFilename, MAX_PATH)>0) : PathStripPath(szFilename) ; std : cout << ", Module: " << szFilename; std : cout << std : endl; pBlock = pEnd; void ShowVirtualMemory() S
38、YSTEM_INFO si; : ZeroMemory(&si, sizeof(si) ) ; : GetSystemInfo(&si) ; TCHAR szPageSizeMAX_PATH; :StrFormatByteSize(si.dwPageSize, szPageSize, MAX_PATH) ; DWORD dwMemSize = (DWORD)si.lpMaximumApplicationAddress - (DWORD) si.lpMinimumApplicationAddress; TCHAR szMemSize MAX_PATH ; : StrFormatByteSize(dwMemSize, szMemSize, MAX_PATH) ; std : cout << "Virtual memo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2021国企风控岗社招笔试押题卷含参考答案
- 电气安装技术规范培训方案
- 2026浙江温州市残疾人康复服务指导中心招聘编外康复教师2人备考题库【名师系列】附答案详解
- 2026浙江温州桐君堂药材有限公司招聘营业员1人备考题库含完整答案详解(夺冠系列)
- 2026新疆第七师医院医共体上半年招聘87人备考题库(综合题)附答案详解
- 施工现场职业健康检测方案
- 2026年春季学期教导主任关于落实教学管理全流程精细化实现学校高质量发展的思考与建议
- 施工现场标识标牌设置方案
- 2026年春季学期初中八年级语文备课组三月作文教学提升模板
- 2024-2025学年医学检验(士)模拟试题附答案详解【突破训练】
- 北师大版六年级下册《正比例》课件市公开课一等奖省赛课获奖课件
- 整体式铁路信号箱式机房产品介绍
- 颌面部骨折围手术期的护理
- 地铁行业沟通技巧分析
- 2023年六年级小升初自荐信简历
- 清明时节 奠说巴人获奖科研报告
- 主蒸汽管道更换施工方案
- 如何给领导拍照
- 初中校本课程-【校本课程】春节教学课件设计
- 注塑模具相关零件加工工艺过程卡片
- 急性上消化道出血中心建设PPT文档
评论
0/150
提交评论