c++中的异常处理的方法都有哪些方法?

君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
虚拟地址--物理地址的映射关系
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口乐观一点,勤奋一点,执着一点
&& & &Win32通过一个两层的表结构来实现地址映射,因为每个进程都拥有私有的4G的虚拟内存空间,相应的,每个进程都有自己的层次表结构来实现其地址映射。
&& & &第一层称为页目录,实际就是一个内存页,Win32的内存页有4KB大小,这个内存页以4个字节分为1024项,每一项称为&页目录项&(PDE);
&& & &第二层称为页表,这一层共有1024个页表,页表结构与页目录相似,每个页表也都是一个内存页,这个内存页以4KB的大小被分为1024项,页表的每一项被称为页表项(PTE),易知共有个页表项。每一个页表项对应一个物理内存中的某一个&内存页&,即共有个物理内存页,每个物理内存页为4KB,这样就可以索引到4G大小的虚拟物理内存。
如下图所示(注下图中的页目录项的大小应该是4个字节,而不是4kB):
&& & &Win32提供了4GB大小的虚拟地址空间。因此每个虚拟地址都是一个32位的整数值,也就是我们平时所说的指针,即指针的大小为4B。它由三部分组成,如下图:
&& & &这三个部分的第一部分,即前10位为页目录下标,用来寻址页目录项,页目录项刚好1024个。找到页目录项后,找对页目录项对应的的页表。第二部分则是用来在页表内寻址,用来找到页表项,共有1024个页表项,通过页表项找到物理内存页。第三部分用来在物理内存页中找到对应的字节,一个页的大小是4KB,12位刚好可以满足寻址要求。
具体的例子:
假设一个线程正在访问一个指针(Win32的指针指的就是虚拟地址)指向的数据,此指针指为0x2A8E317F,下图表示了这一个过程:
0x2A8E317F的二进制写法为__,为了方便我们把它分为三个部分。
首先按照寻址,找到页目录项。因为一个页目录项为4KB,那么先将左移两位,(0x2A8),用此下标找到页目录项,然后根据此页目录项定位到下一层的某个页表。
然后按照寻址,在上一步找到页表中寻找页表项。寻址方法与上述方法类似。找到页表项后,就可以找到对应的物理内存页。
最后按照寻址,寻找页内偏移。
&& & &上面的假设的是此数据已在物理内存中,其实判断访问的数据是否在内存中也是在地址映射过程中完成的。Win32系统总是假设数据已在物理内存中,并进行地址映射。页表项中有一位标志位,用来标识包含此数据的页是否在物理内存中,如果在的话,就直接做地址映射,否则,抛出缺页中断,此时页表项也可标识包含此数据的页是否在调页文件中(外存),如果不在则访问违例,程序将会退出,如果在,页表项会查出此数据页在哪个调页文件中,然后将此数据页调入物理内存,再继续进行地址映射。为了实现每个进程拥有私有4G的虚拟地址空间,也就是说每个进程都拥有自己的页目录和页表结构,对不同进程而言,即使是相同的指针(虚拟地址)被不同的进程映射到的物理地址也是不同的,这也意味着在进程之间传递指针是没有意义的。
阅读(...) 评论()温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(2161)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_080068',
blogTitle:'Linux下对物理地址的访问',
blogAbstract:'Linux内核里提供的/dev/mem驱动,为我们读写内存物理地址,提供了一个渠道。下面讲述2种利用mem设备文件进行物理地址读写的方法,一种是设备驱动的方法,另一种是系统调用的方法。首先我们看下mem这个设备文件,/dev/mem是linux下的一个字符设备,源文件是~/drivers/char/mem.c,这个设备文件是专门用来读写物理地址用的。里面的内容是所有物理内存的地址以及内容信息。通常只有root用户对其有读写权限。&&&& 1.设备驱动的方法\n&&& 下面是mem.c文件里定义的file_operations结构,提供了llseek,read,write,mmap以及open等方法。&&& static struct file_operations mem_fops = ',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:6,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}物理地址映射,最全面的物理地址映射文章 - 电子工程世界网
物理地址映射
在电子工程世界为您找到如下关于“物理地址映射”的新闻
物理地址映射资料下载
物理内存,但应用程序读写的是虚拟地址,所以存在着将物理内存地址映射到用户程序线性地址的问题。15 0 31 0 31 0 31 0图2 虚拟地址转换为物理地址从物理地址到线性地址的转换工作是由驱动程序来完成的。驱动程序的内存映射部分主要是调用VxD的系统服务MapPhysToLinear。在VtoolsD中这个函数的定义如下:PVOID MapPhysToLineag(CONST VOID...
[1]使用 AXD 调试 MMU 地址映射程序手记(二)黄振华
实验背景: 在《使用 AXD 调试 MMU 地址映射程序手记(一) 》的基础上,编写比较完整的启动 代码,除了初始化存储器、关键 I/O 口和为各模式设置堆栈外,还实现 SDRAM 到 0 地址的 映射,包括映像文件从 Flash 到...
存储器区域的属 性。这些属性包括:      虚拟地址到物理地址映射     ARM 处理器产生的地址叫虚拟地址,MMU 允许把这个虚拟地址映射到一个不 同的物理地址去。这个物理地址表示了被访问 的主存储器的位置。    它允许用很多方式管理物理存储器的位置,例如:它可以用具有潜在冲突的 地址映射为不同的进程分配存储器,或允许具有不连续地址的应用把它映射 到连续的地址空间。     ------注------ ……...
CP15 寄存器Page 2 of 32http://embdev.gotdns.org/Dec. 02, 20033.1 关于存储器管理单元的结构MMU 存储器系统的结构允许对存储器系统的精细控制。大部分的控制细节由存在存 储器中的转换表提供。这些表的入口定义了从 1KB 到 1MB 的各种存储器区域的属 性。这些属性包括:虚拟地址到物理地址映射 ARM 处理器产生的地址叫虚拟地址,MMU...
区域的属 性。这些属性包括:      虚拟地址到物理地址映射     ARM 处理器产生的地址叫虚拟地址,MMU 允许把这个虚拟地址映射到一个不 同的物理地址去。这个物理地址表示了被访问 的主存储器的位置。    它允许用很多方式管理物理存储器的位置,例如:它可以用具有潜在冲突的 地址映射为不同的进程分配存储器,或允许具有不连续地址的应用把它映射 到连续的地址空间。     ------注------ ……...
映射到 0x0 地址开始的地方,而把 FLASH 空间映射到别处。 进行地址空间或说存储器重映射的办法, 一般有如下几种: 一是设置目标处理器自带的 专用 remap 寄存器,通过硬件逻辑来完成重映射;二是有些处理器设计了 Bank 寄存器,可 以用来修改存储器的起始地址; 三是带有 MMU 的处理器, 可以使用 MMU 来将物理地址映 射到虚拟地址,完成地址空间的重映射。 对于 PXA270...
i960、PRISMA、Atari 68k等等。标准Linux针对有MMU的处理器设计。在这种处理器上,虚拟地址被送到MMU,把虚拟地址映射为物理地址。通过赋予每个任务不同的虚拟地址/物理地址转换映射,可支持不同任务之间的保护。 Why&&&&&&&&&&&&&nbsp...
显存地址映射。只要知道该类PCI设备的Vendor号,Device号和索引号myIndex,就可以查找到该类PCI设备的MEMORY地址和IO地址,以及中断级。并将第一个MEMORY地址给出它的从物理地址到虚拟地址的映射。...
转换、任务队列)o 任务调度(调度算法的性能指标、可抢占调度、不可抢占调度、先来先服务、短作业优先算法、时间片轮转算法、优先级算法)o 实时系统及任务调度(RMS、EDF算法)o 任务间通信(共享内存、消息、管道、信号)o 同步与互斥(竞争条件、临界区、互斥、信号量、死锁) 3.2.3存储管理o Flat存储管理方式o 分区存储管理(固定分区、可变分区)o 地址重定位(逻辑地址、物理地址、地址映射...
摘 要:研究了Linux进程的虚拟地址空间管理,包括页表结构、内存分配策略、线性地址区间结构,线性地址到物理地址的映射等。[著者文摘]...
物理地址映射相关帖子
偏移地址。当检测处理器内核和处理器类型结束后,将调用__create_page_tables 子函数来建立页表,它所要做的工作就是将 RAM 基地址开始的 4M 空间的物理地址映射到 0xC0000000 开始的虚拟地址处。对笔者的 S3C2410 开发板而言,RAM 连接到物理地址 0x 处,当调用 __create_page_tables 结束后 0x...
首先讲一下我的思路,说得不对的地方,希望大家帮忙纠正:
1.在hps端DDR中预留一段空间,具体设置uboot bootargs&&mem=512M.
2.然后fpga望预留的空间读写数据,hps把需要的数据拷贝到预留空间。
1.Qsys中如何连线,是否需要NIOS协助。
2.hps端直接对物理地址转换为虚拟地址,然后对虚拟地址进行操作吗?
3.这中方式和...
, HW_REGS_SPAN, ( PROT_READ | PROT_WRITE ), MAP_SHARED, fd, HW_REGS_BASE );//将L3外设的物理地址映射为虚拟地址,
h2p_lw_led_addr=virtual_base + ( ( unsigned long&&)( ALT_LWFPGASLVS_OFST + DATA_PIO_0_BASE ) &amp...
健壮,有重传送机制。
还是控制流的速度,[color=#0000ff]705.6kbps[/color],[color=#0000ff] 就和 500kbps HS-CAN一个档次。[/color]
控制流还有一个很重要,寻址。
[backcolor=yellow] 通过逻辑地址和物理地址映射,实现一对一访问[/backcolor]
[backcolor=yellow] 组内广播...
,提供了用于扩展许可检查的能力。[/align][align=left]处理器实现ARMv7-A MMU,提供了扩展的安全性和多处理器扩展。这种扩展提供地址转换和访问许可检查。MMU控制表搜索硬件,该硬件用于访问主存内的转换表。通过一组虚拟地址到物理地址映射,以及保存在指令和数据转换表TLB内的存储器属性,MMU提供了对存储器系统更好的颗粒度控制。[/align][align=left]MMU负责...
; & & & & gpmc_cs_free(HDLC_CS);
& && &&&return -1;
& & /******物理地址映射为虚拟地址*****/
& &nbsp...
缓存用户数据和存放映射表 (逻辑地址映射闪存物理地址)。所以一旦掉电,RAM的数据就会丢失。为防止异常掉电数据丢失,一个简单的设计就是在SSD上面放电容,SSD一旦检测到掉电,就让电容开始放电,然后把RAM中的数据Flush到Flash上面去,从而避免数据丢失。电容放电时间很短,要保证在有限时间内把RAM中数据Flush到Flash,RAM中数据量不能太多。还有一个比较前卫的想法,就是把RAM这种...
一般是在内核中是使用poll()函数,设置事件监听类型为POLLPRI和POLLERR在poll()返回后,使用lseek()移动到文件开头读取新的值或者关闭它再重新打开读取新值。必须这样做否则poll函数会总是返回。
linux下寄存器需要做内存映射的,mmap后才能访问,具体操作自行搜索,因为我也不记得了,哈哈~:victory:
一、动态映射(ioremap)方式
动态映射...
这是本人写的基于6通道单独采样的linux驱动。是基于混杂设备开发,以下是设备的设备树:pw_collect: collect@0x {
& & & & & & & & & & & & & & & & compatibl...
维护一个current指针指向当前正在占用CPU的进程。Memory Map
& & Memory Manager存储每个进程的虚拟地址到物理地址的映射;并且也提供了如何换出特定的页,或者是如何进行缺页处理。这些信息存放在数据结构mm_struct中。每个进程都有一个mm_struct结构,在进程的task_struct结构中有一个指针mm指向次进程的mm_struct结构...
物理地址映射视频
物理地址映射创意
你可能感兴趣的标签
热门资源推荐虚拟地址--物理地址的映射关系_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
虚拟地址--物理地址的映射关系
上传于||暂无简介
你可能喜欢

我要回帖

更多关于 java中的异常处理 的文章

 

随机推荐