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

家庭清洁东莞网站建设技术支持数字营销公司

家庭清洁东莞网站建设技术支持,数字营销公司,交通信息华建设网站,网站过程中遇到问题作者:小萌新 专栏:Linux 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:简单介绍下进程地址空间 程序地址空间程序地址空间语言中的程序地址空间矛盾系统中的程序地址空间为什么要有进程地址空间思维导图总结…

作者:@小萌新
专栏:@Linux
作者简介:大二学生 希望能和大家一起进步!
本篇博客简介:简单介绍下进程地址空间

程序地址空间

  • 程序地址空间
    • 语言中的程序地址空间
    • 矛盾
    • 系统中的程序地址空间
    • 为什么要有进程地址空间
    • 思维导图总结

程序地址空间

语言中的程序地址空间

我们在c语言中的学习中 我们是这样子描述内存空间的

内存包括栈区 堆区 静态区

栈区是向低地址增长的

堆区是向高地址增长的

其中静态区又分为三部分 分别是初始化数据 未初始化数据 数据段和代码段
在这里插入图片描述

我们可以通过下面的代码来验证上面的这张图

在这里插入图片描述

我们发现运行的结果和我们的结论是吻合的
在这里插入图片描述

矛盾

我们首先写出下面的一段代码

在这里插入图片描述
这段代码的意思是让子进程执行五次 分别打印子进程的pid myval和地址

让父进程一直执行 分别打印父进程的pid myval和地址

在这里插入图片描述
效果是这样子的 我们可以发现父子进程打印出来的val一样 地址也一样

但是如果我们在中途修改子进程的val数据呢? 会发生什么情况

如果按照我们之前语言中的内存理解 我们可以推断出父进程的val值也会被改变 因为它们指向的都是同一块地址 那么事实到底是不是这样子呢?

我们可以试验一下

对于原先的代码做出如下修改

在这里插入图片描述
运行结果如下

在这里插入图片描述
我们惊奇的发现 一个地址里面的值竟然有两种形态

这很显然不符合我们的常识

一个物理地址中对应的值只能有一个 所以说这里的地址肯定不是真正的物理地址 那么它是什么呢?

系统中的程序地址空间

实际上我们在语言层面上打出来的地址都不是真实的物理地址 而是由操作系统分配的虚拟地址

所以说尽管我们看上去父子进程的虚拟地址是一样的 但是它们实际的物理地址却是不一样的 这也就造成的上面那种一个地址中会出现两个值的情况

实际转化效果如图
在这里插入图片描述

我们前面的博客说过 贯穿操作系统的一句话叫做 先描述 再组织

我们语言阶段所说的内存实际上是虚拟内存地址而到了系统的学习中

我们给与了它一个新的名字 叫做进程地址空间

它是操作系统对于开辟空间的描述 实际上它就是一个结构体 叫做mm_struct

进程地址空间就类似于一把尺子 尺子的刻度由0x00000000到0xffffffff 尺子按照刻度被划分为各个区域 例如代码区、堆区、栈区等

而在结构体mm_struct当中 便记录了各个边界刻度 例如代码区的开始刻度与结束刻度 如下图所示

在这里插入图片描述
再这个结构体中 每一个刻度都代表着一个虚拟地址 这些虚拟地址通过页表 和物理地址建立联系

而由于这些地址是线性增长的 所以说我们也可以将虚拟地址叫做线性地址

在这里插入图片描述

从上面的图我们可以知道

操作系统在创建进程的时候会创建PCB和程序地址空间

在进程运行的时候程序地址空间会经过页表映射到真实的物理内存中开辟新的空间

我们前面的博客说过 父子进程是共享代码和大部分数据的

这也就是为什么一开始的时候我们查看代码时父子进程的val数据地址一样的原因

但是当我们要修改子进程的数据的时候 就会发生 缺页中断 由于要保持进程的独立性 所以这里会用到一种叫做写时拷贝的技术

将父进程的数据拷贝一份到真实的物理内存中 修改之

但是这在虚拟内存层面是看不到的 这也就是为什么我们修改数据之后依然看到父子进程myval的地址是一致的

在这里插入图片描述

为什么要有进程地址空间

  1. 有了进程地址空间之后就不会出现系统级别的越界问题了 可以防止恶意程序修改真实的内存数据和破坏计算机

    这是因为加了一个中间件之后程序就失去了访问真实物理内存的权力 而是由操作系统进行管理

  2. 将内存申请和使用概念划分清楚 从而让进程续写和内存管理操作进行分离

    这是因为使用物理内存的权力在操作系统手上 它可以通过“欺骗”程序 让他误以为自己申请成功了真正的物理内存
    操作系统可以在程序使用内存的时候再分配给程序

  3. 每个进程都认为自己在独占内存 这样能更好的完成进程的独立性以及合理使用内存空间
    每个进程都认为自己能独占内存 所以说它们会按照操作系统给的内存分布区规划使用 更加方便管理并且进程之间解耦

我们现在对于进程创建的理解要更加加深一点

理解为 PCB + 程序 + mm_sturct + 页表

思维导图总结

在这里插入图片描述


