
| 此条目可能需要进行清理,以符合维基百科的质量标准。(2008年2月24日) 请尽量协助改善这篇条目,详细信息请参见讨论页。 |
| 此条目的准确性有争议。 挂上此模板的编辑者需在讨论页说明此文准确性有争议的原因,以便让各编辑者讨论和改善。 在编辑之前请务必察看讨论页。 |
内存管理,是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。
一个执行中的程式,譬如网页浏览器在个人电脑或是图灵机(Turing machine)里面,为一个行程将资料转换于真实世界及电脑内存之间,然后将资料存于电脑内存内部(在计算机科学,一个程式是一群指令的集合,一个行程是电脑在执行中的程式)。内存能被实际组织在许多方法里头,例如磁带或是磁盘,或是小阵列容量的微芯片。 从1950年代开始,计算机变的更复杂,它被连线于许多种类的内存。内存管理的任务也变的复杂,甚至必须要执行多个行程在同一台机器上相同的时间。
一个有用简单的发展在虚拟内存内,一个程式(操作系统),持续的追踪实体位置再每一个资料区段,及移动资料在实体位置去改善效能及保证可靠性,对于每个使用者阶层(user-level)的程式,操作系统分配一段虚拟内存空间,当行程起始时,不需要移动资料到实体装置间,资料存于磁盘内的虚拟内存空间,也不需要去配置主内存空间给该行程,他们是很自由的当使用者有需要用到时才会加载到主内存内。
可以想像一个很大的程式,当他执行时变成行程,而大部分的内存空间都被存到磁盘内虚拟内存位址,需要用到的部分才被加载到内存内部提供服务
一个程式结构由以下两种的组合而成:
当一个程式执行,操作系统印对程式的资料区段及本文区段到虚拟内存空间内部,然后执行程式的指令在内存(见范纽曼架构(von Neumann architecture),无论如何,当程式执行时就必须去储存暂时性的资料,或更重要的,它会呼叫一些副程式(function)或是例程(subroutine),并且储存现在副程式的状态,最好的数据结构方法,资料由堆栈(stack)的方式储存,当我们完成这个副程式,资料将会由堆栈的pop方式取出,堆栈将会在副程式的生命周期内动态的成长,操作系统提供区分本文区段及资料区段,而堆栈区段则在一个行程的最顶端,这种方式称为分段(segments)。
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History