内存周俊霞内存管理实验报告

iphone6内存  时间:2021-01-31  阅读:()

周俊霞内存管理实验报告

操作系统实验—内存管理实验报告

周俊霞2

1121120

2 1 

211307班

实习2:内存管理实验

一 目的

在本次实验中需要从不同的侧面了解inow 200XP的虚拟内存机制。在ind os

20 /X操作系统中可以通过一些API 操纵虚拟内存。主要需要了解以下几方面

Wndo ws 000/XP 虚拟存储系统的组织

如何控制虚拟内存空间

如何编写内存追踪和显示工具

详细了解与内存相关的API函数的使用

二、Winow 200/X虚拟内存机制简介:

内存管理是Windows 200/P执行体的一部分位于No skrnl exe文件中是整个操作系统的重要组成部分。

默认情况下 32 位Wind o ws  00/XP上每个用户进程可以

周俊霞内存管理实验报告

占有2G的私有地址空间操作系统占有剩下的2.

Winows 2 0/XP 在x6体系结构上利用二级页表结构来实现虚拟地址向物理地址的变换。

一个32 位虚拟地址被解释为三个独立的分量—-页目录索引、页表索引和字节索引——它们用于找出描述页面映射结构的索引。

页面大小及页表项的宽度决定了页目录和页表索引的宽度。比如在86系统中 因为一页包含096字节于是字节索引被确定为12 位宽21  = 0 ).

应用程序有三种使用内存方法

以页为单位的虚拟内存分配方法,适合于大型对象或结构数组;

内存映射文件方法,适合于大型数据流文件以及多个进程之间的数据共享;

内存堆方法,适合于大量的小型内存申请.

本次实验主要是针对第一种使用方式.应用程序通过PI函数VirtuaAlloc和

V rulllocEx 等实现以页为单位的虚拟内存分配方法.首先保留地址空间然后向此地址空间提交物理页面也可以同时实现保留和提交。

保留地址空间是为线程将来使用保留一块虚拟地址。

在已保留的区域中提交页面必须指出将物理存储器提交到何处以及提交多少。

提交页面在访问时会转变为物理内存中的有效页面。

周俊霞内存管理实验报告

三、相关的AP 函数

可以通过eSs temI o,  alMe mo ryS tatus 和Virtu uer来查询进程虚空间的状

态.主要的信息来源如下

VID  y temInfo  PYS T EM_NF lpy teInf  

结构S YSEMNF定义如下:

ypedf   ruct_SS TE_IFO {

DWORD dwO emld;

DWO dwPgeS  ze

PVOID lpMniumApp icatinAddrs  ;

LP VOD p Max iumAp p l  c  io nddrs s

DORD dwAct vePro c ess orMask;

DWORD dwNmberOProcssors;

DW dwP ro c es o rT e;

WO dwAllca ionGrnula ity; //分配粒度

DWORD dRs erved;

周俊霞内存管理实验报告

} SYSTE_IFO, PSYTEM_INFO

函数VO ID Go b alMmo rytatus P MMOYT AT U pu er 

数据结构MMRY S T AT U定义如下

ypedef struct _EMRYSTATU 

DWR wLn h

DWORD dwMeoyLad

ORD dwTotalPhys

DW dvai P hys

DWORD dTotalPa Fil 

WRD wva PgeF l ;

W OR dwTtalV r  a l

DWORD dwAvilVirtal

 MEMRYAT U S,  LP MERY S T AT U S

