分区式管理是满足多道程序的最简单的存储管理方案。它的基本思想是将内存划分成若干 个连续区域,称为分区。每个分区只能存储一个程序,且程序也只能在它所驻留的分区中运行。 |
| ||||||||||||||||||||||||||||||
动态地划分内存。即在作业在装入内存时把可用内存“切出”一个连续的区域分配给 该作业,且分区大小正好适合作业的需要。 为了实现动态分配,系统设立空闲分区链表:
空闲分区链表示意图
按空闲块链接的方式不同,可以有以下四种算法:
为作业选择分区时总是寻找其大小最接近于作业所要求的存储区域。 设作业序列: A:12K B:3K C:10K
与最佳适应法相反,它在作业选择存储块时,总是寻找最大的空白区。 作业序列: A:12K B:3K C:10K
为作业选择分区时总是按地址从高到低搜索,只要找到可以容纳该作业的空白 块,就把该空白块分配给该作业。 作业序列: A:12K B:10K C:3K
类似首次适应法,每次分区时,总是从上次查找结束的地方开始,只要找到一 个足够大的空白区,就把它划分后分配出去。 作业序列: A:12K B:10K C:3K
设R:回收区; F1:上邻空白块; F2:下邻空白块
|
| ||||
|
动态地址重定位 | ||
动态地址重定位 | ||
| ||
|
| ||||||||||||
为了防止一首作业有意或无意地破坏操作系统或其它作业。一般说来,没有硬件支持, 实现有效的存储保护是困难的。通常采取: 两种措施,或二者兼而有之。
|
|
|
最佳适应算法:(best fit algorithm)。“最佳”的含义是指每次为作业分配主存时 ,总是把既能满足要求,又是最小的空闲区分配给作业,以免由于“大 材小用”而浪费主存。为了加速查找,该算法要求将所有的空闲区按其 大小递增次序排列。 | |
首次适应算法:(first fit algorithm)。在该算法中,把主存中所有空闲区按其物理 地址递增的次序排列。在为作业分配存储空间时,从低址空闲区开始查 找,直到找到第一个能满足要求的空闲区后,从中划出与请求的大小相 等的存储空间分配给作业,余下的空闲区仍留在空闲区表或链中。 | |
下次适应算法:(next fit algorithm)。该算法是首次适应算法的变形,在为作业分 配存储空间时,是从上次所分配的空闲区的下一个空闲区开始查找,直 到找到第一个能满足要求的空闲区,从中划出一块与请求的大小相等的 一块存储区分配给作业。在该算法中应采取循环查找方式,即最后上个 空闲区的大小仍不能满足要求时,应再从第一个空闲区开始查找,故又 称为循环造就算法。 |