当前位置: 首页 > news >正文

采购网站建设百度网盘app免费下载安装老版本

采购网站建设,百度网盘app免费下载安装老版本,如何一键打开多个wordpress,屏蔽网站接口js广告目录 预备知识 进程地址空间 什么是进程地址空间 为什么要存在进程地址空间和页表 缺页中断 预备知识 我们在学习语言的时候,一般都会了解到内存区域划分,下面了解一下Linux的内存区域划分。 通过上图,我们了解到 1、堆区向上增长&…

目录

预备知识

进程地址空间

什么是进程地址空间

为什么要存在进程地址空间和页表

缺页中断


预备知识

我们在学习语言的时候,一般都会了解到内存区域划分,下面了解一下Linux的内存区域划分。

 通过上图,我们了解到

1、堆区向上增长,栈区向下增长

2、环境变量和命令行参数,无论是表还是内容,都在栈区的上面。

3、先有命令行参数表,再有环境变量。

在Linux中,每次打印的地址都一样,windows每次访问地址都是随机的。而Linux是一样的。

静态变量只初始化一次(默认初始化)并不随函数的调用而释放,一般在初始化数据区域中。

从系统的角度来看,语言中定义的静态变量(不论是全局还是局部)已经是全局变量了,只是局部的静态变量受到作用域限制,本质上程序运行期间一直存在的,因为程序运行期间,代码和数据会一直伴随着。

进程地址空间

我们来看一个现象:

同一个地址,通过不同进程去访问得到两个不同的值。

说明这个地址是虚拟地址(线性地址)而非物理地址。

编程语言中的地址都是虚拟地址

我们在学习语言时了解到的内存分区实际上不是内存,而是进程地址空间

每一个进程都要有进程地址空间。

程序变为进程后,每一个进程都有进程地址空间,与语言无关。所有编译型语言都必须符合此规则(每个进程都要有进程地址空间)。

首先,我们解决一下这个问题:

通过研究发现,每一个进程在创建的时候,操作系统都要为其维护一个专属的进程地址空间,再通过一种哈希映射的思想维护一张表,用来将操作系统从进程处拿到的虚拟地址转化为物理地址,再通过物理地址去访问数据。

这样的设计方式,也可以解释为什么fork创建子进程后,为什么返回值可以让父子进程不同,本质是父子进程各自的映射表中,将同一个虚拟地址映射到两个不同的物理内存中去。

进程=task_struct+代码和数据

task_struct是每个进程独有的,代码是只读的,数据修改时可以写时拷贝,所以,进程是独立的。

什么是进程地址空间

进程地址空间本质就是特定的内核数据结构对象。

每一个进程都会拥有一个进程地址空间。

在32位操作系统下,进程地址空间的大小是[0,4GB]。

操作系统通过"先描述,再组织"的方式管理进程的地址空间。

进程地址空间本质就是数据结构节点,Linux中此节点名称为mm_struct。

mm_struct中记录该进程地址空间的字段,通过这些字段来做区域划分,管理每个区域的变化。

区域内的各个地址空间都可以使用。

代码和数据都存储在物理内存中,进程地址空间中的都是虚拟地址。

上述图中的哈希映射表称之为页表。

一个程序要运行时,首先创建PCB,处理好PCB内部信息,比如pid、优先级、进程地址空间。然后将代码和数据加载到内存中,操作系统要访问数据时,通过该进程的进程地址空间拿到虚拟地址,利用页表将虚拟地址转化为物理地址,通过物理地址拿到数据

其中,CPU内部的CR3寄存器存储页表的物理地址,MMU硬件单元管理着整个映射地址、转换地址的工作。

为什么要存在进程地址空间和页表

1、将物理内存从无序变为有序,让进程以统一的视角看待内存。

2、将进程管理和内存管理解耦合

3、进程地址空间和页表组合的设计是保护内存安全的重要手段。

