1. 内存管理,是指软件运行时对计算机内存资源的分配和使用的技术。
主要目的是如何高效,快速的分配并且在适当时候释放和回收内存资源。
2. 内存管理的需求
- 重定位
- 保护。 必须在运行时检查进程产生的所有访问,以确保它们只访问了分配给该进程的空间。内存保护的需求必须由处理器(硬件)来满足,而不是操作系统(软件)来满足。
- 共享。 合作完成同一个任务的进程可能需要共享访问相同的数据结构。因此内存管理必须允许对内存共享区域进行受控访问,而不损害基本的保护。
- 逻辑组织
- 物理组织。计算机存储器至少被组织成两级,内存和外存。内存提供快速的访问,并且易失性的,即不能提供永久存储。外存比内存慢而且便宜,并且是非易失的。
3. 内存分区
内存分区最基本的操作是由处理器把程序装入内存中执行。
外部碎片,指在所有分区外的存储空间变成越来越多的碎片。
固定分区会产生内部碎片,可变分区会产生外部分区。
4. 逻辑地址是指与当前数据在内存中的物理分配地址无关的访问地址,在执行对内存的访问之前必须把它转换成物理地址。
相对地址是逻辑地址的一个特例,是相对于某些已知点的存储单元。
物理地址或绝对地址是数据在内存中的实际位置。
5. 操作系统需要为每个进程维护一个页表,页表给出了该进程的每一页对应页框的位置。
分页
采用简单分页技术,内存被分成许多大小相等且很小的页框,每个进程被划分成同样大小的页;较少的进程需要较少的页,较大的进程需要较多的页;当一个进程被装入时,它的所有页都被装入到可用页框中,并且建立一个页表。
分段
采用分段技术,可以把程序和其相关数据划分到几个段中。采用分段技术时的逻辑地址也是由两部分组成:段号和偏移量。
由于使用大小不等的段,分段类似于动态分区。分段消除了内部碎片,但是和动态分区一样,它会产生外部碎片。不过由于进程被分成多个小块,因此外部碎片也会很小。
6. 内存管理是操作系统中最重要,最复杂的任务之一。内存管理把内存视为一个资源,可以分配给多个活动进程,或者由多个活动进程共享。
内存管理的基本工具是分页和分段。采用分页技术,每个进程被划分成相对比较小,大小固定的页。采用分段技术可以使用大小不同的块。还可以在一个单独的内存管理方案中把分页技术和分段技术结合起来使用。