内存管理

内存管理是指软件运行时对计算机内存资源的分配使用的技术。

其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。

一个执行中的程式,譬如网页浏览器在个人电脑或是图灵机(Turing machine)里面,为一个行程将资料转换于真实世界及电脑内存之间,然后将资料存于电脑内存内部(在计算机科学,一个程式是一群指令的集合,一个行程是电脑在执行中的程式)。

一个程式结构由以下两部分而成:“本文区段”,也就是指令存放,提供CPU使用及执行; “资料区段”,储存程式内部本身设定的资料,例如常数字串。

当一个程序执行,操作系统将程序的资料区段本文区段映射到虚拟内存空间内部,然后在内存执行程序的指令(见冯诺依曼架构(von Neumann architecture)。

无论如何,当进程执行时就必须去储存暂时性的资料,或更重要的,它会呼叫一些函数(function)或是子程序(subroutine),并且储存当前函数的状态。

最好的数据结构方法,资料由堆栈(stack)的方式储存,当我们完成这个函数,资料会由堆栈的pop方式取出,堆栈将会在函数的生命周期内动态的成长,操作系统提供区分本文区段及资料区段,而堆栈区段则在一个行程的最顶端,这种方式称为段式结构(segments)或“分段”。

内存管理对于编写出高效率的Windows程序是非常重要的,这是因为Windows是多任务系统,它的内存管理和单任务的DOS相比有很大的差异。DOS是单任务操作系统,应用程序分配到内存后,如果它不主动释放,系统是不会对它作任何改变的;

但Windows却不然,它在同一时刻可能有多个应用程序共享内存,有时为了使某个任务更好地执行,Windows系统可能会对其它任务分配的内存进行移动,甚至删除。

因此,我们在Windows应用程序中使用内存时,要遵循Windows内存管理的一些约定,以尽量提高Windows内存的利用率。

 

你可能感兴趣的:(内存管理)