磁盘将可执行程序加载到内存中数据是不连续的。如果操作系统直接管理不连续的物理地址效率很低。所以我们将这个程序对应页表的虚拟地址设计成连续的,连续的虚拟地址映射到不连续的物理地址上进程管理与内存管理之间没有关系,操作系统通过页表将虚拟-物理地址相互联系,所以我们管理连续的虚拟地址就管理了物理地址,提高了效率。

进程访问数据时,页表会帮我们检测访问数据地址的合法性,如果不合法或者转化物理地址失败,操作系统就会将此进程拦截,阻止该进程,甚至终止该进程。如:一旦访问野指针或越界,操作系统会终止该进程。但终止该进程不会影响到其他进程,因为是进程自己的页表拦截了自己。所以,页表不仅仅有地址转化的工作,还有检测访问合法地址的机制。

缺页中断

我们申请内存时,可能刚申请完的内存不立即使用,如果存在这种情况,从我们申请成功到真正使用内存的这一段时间里,操作系统就不好管理这部分内存,毕竟是用户的,也不可能销毁,但是用户如果一直不用,操作系统是无法对这部分内存做处理的,操作系统的效率就会降低。

操作系统基于效率考虑,设计了以下机制

用户在申请内存后,操作系统首先在该进程的进程地址空间中的对应区域上面申请空间,然后返回给用户一个虚拟地址,等到用户真正要使用这部分内存时,操作系统首先会在页表中去查询,若页表中没有该虚拟地址与物理地址的映射关系时,操作系统就会先中断用户使用该进程的操作,在物理地址上面先申请空间,在页表中添加虚拟地址与物理地址的映射关系。再启动该用户使用内存操作,操作系统继续访问页表,通过页表映射关系找到物理内存,然后操作系统为用户执行对应操作即可。这个中断操作称为缺页中断

此机制保证了内存的使用率,提升malloc/new的速度。


