
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
内存管理是程序员在开发软件的时候需要重点关注的一个问题,下面我们就通过案例分析来了解一下,软件开发内存管理布局都有哪些。
内存管理系统和模块在操作系统以及编程语言中都占有着重要的地位,任何资源的使用都离不开申请和释放两个动作,内存管理中的两个重要过程就是内存分配和垃圾回收,内存管理系统如何利用有限的内存资源为尽可能多的程序或者模块提供服务是它的核心目标。
虽然多数系统都会将内存管理拆分成多个复杂的模块并引入一些中间层提供缓存和转换的功能,但是内存管理系统实际上都可以简化成两个模块,即内存分配器(Allocator)、垃圾收集器(Collector)。当然除了这两个模块之外,在研究内存管理时都会引入三个模块—用户程序(Mutator),帮助我们理解整个系统的工作流程。
内存布局
操作系统会为在其上运行的应用程序分配一片巨大的虚拟内存,需要注意的是,与操作系统的主存和物理内存不一样,虚拟内存并不是在物理上真正存在的概念,它是操作系统构建的逻辑概念。
栈区(Stack)—存储程序执行期间的本地变量和函数的参数,从高地址向低地址生长;
堆区(Heap)—动态内存分配区域,通过malloc、new、free和delete等函数管理;
未初始化变量区(BSS)—存储未被初始化的全局变量和静态变量;
数据区(Data)—存储在源代码中有预定义值的全局变量和静态变量;
代码区(Text)—存储只读的程序执行代码,即机器指令;
希望这辈子,最让你无悔的事情就是来达内学习!学习向来不是件易事,但无论过程多么艰难,希望你依然热爱生活,热爱学习!永远记得,达内将与你一同前行!现在扫码,立即领取万元课程礼包,助力0基础快速入行,为你梳理行业必备技能,全方位了解岗位发展前景!
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。