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

做推广优化的网站有哪些网站设计的价格

做推广优化的网站有哪些,网站设计的价格,pano2vr输出html5教程,做黑彩票的网站赚钱吗文章目录 1、前言2、什么是进程地址空间#xff1f;3、进程地址空间的划分4、虚拟地址与物理地址的关系5、页表的作用扩展 6、为什么要有地址空间#xff1f; 1、前言 Linux学习路线比较线性#xff0c;也比较长#xff0c;因此一个完整的知识点学习就会分布在两篇文章中3、进程地址空间的划分4、虚拟地址与物理地址的关系5、页表的作用扩展 6、为什么要有地址空间 1、前言 Linux学习路线比较线性也比较长因此一个完整的知识点学习就会分布在两篇文章中没有连贯起来订阅的朋友谅解一下再次感谢订阅 上一篇文章最后讲到了程序地址空间分布大家可以先复习一下上一篇文章程序地址空间的初认识 本片我们深度学习一下程序地址空间虚拟地址与物理地址的关系页表与物理地址的映射写时拷贝的过程我们带着这些问题开始我们今天新的学习! 2、什么是进程地址空间 在学习地址空间前我们要明确C/C看到的地址其实并不是真正的地址它其实是 虚拟地址真正的地址是物理地址。 我们通过一个故事来带大家更好的理解一下什么是地址空间 有一个大富豪他有10亿的资产同时拥有四个私生子这四个私生子互相不知道其他人的存在。 私生子1是学生私生子2是一个社会青年私生子3是律师私生子4是企业家。一天富豪分别对四个私生子说 对1说你是咱家的大学生好好学习以后这10个亿都是你的。 对2说……以后这10个亿都是你的。 对3说……以后这10个亿都是你的。 对4说……以后这10个亿都是你的。 他们都各自以为自己有10个亿等着继承呢于是他们断断续续的对父亲说 1……有用需要xxx钱不过10亿的1/10。父亲给了。 2……有用需要xxx钱不过10亿的1/10。父亲给了。 3……有用需要xxx钱不过10亿的1/10。父亲给了。 4……有用需要xxx钱不过10亿的1/10。父亲给了。 操作系统对应富豪; 内存对应那真实的10个亿; 进程对应为私生子; 虚拟地址空间对应富豪对他们每个人画的10亿的饼。 总结 地址空间其实并不是真实的是操作系统给进程画的饼。 3、进程地址空间的划分 我们看一下地址空间的分布 地址空间其实就是上面各个区域结合起来这些区域的划分很简单用begin与end两个变量一个指头一个指尾来限制范围即可。 根据以上的学习我们不难得知虽然地址空间是操作系统给进程画的的饼但是进程多了这些地址空间我们也需要管理起来要不然进程和对应的地址空间对应不上。说到管理就不得不提“先描述再组织”。Linux中这个进程/虚拟地址空间这个东西叫做 struct mm_struct {long code_start; // 代码区开始long code_end; // 代码区结束long data_start; // 数据区开始long data_end; // 数据区结束long heap_start; // 堆区开始long heap_end; // 堆区结束long stack_start; // 栈区开始long stack_end; // 栈区结束... // 其他属性 }进程地址空间mm_struct里面其实就是维护了一张链表每个节点是一个结构体vm_area_struct里面存的就是一个区域的开始和结束地址。 4、虚拟地址与物理地址的关系 我们来写一段代码探究一下地址 #include stdio.h #include unistd.h #include sys/types.hint g_val 100; int main() { pid_t id fork(); if(id 0) { // child int cnt 5; while(1) { printf(child, Pid: %d, Ppid: %d, g_val: %d, g_val %p\n, getpid(), getppid(), g_val, g_val);sleep(1); if(cnt 0) { g_val 200; printf(child change g_val: 100-200\n);} cnt--; } } else {// fatherwhile(1){printf(father, Pid: %d, Ppid: %d, g_val %d, g_val %p\n, getpid(), getppid(), g_val, g_val);sleep(1);}}return 0; }我们知道在没有发生对数据的改写时父子进程共用一份代码和数据这里子进程对数据进行了修改父子进程读到的值不同了父子进程的全局变量地址怎么还是相同的 问题 父子进程对同一个地址进行读取竟然读出了不同的值 我们这就能得出之前的结论我们C/C看到的地址是虚拟地址。 有了上面的理解我们再来谈谈虚拟地址和物理地址的关系 经过虚拟地址的学习以及这张图我们现在就可以解释同一个地址的值不同。 当我们fork创建了子进程的时候子进程与父进程共享一份代码和数据此时子进程与父进程进程地址空间与页表是一份。 当子进程对值进行修改的时操作系统将父进程的进程地址空间与页表拷贝一份给子进程。当写入时产生写时拷贝重新开一块物理地址存内容并将子进程页表中物理地址修改即可子进程的虚拟地址没有变。因此父子进程虚拟地址相同是表象本质物理地址已经修改了。 5、页表的作用 页表的结构中还有一栏访问权限我们下面看一下 根据此结构我们知道了页表的第一个作用页表的存在可以有效的进行进程访问内存的安全检查 我们配合一段代码大家更好理解 char* str hello Linux; *str H;我们都知道hello Linux是在字符常量区的是不可被修改的它不可被修改的本质就是在页表中访问权限被设置为r(只读权限)。并不是因为是在代码区不可被修改内存是可以随意读写的因为有页表权限的限制。 页表的第二个作用将无序变有序。 物理内存是不分代码区栈区堆区等的数据在物理内存中的存储是无序的。 页表的存在让进程以统一的视角看待内存所以任意一个进程可以通过地址空间页表可以将乱序的内存数据变为有序分门别类的规划好 CPU中有一个寄存器CR3它会保存当前进程的页表地址此页表地址直接就是物理地址。操作系统给用户一个映射的页表是为了上面的两个作用它自己是不需要的。 扩展 总结 每一个进程都是有页表的进程切换不仅仅是PCB与代码、数据的切换切换时还要带走自己的进程地址空间与页表。 根据以上的学习我们想一下我们的内存只有16/32/64但是运行一个几百G的大型游戏是怎么运行的呢 其实并不是要把这几百G的数据全部加载上来的而是将数据边加载边执行对挂起的一个模块数据与代码先换出然后加载需要加载的这样进程在内存中就动态的运行起来了。 这就是地址空间的分配。当我们其中一块代码被执行完我们可以覆盖式的像物理内存中重新加载内容或者重新开辟新的物理内存重新建立新的映射关系就可以让程序边加载边执行。 页表中还有可能存在虚拟地址存在其他都不存在的情况 当访问到页表的虚拟地址存在其他内容不存在时此时访问暂停操作系统先申请内存再根据虚拟地址找到那个可执行程序重新加载到内存里并把对应的物理内存放入页表这时再开始访问就开始运行新加载的代码了。这个过程叫做缺页中断。 我们其实也不难发现这背后的一切进程是完全不知道的是os给做的所以页表的第三个作用 页表 左边是进程管理右边是内存管理。降低进程管理和内存管理的耦合度。 6、为什么要有地址空间 通过上面的学习我们来总结一下这个问题的答案 1、有效的保护了物理地址的安全。通过进程地址空间页表的映射对不合法的操作可以有效的拦截。2、将物理地址的无序变为有序。物理内存是不分代码区栈区堆区等的数据在物理内存中的存储是无序的。页表的存在让进程以统一的视角看待内存所以任意一个进程可以通过地址空间页表可以将乱序的内存数据变为有序分门别类的规划好3、降低进程管理和物理内存管理之间的耦合度。因为进程地址空间和页表的存在物理内存可以不关心数据类型直接对数据进行加载这样进程管理与物理内存管理就做到了解耦。4、保证进程的独立性。因为地址空间的存在各个进程都认为所有的内存空间都属于自己。每个进程都有自己的地址空间页表这两者配合实现了进程的独立性每个不知道也不需要知道其他进程的存在
http://www.zqtcl.cn/news/282471/

