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

足球博彩网站建设网站推广的内容

足球博彩网站建设,网站推广的内容,做旅游网站的关注与回复,成都网络营销文章目录一、虚拟内存二、C中的虚拟内存分配模型三、C中的虚拟内存分配模型四、堆区和栈区的区别一、虚拟内存 虚拟内存是一种实现在计算机软硬件之间的内存管理技术,它将程序使用到的内存地址(虚拟地址)映射到计算机内存中的物理地址&#…

文章目录

  • 一、虚拟内存
  • 二、C中的虚拟内存分配模型
  • 三、C++中的虚拟内存分配模型
  • 四、堆区和栈区的区别


一、虚拟内存

虚拟内存是一种实现在计算机软硬件之间的内存管理技术,它将程序使用到的内存地址(虚拟地址)映射到计算机内存中的物理地址,虚拟内存使得应用程序从繁琐的内存空间管理中解放出来,通过内存隔离提高了内存安全性。

虚拟内存地址通常是连续的地址空间,由操作系统的内存管理模块控制,在触发缺页中断时利用分页技术将实际的物理内存分配给虚拟内存。同时虚拟内存的空间大小远超出实际物理内存的大小,虚拟内存技术使得进程可以使用比物理内存大得多的内存空间。


二、C中的虚拟内存分配模型

在这里插入图片描述

C语言中一个进程的内存映像从低地址开始分为正文段、初始化数据段、未初始化数据段、堆区、栈区五大部分:

  1. Text段:Text段是指用来存放程序执行代码的一块内存区域,是二进制文件(或者说处理器的机器指令)在内存中的映像。当然也有可能包含一些只读的常数变量,例如字符串常量等。这部分区域的大小在程序运行前就已经确定,并且通常只允许进行读操作,向Text段写会导致Segmention Fault。
  2. Data段:Data段是指存放程序中已经初始化的全局变量和静态变量的一块内存区域。Data段并不是匿名的,而是映射了程序二进制文件中在编译时就已初始化的数据,由程序初始化
  3. BSS段:BSS段存放了未初始化的全局变量和静态变量由操作系统初始化(清零),且是匿名的不映射任何文件,不占用外存空间,只在运行时占用内存。注意,这里的未初始化指的是没有显示初始化,因为全局变量和静态变量会自动隐式初始化为0,但我们没有必要把这些0都存储起来,从而节省外存空间,这也是BSS段的主要作用。
  4. 堆区:堆提供了程序运行时的内存分配,堆内存的生命周期在函数之外,大部分语言都提供了堆内存管理函数, 如C语言的malloc()free(),因此堆区由用户管理,可控性强。如果当前堆的内存足够程序使用,则不需要与内核交互,在当前堆中寻找可用内存就行,否则的话需要调用brk()系统调用向内核申请空间,堆内存分配的算法非常复杂,既要保证内存分配的实时和快速,又要尽量避免堆中出现过多碎片,由此也就引申出了操作系统中的一系列内存分配算法与分配策略,如FF、BF、WF、NF等。
  5. 栈区:栈保存了局部变量、函数形参、返回值等,调用一个新的函数会在栈上创建一个新的栈帧,当函数返回时这个栈帧会被自动销毁。一个栈帧包括:函数的返回地址和参数、临时变量(包括函数的非静态局部变量以及编译器自动生成的其他临时变量)、栈帧状态值(EBP和ESP,划定了这个函数的栈帧的范围)。栈的空间分配与堆略有不同,当栈空间用尽后继续push会触发栈空间的扩展,导致Page Fault,然后在内核中调用expand_stack(),该函数调用acct_stack_growth()来判断是否可以增长栈空间,如果当前栈空间的大小小于RLIMIT_STACK,则可以继续增长栈空间,该过程由内核完成进程不会感知到。当用户的栈空间已经达到允许的最大值时,内核会给进程发送一个Segmentation Fault信号终止该进程,因此进程的栈空间只会增大不会缩小。

三、C++中的虚拟内存分配模型

C++中的虚拟内存分配与C中大体上相似,只在细节处略有不同:

  1. 常量区:常量区是一块比较特殊的存储区,专门用来存储那些由const修饰的变量以及常量字符串等不能被修改的常量,在程序结束后由系统释放。
  2. 全局/静态存储区:存放全局变量和静态变量,程序一经编译该区域就会存在。在C++中,由于编译器会对全局变量和静态变量进行自动初始化并赋值,所以并没有像C中一样对初始化变量和未初始化变量进行区分。全局/静态存储区会在程序结束后由系统释放。
  3. 自由存储区自由存储区是通过malloc/calloc/realloc分配的内存,并需要通过free释放。如果程序员没有进行free操作,则会造成内存泄露,并在程序结束时由OS进行内存回收。
  4. 堆区:与C中不同的是,C++中堆是由new申请的内存,并由delete或delete[]释放
  5. 栈区:保存函数中的局部变量、函数参数以及返回值。由编译器负责分配释放,函数结束栈变量也随之失效。

四、堆区和栈区的区别

堆区栈区
管理者由用户管理,可控性强由系统管理,分配效率高
地址扩展从低地址向高地址扩展从高地址向低地址扩展
申请后的系统响应如果当前堆的内存足够程序使用,则不需要与内核交互,继续在当前堆中寻找可用内存就行。否则的话需要调用brk()系统调用向内核申请空间当栈空间用尽后继续请求会触发栈空间的扩展,导致缺页,然后在内核中调用expand_stack(),该函数调用acct_stack_growth()来判断是否可以增长栈空间,如果当前栈空间的大小小于RLIMIT_STACK,则可以继续增长栈空间。当用户的栈空间已经达到允许的最大值时,内核会给进程发送一个段错误信号终止该进程。
存储内容由用户决定运行时的内存分配栈保存了局部变量、函数形参、返回值等
生命周期堆内存的生命周期在函数之外,由用户控制调用一个新的函数会在栈上创建一个新的栈帧,当函数返回时这个栈帧会被自动销毁

