周俊霞内存管理实验报告
操作系统实验—内存管理实验报告
周俊霞2
1121120
2 1
211307班
实习2:内存管理实验
一 目的
在本次实验中需要从不同的侧面了解inow 200XP的虚拟内存机制。在ind os
20 /X操作系统中可以通过一些API 操纵虚拟内存。主要需要了解以下几方面
Wndo ws 000/XP 虚拟存储系统的组织
如何控制虚拟内存空间
如何编写内存追踪和显示工具
详细了解与内存相关的API函数的使用
二、Winow 200/X虚拟内存机制简介:
内存管理是Windows 200/P执行体的一部分位于No skrnl exe文件中是整个操作系统的重要组成部分。
默认情况下 32 位Wind o ws 00/XP上每个用户进程可以
周俊霞内存管理实验报告
占有2G的私有地址空间操作系统占有剩下的2.
Winows 2 0/XP 在x6体系结构上利用二级页表结构来实现虚拟地址向物理地址的变换。
一个32 位虚拟地址被解释为三个独立的分量—-页目录索引、页表索引和字节索引——它们用于找出描述页面映射结构的索引。
页面大小及页表项的宽度决定了页目录和页表索引的宽度。比如在86系统中 因为一页包含096字节于是字节索引被确定为12 位宽21 = 0 ).
应用程序有三种使用内存方法
以页为单位的虚拟内存分配方法,适合于大型对象或结构数组;
内存映射文件方法,适合于大型数据流文件以及多个进程之间的数据共享;
内存堆方法,适合于大量的小型内存申请.
本次实验主要是针对第一种使用方式.应用程序通过PI函数VirtuaAlloc和
V rulllocEx 等实现以页为单位的虚拟内存分配方法.首先保留地址空间然后向此地址空间提交物理页面也可以同时实现保留和提交。
保留地址空间是为线程将来使用保留一块虚拟地址。
在已保留的区域中提交页面必须指出将物理存储器提交到何处以及提交多少。
提交页面在访问时会转变为物理内存中的有效页面。
周俊霞内存管理实验报告
三、相关的AP 函数
可以通过eSs temI o, alMe mo ryS tatus 和Virtu uer来查询进程虚空间的状
态.主要的信息来源如下
VID y temInfo PYS T EM_NF lpy teInf
结构S YSEMNF定义如下:
ypedf ruct_SS TE_IFO {
DWORD dwO emld;
DWO dwPgeS ze
PVOID lpMniumApp icatinAddrs ;
LP VOD p Max iumAp p l c io nddrs s
DORD dwAct vePro c ess orMask;
DWORD dwNmberOProcssors;
DW dwP ro c es o rT e;
WO dwAllca ionGrnula ity; //分配粒度
DWORD dRs erved;
周俊霞内存管理实验报告
} SYSTE_IFO, PSYTEM_INFO
函数VO ID Go b alMmo rytatus P MMOYT AT U pu er
数据结构MMRY S T AT U定义如下
ypedef struct _EMRYSTATU
DWR wLn h
DWORD dwMeoyLad
ORD dwTotalPhys
DW dvai P hys
DWORD dTotalPa Fil
WRD wva PgeF l ;
W OR dwTtalV r a l
DWORD dwAvilVirtal
MEMRYAT U S, LP MERY S T AT U S
函数DW ODitule ( C lAd dess
PEM_BS IC_INORMAT N lp Bu er, DODd wLngh ;
主要数据结构MEMRY_B C_IF OMAT I O N定义如下
周俊霞内存管理实验报告type f structMEMRY_BSC_IFOMAION {PVOIDs eddrss;
PVID Alloca i Bse;
DWRD Allocat onProtect;
DWOD Reg nSiz
DO S tat ;
DWD Protect
WOR Type;
}MEORY_BAS IC_INORMATON;tpedef MEORYASI_IFMATION*PMEMO_BSIC_NFOMATION
还有一些函数例如 tualA l lo ir l lo c Ex irtualF re e和V r lF reeEx 等,用
于虚拟内存的管理详情请见Mic osoft的Win32 API RefrenceManua l.
四、实验内容:
使用这些I函数编写一个包含两个线程的进程一个线程用于模拟内存分配活动一个线程用于跟踪第一个线程的内存行为。
周俊霞内存管理实验报告
模拟内存活动的线程可以从一个文件中读出要进行的内存操作每个内存操作包含如下内容
时间:开始执行的时间
块数分配内存的粒度;
操作:包括保留一个区域、提交一个区域、释放一个区域、回收一个区域以及锁与解锁一个区域;可以将这些操作编号存放于文件中。
大小指块的大小
访问权限:共五种:
AG E_READO NLY、
E_RADWRTE、
G EEXUT、
PGEEXECU_READ
P AGE_EXC UT E_RADWRIT E.
可以将这些权限编号存放于文件中.跟踪线程将页面大小、 已使用
的地址范围、
物理内存总量以及虚拟内存总量等信息显示出来。
五、实验步骤
首先执行make,生成opile文件,里面保存了模拟的内存操作。然后执行memoy-o 。 ex,产生两个线程,一个从p fil文件里读取内存操作,模拟内存活动,另一个跟踪第一个的内存行为将结果输
周俊霞内存管理实验报告
出并保存在out。 txt文件中。两个线程通过信号量实现同步。
六、实验结果分析
0dwAc vePro c soMask15 /活动处理器掩码
周俊霞内存管理实验报告dAlloca onGranula ity 6536 /分配粒度dwumbeOfPocssors 处理器号
wOe mI 0da g iz 4096 /页大小dwPocessorype 56 //处理器类型
paxmumAp ica i Adr s 0x7FFEFFFF//最大分配地址lp uApplic atio nddress x001000 //最小分配地址wPr essrArch tr 0 /处理器结构
Prces oLev l 处理器级别wProce orRev s n 0759 //处理器修订号wRe se rve //保留
************************
********
wAai ag /可用页文件dwAvilPhs 9 39910 //可用物理大小dwAvai Virtual 1375344 //可用虚拟大小
周俊霞内存管理实验报告
wLent32 //长度dwMemryad 56 //主存下载dwotaPge //总共页文件dwTotalys208232440 //总共物理大小dwTotaV rual217352576 /总共虚拟大小&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Allocat nBa e0x00 00 //分配基址
Allocati Protect4 /分配保护
a Address 0x000100 /基地址rotec /类型egioize6 6 //区域大小
Sta e406 //状态
Tye 214 //类型
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 //同上dwAc iveProes sras15
2021年9月中秋特惠优惠促销来源:数脉科技 编辑:数脉科技编辑部 发布时间:2021-09-11 03:31尊敬的新老客户:9月优惠促销信息如下,10Mbps、 30Mbps、 50Mbps、100Mbps香港优质或BGPN2、阿里云线路、华为云线路,满足多种项目需求!支持测试。全部线路首月五折起。数脉官网 https://my.shuhost.com/香港特价数脉阿里云华为云 10MbpsCN...
前些天赵容分享过DogYun(狗云)香港BGP线路AMD 5950X经典低价云服务器的信息(点击查看),刚好账户还有点余额够开个最低配,所以手贱尝试下,这些贴上简单测试信息,方便大家参考。官方网站:www.dogyun.com主机配置我搞的是最低款优惠后14.4元/月的,配置单核,512MB内存,10GB硬盘,300GB/50Mbps月流量。基本信息DogYun的VPS主机管理集成在会员中心,包括...
热网互联怎么样?热网互联(hotiis)是随客云计算(Suike.Cloud)成立于2009年,增值电信业务经营许可证:B1-20203716)旗下平台。热网互联云主机是CN2高速回国线路,香港/日本/洛杉矶/韩国CN2高速线路云主机,最低33元/月;热网互联国内BGP高防服务器,香港服务器,日本服务器全线活动中,大量七五折来袭!点击进入:热网互联官方网站地址热网互联香港/日本/洛杉矶/韩国cn2...