函数DW ODitule  ( C lAd dess

PEM_BS IC_INORMAT N lp Bu er, DODd wLngh ;

主要数据结构MEMRY_B C_IF OMAT I O N定义如下

周俊霞内存管理实验报告type f structMEMRY_BSC_IFOMAION {PVOIDs eddrss;

PVID Alloca i Bse;

DWRD Allocat onProtect;

DWOD Reg nSiz 

DO S tat ;

DWD Protect

WOR Type;

}MEORY_BAS IC_INORMATON;tpedef MEORYASI_IFMATION*PMEMO_BSIC_NFOMATION

还有一些函数例如 tualA l lo  ir   l lo c Ex irtualF re e和V r   lF reeEx 等,用

于虚拟内存的管理详情请见Mic osoft的Win32 API RefrenceManua l.

四、实验内容:

使用这些I函数编写一个包含两个线程的进程一个线程用于模拟内存分配活动一个线程用于跟踪第一个线程的内存行为。

周俊霞内存管理实验报告

模拟内存活动的线程可以从一个文件中读出要进行的内存操作每个内存操作包含如下内容

时间:开始执行的时间

块数分配内存的粒度;

操作:包括保留一个区域、提交一个区域、释放一个区域、回收一个区域以及锁与解锁一个区域;可以将这些操作编号存放于文件中。

大小指块的大小

访问权限:共五种:

AG E_READO NLY、

E_RADWRTE、

G EEXUT、

PGEEXECU_READ

P AGE_EXC UT E_RADWRIT E.

可以将这些权限编号存放于文件中.跟踪线程将页面大小、 已使用

的地址范围、

物理内存总量以及虚拟内存总量等信息显示出来。

五、实验步骤

首先执行make,生成opile文件,里面保存了模拟的内存操作。然后执行memoy-o 。 ex,产生两个线程,一个从p fil文件里读取内存操作,模拟内存活动,另一个跟踪第一个的内存行为将结果输

周俊霞内存管理实验报告

出并保存在out。 txt文件中。两个线程通过信号量实现同步。

六、实验结果分析

0dwAc vePro c  soMask15 /活动处理器掩码

周俊霞内存管理实验报告dAlloca onGranula ity 6536 /分配粒度dwumbeOfPocssors   处理器号

wOe mI 0da g iz 4096 /页大小dwPocessorype 56 //处理器类型

paxmumAp  ica i Adr  s 0x7FFEFFFF//最大分配地址lp  uApplic atio nddress x001000 //最小分配地址wPr essrArch    tr 0 /处理器结构

Prces oLev l  处理器级别wProce   orRev s  n  0759 //处理器修订号wRe se rve  //保留

************************

********

wAai  ag /可用页文件dwAvilPhs 9 39910 //可用物理大小dwAvai Virtual 1375344  //可用虚拟大小

周俊霞内存管理实验报告

wLent32 //长度dwMemryad 56 //主存下载dwotaPge //总共页文件dwTotalys208232440 //总共物理大小dwTotaV rual217352576 /总共虚拟大小&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

Allocat  nBa e0x00   00 //分配基址

Allocati Protect4 /分配保护

a Address 0x000100 /基地址rotec  /类型egioize6  6 //区域大小

Sta e406 //状态

Tye  214 //类型

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1 //同上dwAc  iveProes sras15

美国200G美国高防服务器16G,800元

美国高防服务器提速啦专业提供美国高防服务器,美国高防服务器租用,美国抗攻击服务器,高防御美国服务器租用等。我们的海外高防服务器带给您坚不可摧的DDoS防护,保障您的业务不受攻击影响。HostEase美国高防服务器位于加州和洛杉矶数据中心,均为国内访问速度最快最稳定的美国抗攻击机房,带给您快速的访问体验。我们的高防服务器配有最高层级的DDoS防护系统,每款抗攻击服务器均拥有免费DDoS防护额度,让您...

TTcloud(月$70)E3-1270V3 8GB内存 10Mbps带宽 ,日本独立服务器

关于TTCLOUD服务商在今年初的时候有介绍过一次,而且对于他们家的美国圣何塞服务器有过简单的测评,这个服务商主要是提供独立服务器业务的。目前托管硬件已经达到5000台服务器或节点,主要经营圣何塞,洛杉矶以及日本东京三个地区的数据中心业务。这次看到商家有推出了新上架的日本独立服务器促销活动,价格 $70/月起,季付送10Mbps带宽。也可以跟进客户的需求进行各种DIY定制。内存CPU硬盘流量带宽价...

FlashFXP FTP工具无法连接主机常见原因及解决办法

目前,我们都在用哪个FTP软件?喜欢用的是WinSCP,是一款免费的FTP/SFTP软件。今天在帮助一个网友远程解决问题的时候看到他用的是FlashFXP FTP工具,这个工具以前我也用过,不过正版是需要付费的,但是网上有很多的绿色版本和破解版本。考虑到安全的问题,个人不建议选择破解版。但是这款软件还是比较好用的。今天主要是遇到他的虚拟主机无法通过FTP连接主机,这里我就帮忙看看到底是什么问题。一...

iphone6内存为你推荐
浏览器哪个好浏览器哪个好 主流浏览器对比分析电脑杀毒软件哪个好电脑杀毒软件那个最好??免费阅读小说app哪个好求一个看书比较好的APP小说软件哪个好用免费看小说,哪个软件好,要免费的朱祁钰和朱祁镇哪个好明英宗和明代宗是怎么回事?电视直播软件哪个好电视直播软件哪个好录音软件哪个好录音软件哪个好用又简单英语词典哪个好哪个英语词典好炒股软件哪个好用股票交易软件哪个好?加速器哪个好主流加速器哪个好
万网域名注册 lamp 电影服务器 紫田 好看的留言 500m空间 全站静态化 北京双线机房 可外链相册 四核服务器 东莞主机托管 杭州电信宽带优惠 塔式服务器 websitepanel 美国代理服务器 linux服务器系统 大硬盘分区 瓦工工具 主机之家 大容量存储模式 更多