一、介绍内存管理
个人认为,内存管理分为内存管理和虚拟内存管理(交换分区)。
物理内存管理有内存的交换与覆盖、内存的连续分配管理方式和非连续分配管理方式,其中连续分配又分为动态分配和静态分配,非连续分配管理方式分为:分页式、分段式、段页式,这儿在之后都会讲到、
虚拟内存管理有请求分页管理方式、页面置换算法、页面分配策略、工作集和抖动。
当物理内存管理和虚拟内存管理相结合时才能称得上是真正的内存管理,接下来我们来分析分析内存管理,一窥阵容。
二、内存管理总览
这里的内存管理的命名思考了许久,根据内存的交换和覆盖,连续分配或不连续分配很显然是物理内存才能做得到,分配的是实际的物理内存,可是进行划分操作的确实操作系统,说是物理内存管理也不是很合适,故使用了内存管理这一“模棱两可”的说辞,希望有想法的朋友可以在评论区留下各位的想法和思考。
内存管理的功能有以下几点:
内存空间的分配:操作系统来进行的分配和管理,保证分配准确,不需要编程人员手动进行划分。
物理地址和虚拟地址的转换:现代的一台计算机不可能在同一时间只运行一个程序,早期的实地址模式并不适合这样的工作情况,这也就导致了程序中的逻辑地址与内存中的物理地址不可能一致,进行地址的转换就是必须进行的一项工作了,这也是内存管理的重要功能之一。
内存空间的扩充:使用内存交换和内存覆盖的技术保证内存空间能被有效地利用、
内存空间的保护:保证各个不同的作业在各自的内存空间内运行,互不干扰。
有人可能有疑问,程序是怎么进入内存?如何run起来?这个涉及到程序编译的过程,以后的博客会提到,