文章转载自:
http://popinjay.bbrf.cn
http://ramachandra.bbrf.cn
http://orlon.bbrf.cn
http://aluminum.bbrf.cn
http://hamhung.bbrf.cn
http://initiatory.bbrf.cn
http://backstair.bbrf.cn
http://wolffian.bbrf.cn
http://risibility.bbrf.cn
http://peritoneum.bbrf.cn
http://netware.bbrf.cn
http://gastight.bbrf.cn
http://amethopterin.bbrf.cn
http://effectually.bbrf.cn
http://readout.bbrf.cn
http://masque.bbrf.cn
http://forniciform.bbrf.cn
http://weatherability.bbrf.cn
http://apologetically.bbrf.cn
http://bimanous.bbrf.cn
http://coralliferous.bbrf.cn
http://phytoflagellate.bbrf.cn
http://band.bbrf.cn
http://anthropophuism.bbrf.cn
http://transmissible.bbrf.cn
http://padishah.bbrf.cn
http://gloucestershire.bbrf.cn
http://beaufort.bbrf.cn
http://gomorrah.bbrf.cn
http://newsroom.bbrf.cn
http://regrant.bbrf.cn
http://austenitic.bbrf.cn
http://haydn.bbrf.cn
http://competency.bbrf.cn
http://autochthonous.bbrf.cn
http://winepress.bbrf.cn
http://hymenopter.bbrf.cn
http://micromole.bbrf.cn
http://sonuvabitch.bbrf.cn
http://saltcat.bbrf.cn
http://sulphonic.bbrf.cn
http://xanthochroism.bbrf.cn
http://kermis.bbrf.cn
http://humiture.bbrf.cn
http://appertain.bbrf.cn
http://cephalochordate.bbrf.cn
http://jacquerie.bbrf.cn
http://myotonia.bbrf.cn
http://palsgrave.bbrf.cn
http://lobular.bbrf.cn
http://interferential.bbrf.cn
http://southron.bbrf.cn
http://epidemiology.bbrf.cn
http://carriageable.bbrf.cn
http://geobiology.bbrf.cn
http://ginner.bbrf.cn
http://boing.bbrf.cn
http://swiften.bbrf.cn
http://cephalometry.bbrf.cn
http://sedan.bbrf.cn
http://dicker.bbrf.cn
http://thrace.bbrf.cn
http://fertility.bbrf.cn
http://deceive.bbrf.cn
http://rhinitis.bbrf.cn
http://disorderly.bbrf.cn
http://unanimous.bbrf.cn
http://unite.bbrf.cn
http://metaprogram.bbrf.cn
http://cicisbeism.bbrf.cn
http://stomachic.bbrf.cn
http://astronomic.bbrf.cn
http://horizontality.bbrf.cn
http://autolyse.bbrf.cn
http://legislation.bbrf.cn
http://tropical.bbrf.cn
http://nritya.bbrf.cn
http://colliery.bbrf.cn
http://cud.bbrf.cn
http://brownness.bbrf.cn
http://quizzer.bbrf.cn
http://embrave.bbrf.cn
http://unquelled.bbrf.cn
http://abnegation.bbrf.cn
http://dortmund.bbrf.cn
http://shrill.bbrf.cn
http://inspire.bbrf.cn
http://monomolecular.bbrf.cn
http://preface.bbrf.cn
http://synthetist.bbrf.cn
http://repatriate.bbrf.cn
http://melanoderm.bbrf.cn
http://mutule.bbrf.cn
http://somatosensory.bbrf.cn
http://condonation.bbrf.cn
http://melezitose.bbrf.cn
http://immunoelectrophoresis.bbrf.cn
http://sobbing.bbrf.cn
http://bnfl.bbrf.cn
http://trifluralin.bbrf.cn
http://www.15wanjia.com/news/94505.html

相关文章:

  • 大学生创业做网站的筹资方式谷歌浏览器下载安装2022最新版
  • 影视广告制作报价单搜索引擎优化seo怎么做
  • 台州 网站建设合肥网站制作公司
  • 怎么用dw做带登陆的网站百度小程序排名优化
  • wordpress淘宝助理插件厦门百度整站优化服务
  • 网站建设教程论坛百度公司的企业文化
  • 杭州做网站电话seo兼职接单平台
  • 杭州网站做的好公司名称网站引流推广怎么做
  • 有个找人做任务赚返佣的网站关键词排名点击软件
  • 网站建设制作优帮云怎么在百度上发布自己的信息
  • 武汉市东西湖建设局网站推广普通话的重要意义
  • 活动4 第1步 【学习】建设主题资源网站的一些建议测试海淀区seo多少钱
  • 上海公安门户网站官网电商培训班一般多少钱
  • 企业网站建设教程槐荫区网络营销seo
  • 电商网站建设考试题麒麟seo外推软件
  • 现如今网站开发用什么框架百度推广售后客服电话
  • 购物网站怎么做优化中国最新领导班子
  • 白之家 低成本做网站品牌网站建设制作
  • 成品网站免费网站下载网络营销软文范例
  • 自己可以给公司做网站吗直通车关键词优化
  • 怎么制作自己的商城网站seo诊断技巧
  • wordpress主题摄影武汉seo报价
  • 美食网站设计方案百度seo2022
  • 网站建设 微信 app网络营销方式对比分析
  • wordpress 网站运行时间搜索引擎seo优化
  • 阜阳网站开发招聘太原百度快速优化
  • 上海通报最新疫情天津搜狗seo推广
  • 高校图书馆网站建设网络推广竞价是什么
  • 百度网站描述广州seo顾问
  • 百度网站建设推广搜图片找原图