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

龙华区城市建设局网站seo运营招聘

龙华区城市建设局网站,seo运营招聘,堆广自己的业务怎么管理网站,如何查看wordpress版本号目录 一 前言 二 进程地址空间是什么 1.现象 2.虚拟地址空间 3. 现象解释 4. 写时拷贝 三 为什么要存在进程地址空间 四 进程地址空间是如何实现的 1 操作系统如何管理进程地址空间 一 前言 进程地址空间图: 在学习C语言的内存管理的时候,我…

目录

一  前言

二 进程地址空间是什么

1.现象

2.虚拟地址空间

3. 现象解释 

4. 写时拷贝

三 为什么要存在进程地址空间

四 进程地址空间是如何实现的

1 操作系统如何管理进程地址空间


一  前言

进程地址空间图:

 

在学习C语言的内存管理的时候,我们看到过这样一张图:

😀:放的是非静态局部变量、函数参数、返回值等。 栈是向下增长的,且栈是一段线性空间,遵从先进后出的规则,小内存。我们通常会在函数栈帧中创建很多变量,我们称这个变量具有临时性,这个变量即为局部变量,存于栈上。且函数的递归意味着不停的创建局部变量,函数参数,返回值,而栈内存较小,所以函数的不停递归,会造成栈溢出。

😃:用于程序运行时动态内存分配,我们的手动开辟空间都是在这一部分上的。堆是向上增长的,特点是大内存,手工分配管理、申请的大小是随意的,但是(若不free)可能会导致内存泄漏问题。在堆区上开辟空间后会返回一个指针,这个指针是指向堆区上开辟的内存块的,其中存放的是从堆区上开辟的空间,但是这个指针本身是在函数中定义的,因此属于一个局部变量,存在栈上。

😄数据段:数据段存储的是全局变量和静态变量

😎代码段:是可执行的代码、只读常量。

😐命令行参数和环境变量:命令行参数指的是在命令行上敲入的一些参数,main函数的第二个参数就是负责获取命令行参数的。main函数的第三个函数就是负责接收环境变量的。


二 进程地址空间是什么

1. 现象

接下来我们先看一个例子:我们实现一个代码让父子进程打印同一代码段里的同一数据global_value

 运行结果:

我们发现在同一个地址空间ox60105c,父进程和子进程访问时获取的值却不是相同的 ,因此,我们可以先排除global_value的地址是物理地址(因为物理磁盘的同一个地址,只能存放唯一确定的一个值)。

2.虚拟地址空间

由上面的现象我们肯定能推断出这两份数据的地址一定不会是真实的物理地址(物理地址独一份),它是虚拟地址空间,所以我们在C/C++中看到的所有的地址都是虚拟地址。

  • ⏰在每一个进程建立的时候,操作系统不仅会为进程创建一个PCB,同时还会为每一个进程创建一个进程地址空间,即每一个进程都会有自己独立的进程地址空间,那么问题就来了,系统中那么多进程,这样系统中的进程地址空间就会非常多,那么操作系统就要对这些空间进行先描述再组织,于是系统就为进程地址空间创建了一个mm_struct,其中对虚拟地址的每个区域都进行了划分,每一个进程都是相对独立互不影响的,每一个进程的PCB和mm_struct都是相互独立的,这就是进程的独立性。

3. 现象解释 

父进程和子进程都有自己独立的进程地址空间,也有独立的页表结构。子进程由父进程创建,因此子进程的进程地址空间是拷贝父进程的进程地址空间。
一开始父子进程并未对进程地址空间做修改,因此global-value值在一开始是指向同一个物理内存。
后来,子进程修改了global-value的值,操作系统通过页表映射发现global-value的值是被两个进程共享的,就会发生写时拷贝(操作系统为了保持进程的独立性,当子进程或者父进程任何一方尝试对共享的数据做写入,操作系统就会在物理内存上重新开辟一块新的内存空间同时拷贝原来的数据,然后修改写入方的页表映射关系,使其指向新的物理地址,再进行写入操作。整个修改的过程中,这些工作与父子进程的虚拟地址没有关系,只有底层经过页表映射到了新的物理地址,因此我们观察到的虚拟地址是相同的,但是内容却不同)。

 当子进程继续执行代码, 修改了0x60104C地址所存储的值时, 操作系统就会在在物理空间中申请一个新的地址供子进程存储数据使用, 同时修改子进程页表内容

4. 写时拷贝

父子进程中的任意一方试图对共享数据进行写入,操作系统就会先将原数据进行拷贝,然后改变要写入一方的页表映射,使它映射到新的物理内存中,然后再让进程进行写入的技术称为写时拷贝。 


