• 技术文章 >运维 >linux运维

    内存管理与使用实例

    PHP中文网PHP中文网2017-06-21 10:33:47原创1167

    内存管理,是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。

    一个运行中的程序,譬如网页浏览器在个人电脑或是图灵机(Turing machine)里面,为一个进程将数据转换于真实世界及电脑内存之间,然后将数据存于电脑内存内部(在计算机科学,一个程序是一群指令的集合,一个进程是电脑在运行中的程序)。内存能被实际组织在许多方法里头,例如磁带或是磁盘,或是小数组容量的微芯片。 从1950年代开始,计算机变的更复杂,它被连接于许多种类的内存。内存管理的任务也变得复杂,甚至必须要在同一台机器上相同的时间运行多个进程。

    在内存内,一个程序(操作系统)在每一个数据区块持续地追踪实体位置,及移动实体上的数据去改善其性能及保证可靠性,对于每个用户层(user-level)的程序,操作系统分配一段虚拟内存空间,当进程起始时,不需要移动数据到实体设备间,数据存于磁盘内的虚拟内存空间,也不需要去配置主存空间给该进程,当用户有需要用到时,他们才会很自由地加载到主存内。

    可以想像一个很大的程序,当他运行时变成进程,而大部分的内存空间都被存到磁盘内虚拟内存地址,需要用到的部分才被加载到内存内部提供服务。

    主存使用

    一个程序结构由以下两部分而成:

    • “本文区块”,也就是指令存放,提供CPU使用及运行

    • “数据区块”,存储程序内部本身设置的数据,例如常数字符串,像是GUI接口内部一些文字消息,或是程序设计时所放入的消息数据,数据可借由程序运行时由输入(input)的方式加入,或者经由程序运行的流程中被移除。

    当一个程序运行,操作系统将程序的数据区块及本文区块映射到虚拟内存空间内部,然后在内存运行程序的指令,无论如何,当程序运行时就必须去存储暂时性的数据,或更重要的,它会调用一些函数(function)或是例程(subroutine),并且存储当前函数的状态,最好的数据结构方法,数据由堆栈(stack)的方式存储,当我们完成这个函数,数据会由堆栈的pop方式取出,堆栈将会在函数的生命周期内动态的成长,操作系统提供区分本文区块及数据区块,而堆栈区块则在一个进程的最顶端,这种方式称为段式结构(segments)或“分段

    以上就是内存管理与使用实例的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:管理 内存
    上一篇:LNMP环境下安装FreeRadius的实例教程 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • linux档案是什么样的• linux autofs是什么• linux中的上下文是什么• linux什么命令可以过滤控制字符• linux o和a什么文件
    1/1

    PHP中文网