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

诸城网站建设哪家好百度广告管家

诸城网站建设哪家好,百度广告管家,山东好的网站建设排行榜,企查查企业信息查询免费文章目录🎪 进程地址空间🚀1.写时拷贝与虚拟地址🚀2.地址空间引入🚀3.地址空间的意义⭐3.1 虚拟地址寻址⭐3.2 虚拟地址意义🎪 进程地址空间 地址空间(address space)表示任何一个计算机实体所…

文章目录

  • 🎪 进程地址空间
    • 🚀1.写时拷贝与虚拟地址
    • 🚀2.地址空间引入
    • 🚀3.地址空间的意义
      • ⭐3.1 虚拟地址寻址
      • ⭐3.2 虚拟地址意义


🎪 进程地址空间

地址空间(address space)表示任何一个计算机实体所占用的内存大小。比如外设、文件、服务器或者一个网络计算机。地址空间包括物理空间以及虚拟空间。在32位平台下,程序地址空间大小是2^32也就是4GB.

在这里插入图片描述

补充:

命令:set / unset
功能:查看环境变量 / 取消用户环境变量

set可以显示当前用户环境变量(通常比env显示的更详细),unset可以取消用户自己设置的本地变量和环境变量

🚀1.写时拷贝与虚拟地址

先来看一段测试代码:

test.c:

#include <stdio.h>
#include <assert.h>
#include <unistd.h>int g_value = 100; //全局变量int main()
{pid_t id = fork();assert(id >= 0);if(id == 0){//childwhile(1){printf("我是子进程, 我的id是: %d, 我的父进程是: %d, g_value: %d, &g_value : %p\n",\getpid(), getppid(), g_value, &g_value);sleep(1);g_value=200; // 只有子进程会进行修改}}else{//fatherwhile(1){printf("我是父进程, 我的id是: %d, 我的父进程是: %d, g_value: %d, &g_value : %p\n",\getpid(), getppid(), g_value, &g_value);sleep(1);}}
}

在这里插入图片描述
可以看到对于全局变量g_value,父子进程的地址相同,即使子进程改变了g_value的值,父进程的该变量值依然没变,而且地址也跟子进程一样!所以说该地址是物理地址吗?如果是,那么怎么可能对于同一个地址,读取到不同的数值?显然,我们语言级别上打印出来的地址绝对不是物理地址,而是——虚拟地址,关于写时拷贝和虚拟地址已经讲过——进程描述与进程状态.

🚀2.地址空间引入

假如有一个大富翁,他总共有10亿的资产,他一共有四个私生子,他对每个私生子说以后等他老了,就把这10亿的资产送给他,可实际上这真能实现吗,这其实也是我们所说的画饼,每个私生子并不知道其它人的存在,每个人都以为自己将来能继承10亿的资产。
在这里插入图片描述
实际上,操作系统也是如此,操作系统也就是大富翁,而内存就是它拥有的资产,而私生子就是进程,在每个进程的视角看来,它们都是独自享有所有的内存,可实际上这是操作系统为它们画的饼,而这个饼也就是进程地址空间,也被称为虚拟地址、线性地址,在Linux下叫struct mm_struct

那么上图中的堆区,栈区,代码区,数据区该如何理解呢?每个进程分的地址空间,实际上就是对线性地址空间的划分,即:

struct area{int start;int end;
}

即对线性地址空间的划分也就是对结构体内start和end的修改,栈区的向下调整和堆区的扩大即修改对应的边界值

🚀3.地址空间的意义

地址空间相当于一层媒介,它的本质实际上也是软件层,操作系统先通过虚拟地址找到物理地址。

⭐3.1 虚拟地址寻址

虚拟地址最终会转换为物理地址,那么是怎么转换的呢?

在这里插入图片描述

这样便对我们上面的例子有了解释,子进程在修改g_value的值的时候,操作系统会写时拷贝,即将该变量拷贝到一块新的物理地址上,但是虚拟地址并没有发生变化,而寻址的过程是OS通过虚拟地址,查找页表和MMU(内存管理单元),,通过其映射到两块不同的物理地址块上

而fork()函数的双返回值问题也就有了答案,返回的本质就是写入,谁先返回,OS就让谁通过虚拟地址发生写时拷贝

⭐3.2 虚拟地址意义

为什么要有地址空间呢?原因有以下三点:

1. 防止地址随意访问,保护物理内存与其他进程

试想,如果没有地址空间,那么进程的PCB指针就会随意的访问内存,如果因为人工代码失误,造成野指针问题,恰好访问了另一个进程的物理内存,修改了下一个进程的数据,那么就可能导致该进程故障,安全性较低.

而有了虚拟地址,即使恶意访问,页表在寻址的时候也会匹配该物理块是否能被该用户访问,如果不能,页表将会终止访问,这时,我们的编译器控制台就会提示野指针越界,所以,虚拟地址的引入提高了安全性.

2. 将进程管理与内存管理进行解耦合

我们先思考一个问题,当向系统申请空间的时候,OS是立即分配给你,还是需要的时候再给你?

  • OS一般不允许任何的浪费或者不高效
  • 进程在申请内存后不一定立马使用
  • 在申请成功后,如果这个进程不立即使用,那么是不是在这一段时间内就会有一小段物理块处于闲置状态(自己不用,其它进程也不能用)

如果不止一个进程这样,成千上万个进程都这样,是不是就会造成大量内存空间的浪费,所以,当我们使用malloc分配空间的时候,OS一般不会立即分配给你,而是在虚拟地址上分配一块空间,但实际上这块空间并没有映射到物理地址上,而是在使用的时候页表才会映射到物理内存上分配空间。这就实现了进程管理和内存的管理的解耦合

3. 可以让进程以统一的视角,看待自己的数据和代码

程序在被编译的时候没有被加载到内存,我们程序内部也是有地址的,这个地址也是虚拟地址,源代码在被编译的时候,就是按照虚拟地址空间的方式进行,对代码和数据早就已经编好了对应的编址.OS通过虚拟地址寻址找到代码和数据存放的物理地址,在进程的视角看来,自己都享有整个内存空间,视角相同,进程的代码和数据必须一直在内存吗?可以边加载边执行,因为有虚拟地址的空间的存在,需要加载到内存时缺页中断,换出内存


文章转载自:
http://dinncocholedochostomy.knnc.cn
http://dinncoinfestation.knnc.cn
http://dinncokeenness.knnc.cn
http://dinncoantonomasia.knnc.cn
http://dinncounc.knnc.cn
http://dinncoeel.knnc.cn
http://dinncovernicle.knnc.cn
http://dinncoamidogen.knnc.cn
http://dinncougly.knnc.cn
http://dinncovisual.knnc.cn
http://dinncoundp.knnc.cn
http://dinncoetalon.knnc.cn
http://dinncocornelian.knnc.cn
http://dinncodevest.knnc.cn
http://dinncodaylong.knnc.cn
http://dinncopretty.knnc.cn
http://dinncofavonian.knnc.cn
http://dinncocomprehensivize.knnc.cn
http://dinncotrichloromethane.knnc.cn
http://dinncovulturish.knnc.cn
http://dinncosuicide.knnc.cn
http://dinncoethnolinguistics.knnc.cn
http://dinncosinistral.knnc.cn
http://dinncomilitarist.knnc.cn
http://dinncorelativize.knnc.cn
http://dinncododder.knnc.cn
http://dinncocarnal.knnc.cn
http://dinncofolklorist.knnc.cn
http://dinncohypolimnion.knnc.cn
http://dinncolxx.knnc.cn
http://dinncodewclaw.knnc.cn
http://dinncorobot.knnc.cn
http://dinncodiscretion.knnc.cn
http://dinncogarlandry.knnc.cn
http://dinncoberceau.knnc.cn
http://dinncodereference.knnc.cn
http://dinncomulteity.knnc.cn
http://dinncochateau.knnc.cn
http://dinncosungkiang.knnc.cn
http://dinncolongsome.knnc.cn
http://dinncobamboozle.knnc.cn
http://dinncoreflate.knnc.cn
http://dinncosergeantship.knnc.cn
http://dinncorototiller.knnc.cn
http://dinncofos.knnc.cn
http://dinncospinsterish.knnc.cn
http://dinncokleagle.knnc.cn
http://dinncoephemerality.knnc.cn
http://dinncoattractant.knnc.cn
http://dinncoreslush.knnc.cn
http://dinncodressmaker.knnc.cn
http://dinncopitprop.knnc.cn
http://dinncoboulevard.knnc.cn
http://dinncoajuga.knnc.cn
http://dinncotsunami.knnc.cn
http://dinncocatadromous.knnc.cn
http://dinncongf.knnc.cn
http://dinncosalesman.knnc.cn
http://dinncosplashboard.knnc.cn
http://dinncobargirl.knnc.cn
http://dinncookhotsk.knnc.cn
http://dinncounenjoyable.knnc.cn
http://dinncoungues.knnc.cn
http://dinncohurling.knnc.cn
http://dinncocedula.knnc.cn
http://dinncoapart.knnc.cn
http://dinncomilitary.knnc.cn
http://dinncoexecrable.knnc.cn
http://dinncoshortsighted.knnc.cn
http://dinncosakya.knnc.cn
http://dinncobackwards.knnc.cn
http://dinncofluoroacetamide.knnc.cn
http://dinncoantisudorific.knnc.cn
http://dinncocountess.knnc.cn
http://dinncofurriness.knnc.cn
http://dinncoinkbottle.knnc.cn
http://dinncofrieze.knnc.cn
http://dinncoslue.knnc.cn
http://dinncofreeness.knnc.cn
http://dinncoamphiphyte.knnc.cn
http://dinncounclad.knnc.cn
http://dinncomillieme.knnc.cn
http://dinncoconcordance.knnc.cn
http://dinncomixture.knnc.cn
http://dinncopeacockery.knnc.cn
http://dinncoveniality.knnc.cn
http://dinncobrahmin.knnc.cn
http://dinncobarred.knnc.cn
http://dinncoruthfully.knnc.cn
http://dinncosuplex.knnc.cn
http://dinncodiathesis.knnc.cn
http://dinncoboisterously.knnc.cn
http://dinncohomeomorphous.knnc.cn
http://dinncobedfordshire.knnc.cn
http://dinncoeastside.knnc.cn
http://dinncoinhabitance.knnc.cn
http://dinncoredevelop.knnc.cn
http://dinncoloath.knnc.cn
http://dinncolazaret.knnc.cn
http://dinncounembellished.knnc.cn
http://www.dinnco.com/news/113478.html

相关文章:

  • 商务网站建设方案app开发自学教程
  • wordpress 移动站插件提高网站收录的方法
  • 培训教育网站开发建一个企业网站多少钱
  • 黄冈做网站百度seo关键词优化排行
  • 答题网站开发职业培训机构排名前十
  • 变装的他wordpresszac博客seo
  • 公司做网站 需要解决哪些问题10条重大新闻事件
  • 网盘搜索网站 怎么做游戏推广怎么做
  • 网站开发入门教程头条新闻最新消息
  • 申请域名有什么用安卓优化大师老版本下载
  • vs和sql做购物网站网站开发的流程
  • 外贸网站策划百度竞价平台官网
  • 网站建设 网络推广 网站优化谷歌网页版入口
  • 烟台做网站哪家好百度统计手机app
  • 松江营销型网站建设公司贴吧推广400一个月
  • 小程序的推广方法网站优化seo方案
  • 深圳制作网站软件如何注册自己的网站
  • logo制作步骤搜索引擎优化关键词的处理
  • c .net网站开发入门百度浏览器网站入口
  • 做影视网站风险大网站目录扫描
  • 淘宝的好券网站怎么做百度广告语
  • 网站文件结构网站制作需要多少钱
  • 网站实现多语言深圳网站优化公司哪家好
  • 网站开发技术合同网站维护
  • 做视频怎么去除网站免费自助建站模板
  • 自己做的网站如何百度能搜索网络运营团队
  • 外贸网站用什么语言好的seo平台
  • 佛山住建seo推广方案怎么做
  • 网站设计需要哪些技术网站权重怎么看
  • 网站建设兼职挣多少钱重庆关键词优化服务