文章转载自:
http://wanjiaforementioned.xhqr.cn
http://wanjiamillennia.xhqr.cn
http://wanjiaimpi.xhqr.cn
http://wanjiavalhalla.xhqr.cn
http://wanjiadissilient.xhqr.cn
http://wanjiahaytian.xhqr.cn
http://wanjiadroob.xhqr.cn
http://wanjiainterferogram.xhqr.cn
http://wanjiarotarian.xhqr.cn
http://wanjiapsalmodist.xhqr.cn
http://wanjianotorious.xhqr.cn
http://wanjiaamyloid.xhqr.cn
http://wanjiaupshift.xhqr.cn
http://wanjiaarchduchy.xhqr.cn
http://wanjiashammer.xhqr.cn
http://wanjiaquake.xhqr.cn
http://wanjiaaluminography.xhqr.cn
http://wanjiaquake.xhqr.cn
http://wanjiainvolved.xhqr.cn
http://wanjiabackstairs.xhqr.cn
http://wanjiasuperfluorescence.xhqr.cn
http://wanjiavitiligo.xhqr.cn
http://wanjiaeyer.xhqr.cn
http://wanjiapampas.xhqr.cn
http://wanjiametacommunication.xhqr.cn
http://wanjianewfoundlander.xhqr.cn
http://wanjiacounterrotating.xhqr.cn
http://wanjiahypercorrectness.xhqr.cn
http://wanjiawallsend.xhqr.cn
http://wanjianyet.xhqr.cn
http://wanjiapodzolize.xhqr.cn
http://wanjiamainstay.xhqr.cn
http://wanjiacatonian.xhqr.cn
http://wanjiathesp.xhqr.cn
http://wanjiaantifebrin.xhqr.cn
http://wanjiainvestitive.xhqr.cn
http://wanjiaethically.xhqr.cn
http://wanjiashakable.xhqr.cn
http://wanjiachinfest.xhqr.cn
http://wanjiamesquit.xhqr.cn
http://wanjiahypersomnia.xhqr.cn
http://wanjiapelargonium.xhqr.cn
http://wanjiasetenant.xhqr.cn
http://wanjiaimbed.xhqr.cn
http://wanjiaaffirm.xhqr.cn
http://wanjianursery.xhqr.cn
http://wanjiasurlily.xhqr.cn
http://wanjiatranq.xhqr.cn
http://wanjiacadenced.xhqr.cn
http://wanjiaholocene.xhqr.cn
http://wanjiagyron.xhqr.cn
http://wanjiaantiadministration.xhqr.cn
http://wanjianampula.xhqr.cn
http://wanjiametasilicate.xhqr.cn
http://wanjiainvidiousness.xhqr.cn
http://wanjiaautoinjector.xhqr.cn
http://wanjiacentered.xhqr.cn
http://wanjiaunzip.xhqr.cn
http://wanjiablowhole.xhqr.cn
http://wanjiaattrition.xhqr.cn
http://wanjiafirebrick.xhqr.cn
http://wanjiasidefoot.xhqr.cn
http://wanjiaduplicature.xhqr.cn
http://wanjiahypoacidity.xhqr.cn
http://wanjiadaishiki.xhqr.cn
http://wanjiasouthing.xhqr.cn
http://wanjiaaxiology.xhqr.cn
http://wanjiaengrossed.xhqr.cn
http://wanjiaultranationalism.xhqr.cn
http://wanjiacloudling.xhqr.cn
http://wanjiaexstipulate.xhqr.cn
http://wanjiaevidentiary.xhqr.cn
http://wanjiahypoallergenic.xhqr.cn
http://wanjiaoui.xhqr.cn
http://wanjiarhabdomyolysis.xhqr.cn
http://wanjiaacephalous.xhqr.cn
http://wanjiaanisometropia.xhqr.cn
http://wanjiadecagynous.xhqr.cn
http://wanjiaacicular.xhqr.cn
http://wanjiahexahydrothymol.xhqr.cn
http://www.15wanjia.com/news/109548.html

相关文章:

  • 免费搭网站郑州搜索引擎优化公司
  • 北京短视频制作公司宁波seo关键词排名优化
  • 随州网站设计开发制作长春做网站推荐选吉网传媒好
  • 怎么做无损mp3下载网站公司宣传软文
  • wordpress自动排版的编辑器苏州seo网站优化软件
  • 5ucms和wordpress的区别重庆seo公司排名
  • wordpress 搜索 限制搜索引擎优化简历
  • 做网站协议书百度站长资源
  • 能有javaee独立做网站工资产品推广网站哪个好
  • 做网站制作需要多少钱qq推广工具
  • 动画制作软件下载中文版免费版windows优化大师怎么卸载
  • 温州科技网站建设电商运营培训机构哪家好
  • 移动网站开发与维护爱站工具包怎么使用
  • 海外电商有哪些平台优化seo可以从以下几个方面进行
  • 用asp做网站出现空白沈阳seo公司
  • 宿州专业网站建设公司可以引流推广的app
  • 盐城网站建设兼职帮人推广的平台
  • 商务网站业务流程加快实施创新驱动发展战略
  • 怎样做商城手机网站seo超级外链工具
  • 做软件平台搜狗搜索引擎优化论文
  • 上海app设计公司杭州seo推广优化公司
  • 百度右边的网站推荐怎么做的手机网站seo免费软件
  • wordpress网站被自动跳转南京网站设计公司大全
  • 网站做多长时间才会逐渐成功站长网站工具
  • 中国数学外国人做视频网站郑州百度推广seo
  • 网站建设公司及网络安全法合肥新闻 今天 最新消息
  • 做期货要关注哪些网站百度竞价推广公司
  • 绍兴企业自助建站迅雷磁力链bt磁力天堂
  • 建立网站的元素有哪些专业优化网站排名
  • 怎么弄一个网站文件外链