相关文章:

  • 网站开发经理具备什么知识调查问卷网站建设
  • 做购买网站企业宣传片制作拍摄
  • logo艺术字转换器徐州seo企业
  • 禹城网站建设公司湖州城市投资建设集团网站
  • 上海城乡住房建设厅网站asp网站怎么做301定向
  • 惠州免费网站建设上海家装10强名单
  • 新手学习做网站电子商务网站建设与维护实验报告
  • 网站建设制作设计推广上海职业技能培训机构
  • 网站不同颜色网站无障碍的建设方面空缺
  • 手机网站织梦模板it初学者做网站
  • asp做的网站怎么发布企业黄页网站源码
  • 在云服务器上搭建网站云端视差wordpress企业主题破解版
  • 英德市住房城乡建设网站图片设计公司
  • 网站建设分金手指专业十七wordpress 审核
  • 怎么欣赏一个网站设计图网站传送门怎么做
  • 网站有什么组成上海做推广网站
  • 网站上传大马后怎么做管理咨询公司口号
  • 网站集约整合建设交流雅虎网站提交入口
  • 网站安全建设必要性网站登录页面
  • 鄂州网站推广做区块链在哪个网站
  • 网站什么内容网站安全性设计
  • 免费动态域名申请seo发布网站
  • 软件毕设代做网站广告设计公司资质
  • 织梦网站模板如何安装网页设计教程心得体会
  • 网站开发 男生网站二维码怎么做的
  • net网站开发教程网站防御怎么做
  • 手机网站设计只选亿企邦哪个选项不属于网络营销的特点
  • 繁昌网站建设如何用易语言做网站
  • 电子商务网站建设财务分析建立网站方法
  • 大专学网站开发wordpress显示数据库请求