第四章 内存管理

2021-08-27  本文已影响0人  汪洪正

内存管理的功能:


程序的执行过程

地址重定位的方法:

在可执行文件中记录内存地址,装入时直接定位在上述(即文件中记录的地址)内存地址。
优点:装入过程简单。
缺点:过于依赖于硬件结构,不适于多道程序系统。

程序在执行前集中一次性完成的地址变换方式,只完成一个首地址不同的连续地址转换。
优点:不需硬件支持,可装入有限多道程序
缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动。不易实现共享。

程序在执行过程中,当CPU访问指令或数据时进行的地址变换方式。
优点:
OS可以将一个程序分散存放于不连续的内存空间,可以移动程序,有利用实现共享。
能够支持程序执行中产生的地址引用,如指针变量(而不仅是生成可执行文件时的地址引用)。
缺点:需要硬件支持(通常是CPU) ,os实现较复杂。它是虚拟存储的基础。

逻辑地址、物理地址和地址映射

逻辑地址(相对地址,虚地址):用户的程序中相对于某个基准量(通常为0)编址所用的地址。

物理地址(绝对地址,实地址):内存中存储单元的地址。物理地址可直接寻址。

地址映射:将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址。当程序装入内存时,操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致,而CPU执行指令时,是按物理地址进行的,所以要进行地址转换。

虚拟存储技术的核心与形式

虚拟存储技术

其核心是把作业的地址空间和主存的存储空间看做两个不同的概念。
一个计算机为程序员提供了多大的地址空间,他就可以在这个地址空间内编制多大的程序,而完全不顾及实际内存的大小。
所谓虚拟存储器就是一个地址空间,正如主存对应于存储空间一样。

虚拟存储的形式
引入虚拟存储的好处
虚拟存储的特征

分区存储管理

固定分区法

①分区个数固定,分区大小固定
②不支持虚拟存储技术

优点 缺点
简单,易行 内存空间极度浪费(内存碎片过多),大作业无法运行

地址重定位:在地址中加上起始地址

动态分区法

①选择分区分匹配中的数据结构
②分区分配算法(从若干个空闲分区中找到这个分区)
③不支持虚拟存储技术

①最先适应算法(First fit)

优点:优先利用内存低址部分的内存空间
缺点:内碎片产生的太多,低址部分不断划分,增加了查找开销。

②最佳适应算法(Best fit)

优点:使内存空间分布均匀,减少查找的开销。
缺点:缺乏大的空闲分区,不利于装入大作业

③最坏适应算法(Worst fit)

优点:易于实现,系统开销小
缺点:产生许多难以利用的小空闲区


覆盖技术(共用体就是覆盖技术)

缺点:增加了编程人员的负担
从外存装入覆盖文件,以时间换空间。

交换技术(牺牲了计算机的工作效率)

①将单位缩小
②实现非连续存储
通过部分装入,对程序进行分割。


页面管理

Unix中页面大小为1K,Linux中页面大小为4K。
①在装入内存时,做分页。
内存以页的大小分割,以存放个个程序的页。

页式管理的优点

①内存利用率最高(空间使用效率高)
②实现了非连续存储

静态页式分配算法

①把作业切割成多页,求出页数。
②查找存储页面表
③若满足:

优点:实现了非连续存储,一定程度上解决了内存碎片的问题。
缺点:不支持虚拟存储技术,作业要一次性全部装入。

上一篇 下一篇

猜你喜欢

热点阅读