三 为什么要存在进程地址空间

  • 保证了数据的安全性;如果进程出现越界非法访问、非法写入等情况时,页表会对进程进行拦截。直接对物理内存进行访问,对于账号信息等数据是不安全的(可能会出现意外损坏数据或者恶意读取用户信息等问题)。
  • 方便进程之间数据代码的解耦,保证了进程的独立性;一个进程对数据的修改不会对另一个进程造成影响,保证了进程的独立性。
  • 让进程以统一的视角看待进程的代码和数据所在的各个区域,同时方便了编译器以统一视角编译代码。可执行程序在被编译器编译的时候,其代码和数据在内存中已经有虚拟地址了(这种地址在磁盘上被称为逻辑地址),也就是说操作系统和编译器都是遵守地址空间这一理论的。在程序被加载到内存成为进程前,每个变量/函数都具备了物理地址。因此,我们现在有两套地址,一套是用于表示物理内存中代码和数据的物理地址;另一套是用于程序内部函数之间进行跳转的虚拟地址。加载完毕后,代码的各个区域的地址,操作系统和编译器都已经知道了。进程被调度时,CPU拿到虚拟地址,经过地址空间的页表映射,就能查到物理地址,通过物理地址访问到代码,然后执行。CPU -> 虚拟地址 -> 页表 -> 物理地址 -> 执行。CPU运行的整个过程中,都没有见到物理地址,只通过虚拟地址就可以运行程序。

四 进程地址空间是如何实现的

1 操作系统如何管理进程地址空间

操作系统要为每一个进程分配地址空间,那么操作系统是否要管理这些地址空间呢?当然是要管理的。那么,操作系统如何管理进程的地址空间?说到管理,管理的方法是先描述,再组织。首先,进程本身就是需要被管理的,操作系统管理它的方式是将进程的信息存入结构体PCB(task_struct)中,再用链式结构将每一个进程的PCB对象组织起来。而地址空间也是通过内核数据结构mm_struct进行管理的,OS会为每一个进程创建一个mm_struct(结构体)对象进行管理。该结构体对象保存在它所对应进程的PCB中。(PCB中的一个属性mm_struct)


文章转载自:

http://0lEG07J6.nqgff.cn
http://2if0iHOU.nqgff.cn
http://qWyjcpYY.nqgff.cn
http://6ByfJrkt.nqgff.cn
http://KawehSzN.nqgff.cn
http://oUI2gFm9.nqgff.cn
http://NUll92Qo.nqgff.cn
http://cvKd6KiF.nqgff.cn
http://gcFX0qxv.nqgff.cn
http://CQPVZGMC.nqgff.cn
http://dugmMoEw.nqgff.cn
http://3Oaz2vLZ.nqgff.cn
http://5lc8CRQY.nqgff.cn
http://JiS6WsLs.nqgff.cn
http://xHh2KXMl.nqgff.cn
http://ecLUSn5N.nqgff.cn
http://jCNkMp8w.nqgff.cn
http://ZzqkhjCJ.nqgff.cn
http://pLzT7IUy.nqgff.cn
http://XAgFav4A.nqgff.cn
http://AJp26CaQ.nqgff.cn
http://J0E6ula4.nqgff.cn
http://l2lf5RqU.nqgff.cn
http://hvtWd1UY.nqgff.cn
http://PKgszAq1.nqgff.cn
http://atW8rQbu.nqgff.cn
http://sfTePruh.nqgff.cn
http://fGq9KiW9.nqgff.cn
http://ITwfivPt.nqgff.cn
http://y5oj2l2K.nqgff.cn
http://www.dtcms.com/wzjs/728593.html

相关文章:

  • 厦门找一家做网站的公司陈家镇建设发展公司网站
  • 聊城做wap网站服务招聘网站企业招聘怎么做
  • 网站弹广告是什么样做的企业公司建站平台
  • 个人简历网页制作教程百度推广优化
  • 门户网站集约化建设深圳龙华新区住房和建设局网站
  • 南宁做棋牌网站的公司重庆经典论坛新闻评论
  • 房地产网站做百度推广网站建设报告内容
  • 周到的宁波网站建设中信建设有限责任公司总部在哪
  • 哈尔滨网站制作哪儿好薇一个人做两个博客网站
  • 手机网站建设yu免费的seo网站
  • 网站代理备案表怎么做网站优化排名
  • 对网站建设的意见建议江都建设网站
  • 2018网站建设高考成绩查询网站维护与建设ppt
  • 佛山网站建设业务员多用户网站建设方案
  • 洛阳微信网站建设定制衣服
  • 网站建设收费标准讯息qq刷赞网站咋做
  • 怎样做京东网站免费做情网站
  • 海南做网站找谁自己做网站用什么app
  • 我被钓鱼网站骗了骗取建设信用卡建设银行会怎么处理钱会还回吗网站开发常用图标 图像
  • 金华哪里做网站设计北京
  • 车票在线制作网站wordpress系列文章
  • 怎么做找券网站网页设计页面配色分析
  • 加快网站平台建设app推广注册赚钱
  • 制作网站问题和解决方法万网域名注册商
  • 交换链接适用于哪些网站网站建设价格标准报价
  • 高埗东莞网站建设上海网站建设公司怎么样
  • 哪个网站可以建设网站《php网站开发》课程资料
  • 做网站翻页怎么做私募网站建设
  • 永定路网站建设伦教网站设计
  • 公司网站建设知识3d 网站设计