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

重庆哪些网站推广公司四川网站建设多少钱

重庆哪些网站推广公司,四川网站建设多少钱,女生学动漫制作技术好就业吗,盐城网站建设hx1818目录 前言#xff1a; 地址空间回顾 验证#xff1a;一个变量是否会有两个值#xff1f; 一. 什么是地址空间 虚拟地址与物理地址之间的关系 二. 地址空间是如何设计的 1. 回答一个变量两个值 2.扩展 继续深入理解 三. 为什么要有地址空间 原因#xff1a; 1. 使…目录 前言 地址空间回顾 验证一个变量是否会有两个值 一. 什么是地址空间 虚拟地址与物理地址之间的关系 二. 地址空间是如何设计的  1. 回答一个变量两个值 2.扩展 继续深入理解 三. 为什么要有地址空间 原因 1. 使操作系统对访问或者映射的合法性检查杀掉非法进程从而保护数据安全。  2.  使物理内存分配与进程管理通过页表进行解耦在加载时确定映射关系后相互独立 3. 保证每个进程以统一的视角有序的区域划分进行管理完成进程独立性的实现 页表补充 前言 地址空间回顾 之前我们学习C是对内存分布的了解  字符串常量在静态常量区静态区  那么这真的是内存吗 答案是不是 那我们之前所了解的上图又是什么 那真正的内存又是指什么让我们来解释其中的奥秘 验证一个变量是否会有两个值 我们运行下面的代码 #include iostream2 #include unistd.h3 using namespace std;4 5 int _gar 100;6 int main()7 {8 pid_t pd fork();9 10 if (pd 0)11 {// 子进程12 int cen 0;13 while (1)14 {15 cout I am child ,Pid : getpid() PPid: getppi d() _gar _gar 地址: _gar endl;16 sleep(1);17 cen;18 if (cen 5)19 {20 _gar 200; 21 cout 100 - 200 seccoss -gar _gar endl; 22 }23 }24 }25 else26 {27 // 父进程28 while (1)29 {30 cout I am father ,Pid : getpid() PPid: getpp id() _gar _gar 地址: _gar endl;31 sleep(1);32 }33 }34 35 return 0;36 } 根据我们实验出来的结果 这其实是虚拟地址也叫线性地址。 几乎所有的语言所说的“地址”指的并非物理地址而是虚拟地址 这里对本文刚开始的内存进行解释 内存可以分为主存储器主内存和辅助存储器如硬盘、固态硬盘等。主内存是计算机中直接与CPU交互的存储器用于存储当前正在执行的程序和数据。辅助存储器则用于长期存储数据当程序或数据不再需要时可以将其保存在辅助存储器中。来源chatgpt 一. 什么是地址空间 虚拟地址与物理地址之间的关系 任何数据都需要加载到内存中都有各自的物理地址。如果我们进程A,B同时运行相互独立万一出现错误将A将B中的数据读取了这是极不安全的而如果在虚拟地址上先操作再通过一定的机制确保访问的安全性。因此虚拟地址的存在保护了物理地址上的数据安全。 地址空间的本质是一种内核的数据结构里面至少有各个区域的划分。 二. 地址空间是如何设计的  我们知道每个进程都有自己的PCB同时task_struct里面有进程地址空间数据的存储结构也就是mm_struct。虚拟地址经过页表映射指向物理地址。 注意每个进程中不只是地址空间页表也有自己私有一份。 这样我们只要保证每个进程之间经过页表映射后的物理地址不同即可保证进程之间互不干涉。 1. 回答一个变量两个值 解释 父进程通过自己的task_struct中地址空间数据访问到在物理空间上的数据子进程则是共享父进程的代码但当子进程想对数据进行修改为了保证进程之间的独立性系统决定进行写时拷贝为子进程拷贝一份数据同时修改子进程页表映射数据。这样就在表面上看就是相同变量不同的值但本质上是相同的虚拟地址不同的页表不同的物理地址不同的值。 具体的就体现在id的两次写入 2.扩展 结论在可执行程序编译时内部就有地址了 我们在分析地址空间时一直使用的是OS的视角而不只是操作系统要遵守编译器也要遵守 即在编译器编译代码时就已经在内部形成了地址而且有各个区域代码区数据区...并且采用与linux内核一样的编址方式每一个变量每一行代码都有其虚拟地址。 继续深入理解 我们知道执行进程是通过虚拟地址页表的方式来访问物理地址的那可执行程序的虚拟地址和页表的数据又是从那里来的呢 流程分析  所以CPU在读取到变量a时根据虚拟地址0x100在代码段中寻找在代码段查询页表后再跳转0x169地址找到数据a,CPU获取其内部跳转虚拟地址0x123再从虚拟地址中寻找通过页表访问到函数func。物理内存位置随便加载 三. 为什么要有地址空间 原因 1. 使操作系统对访问或者映射的合法性检查杀掉非法进程从而保护数据安全。  例假设char* man 鸡你太美;  *man ‘寄’ 我们在C语言期间就清楚字符常量无法修改其原因来自底层页表中会记录代码段地址并且记录其读写权限操作系统检测到非法操作后就会中断结束进程保护数据。在物理内存我们是可以任意修改的所以页表上的判断确保了操作的合法性保护了数据的安全 2.  使物理内存分配与进程管理通过页表进行解耦在加载时确定映射关系后相互独立 问是否可以提前加载未来的数据到物理内存中呢 答可以 解析: 物理内存的分配和进程管理之间可以说没有关系。这种关系叫做解耦合那什么是强耦合呢就是之间关系紧密不容易分开例如你把函数内容写在main函数里面。   我们在学习C,C时在语言层面上new,malloc等内存分配上的操作都是在对虚拟地址上的操作。那疑问来了 问在进行虚拟地址分配的时候是否在物理内存上分配资源 答不会只在你访问时才申请物理内存空间通过这延迟分配的策略提高整机效率。这个操作仅操作系统自动完成用户进程0感知 3. 保证每个进程以统一的视角有序的区域划分进行管理完成进程独立性的实现 页表补充 以现在的视角看进程加载内存就好像是创建进程那是否会加载全部的数据到内存上呢 我们在玩游戏时有的游戏动则40G甚至是100G我们的电脑是绝对装不下的因此内存有一种内存换下机制一些数据在一定时间内不再使用则被换下加载新数据说到这里要对页表进行补充页表不只映射物理内存也映射硬盘地址再次使用被换下的数据直接查询页表用磁盘地址快速访问加载到内存中。 结语 本小节就到这里了感谢小伙伴的浏览如果有什么建议欢迎在评论区评论如果给小伙伴带来一些收获请留下你的小赞你的点赞和关注将会成为博主创作的动力。
http://www.sadfv.cn/news/35707/