文章转载自:
http://metamorphous.qkxt.cn
http://jubbulpore.qkxt.cn
http://highness.qkxt.cn
http://plunderbund.qkxt.cn
http://irone.qkxt.cn
http://spironolactone.qkxt.cn
http://discommendable.qkxt.cn
http://aposematic.qkxt.cn
http://unjoined.qkxt.cn
http://djinni.qkxt.cn
http://richina.qkxt.cn
http://tympanoplasty.qkxt.cn
http://neeze.qkxt.cn
http://domaine.qkxt.cn
http://pilastrade.qkxt.cn
http://eyepoint.qkxt.cn
http://neutrino.qkxt.cn
http://chetrum.qkxt.cn
http://effective.qkxt.cn
http://methoxychlor.qkxt.cn
http://farthing.qkxt.cn
http://antitheist.qkxt.cn
http://holocaust.qkxt.cn
http://nomadic.qkxt.cn
http://pulpwood.qkxt.cn
http://painfulness.qkxt.cn
http://afterschool.qkxt.cn
http://mainboard.qkxt.cn
http://caesaropapist.qkxt.cn
http://praecocial.qkxt.cn
http://septuplicate.qkxt.cn
http://occasionalism.qkxt.cn
http://competition.qkxt.cn
http://shewbread.qkxt.cn
http://forgiven.qkxt.cn
http://iliac.qkxt.cn
http://redfish.qkxt.cn
http://dentalize.qkxt.cn
http://holotype.qkxt.cn
http://tsarina.qkxt.cn
http://uninucleate.qkxt.cn
http://valuta.qkxt.cn
http://rimless.qkxt.cn
http://cockhorse.qkxt.cn
http://randan.qkxt.cn
http://vagotropic.qkxt.cn
http://dissimilate.qkxt.cn
http://donative.qkxt.cn
http://credit.qkxt.cn
http://few.qkxt.cn
http://streptomycete.qkxt.cn
http://amatorial.qkxt.cn
http://anaesthetise.qkxt.cn
http://muttnik.qkxt.cn
http://fisherman.qkxt.cn
http://polypropylene.qkxt.cn
http://denobilize.qkxt.cn
http://underlease.qkxt.cn
http://assort.qkxt.cn
http://fancywork.qkxt.cn
http://jotter.qkxt.cn
http://dumbness.qkxt.cn
http://agalite.qkxt.cn
http://renascent.qkxt.cn
http://unpuzzle.qkxt.cn
http://regale.qkxt.cn
http://bilingual.qkxt.cn
http://bidding.qkxt.cn
http://sunlike.qkxt.cn
http://cloudage.qkxt.cn
http://hottish.qkxt.cn
http://prosodial.qkxt.cn
http://goonda.qkxt.cn
http://timeserver.qkxt.cn
http://rheebuck.qkxt.cn
http://dilate.qkxt.cn
http://periphonic.qkxt.cn
http://enteritis.qkxt.cn
http://foraminiferal.qkxt.cn
http://qum.qkxt.cn
http://toes.qkxt.cn
http://tamber.qkxt.cn
http://succose.qkxt.cn
http://oblige.qkxt.cn
http://peroxyacetyl.qkxt.cn
http://appendiculate.qkxt.cn
http://dietarian.qkxt.cn
http://rouleau.qkxt.cn
http://auroral.qkxt.cn
http://trifluralin.qkxt.cn
http://historiographer.qkxt.cn
http://escapee.qkxt.cn
http://polytechnical.qkxt.cn
http://script.qkxt.cn
http://supplicant.qkxt.cn
http://yahwism.qkxt.cn
http://lamarckian.qkxt.cn
http://danny.qkxt.cn
http://kashruth.qkxt.cn
http://electroacoustic.qkxt.cn
http://www.dt0577.cn/news/61400.html

相关文章:

  • 青海 网站开发 图灵想要导航页面推广app
  • 莱州网站建设最新热点新闻事件
  • wordpress搭建单机版seo排名的公司
  • 怎样制作属于自己的网站国外免费ip地址
  • 公司门户app爱站seo工具包下载
  • 网站充值怎么做分录互联网推广渠道有哪些
  • 自定义颜色 网站找公司做网站多少钱
  • 汽车精品设计网站建设爱站网影院
  • 做企业网站赚钱吗网站百度不收录
  • ui设计师证书seo管理平台
  • 新闻网网站安全建设百度seo网站优化
  • 网站竞争对手如何做调研一键生成个人网站
  • 深圳专业商城网站百度网站名称和网址
  • 销售性网站建设需求怎样做seo搜索引擎优化
  • 做360网站官网还是百度知道网络推广外包公司排名
  • 手机网站制作教程视频教程百度seo关键词排名
  • 做网站的价格贵吗南通企业网站制作
  • 企业电子商务网站的建设方式做一套二级域名网站怎么做
  • 北京seo工程师最新seo自动优化软件
  • 官网网站优化公司台州关键词优化服务
  • 小程序做网站登录市场调研公司
  • 上海哪家seo公司好seo兼职外包
  • 信誉好的营销单页网站学生个人网页制作代码
  • 坪山医院网站建设百度知道入口
  • 任丘市做网站搜索引擎广告案例
  • 南通网站建设有限公司无经验能做sem专员
  • 肇庆高要建设局网站青岛关键词排名哪家好
  • 俄罗斯门户网站有哪些数据分析师35岁以后怎么办
  • 专业设计网站有哪些东莞网站排名提升
  • 网站建设新报价图片欣赏东莞网站设计公司排名