相关文章:

  • 网站的ftp在哪里可以查到施工企业安全生产评价标准最新版2021
  • 河南城乡住房和建设厅网站优化方案物理电子版
  • ks刷粉网站推广马上刷小程序商城名字大全
  • ftp怎么设置网站首页教育直播网站建设
  • iis 网站乱码建立网站的目的是什么
  • 沈阳红方城网站建设广告公司属于什么行业
  • 兰州网站外包微信运营软件
  • 中国和住房城乡建设部网站首页torrentkitty磁力官网
  • 优质的网站建设推广北京网站优化济南兴田德润简介电话
  • 图片网站制作html5 微网站开发
  • 万网 网站建设国内网站没备案
  • 学校网站的目的高邮市建设局网站
  • 营销型网站建设测验题wordpress博客自媒体资讯主题
  • 做设计有哪些免费网站北京网站建设公司朝阳
  • 企业网站建设服务好设计公司工作室
  • 瀑布流网站模板做网络推广网站有哪些
  • 做网站推广的方法有哪些网站 备案 在哪
  • 响应式网站滑动查询网站开发
  • 注册域名哪个网站好重庆建设施工安全信息网官网
  • 温州网站建设制作公司温州网站设计工作室
  • 北京网站制作建设公司网站建设百度推广
  • 中国做民宿的网站优秀网站设计欣赏
  • 特价主机网站空间租用wordpress撰写设置
  • 如何做公司培训网站seo推广专员工作内容
  • 安徽省住房和城乡建设厅网站首页网站开发和编程的联系
  • 国内外公司网站差异新网官方网站
  • 网站建设时图片和文字网站首页site不到 a5
  • 上海wordpress网站建设建设部项目经理认证网站
  • 如何做视频网站首页简要说明网站建设的基本流程
  • wordpress无限绑域名东莞网站优化方案