赞
踩
目录
为了能将用户程序装入内存,必须为它分配一定大小的内存空间。连续分配方式是最早出现的一种存储器分配方式,曾被广泛应用于上世纪60~80年代的OS中,该分配方式为一个用户程序分配一个连续的内存空间,即程序中代码或数据的逻辑地址相邻,体现在内存空间分配时物理地址的相邻。连续分配方式可分为四类:单一连续分配、 固定分区分配、动态分区分配以及动态可重定位分区分配算法四种方式。
补充:
单用户系统。
在一段时间内,只有一个进程在内存。
内存分为两个区域:一个供操作系统使用,一个供用户使用
设置基址寄存器、限界寄存器,要求:逻辑地址映射为物理地址后,物理地址必须在两者之间。
简单;适用于单任务OS
多道程序设计系统。
单一连续分配中,将整块内存交给一个程序使用,显然会造成很大浪费,自然的可以想到将一整块内存区域分为若干个小块区域,来供多个程序同时使用。划分区域有两种方法:分区大小相等、分区大小不等。前者更加简单直接,后者使得存储器分配更加灵活。
(1)OS初始化阶段,将用户区划分为若于固定大小的内存区域(分区) ;
(2)每个分区可放一个程序运行;
(3)一个分区内的程序执行结束,可调入另一个程序 执行;
(4)划分为几个分区,则允许几个程序同时在内存运行;
(5)分区大小和位置可不同;
分区说明表
多道程序设计系统。
(1) OS初始化阶段,将用户区划分为一个大的空白分区;
(2)每个程序运行时,划分出一个大小合适的分区;
(3)程序执行结束,其所在的分区撤消;
不难看出,由于程序交错运行,用户区中可能产生许多较小的空闲区,他们常常不能满足程序的空间需求,因而被浪费,即“外零头”(碎片)
空闲分区表
空闲分区链
1)首次适应算法
特点:
2)循环首次适应算法
本质:CLOCK算法;
特点:
3)最佳适应算法
特点:
4)最坏适应算法
特点:
“碎片”问题
经过一段时间的分配回收后,内存中存在很多很小的空闲块。它们每一个都很小,不足以满足分配要求;但其总和满足分配要求。这些空闲块被称为碎片造成存储资源的浪费
多道程序设计系统。
(1)采用动态分区分配方式;
(2)引入“紧凑”机制,合并小的碎片空闲区;
(3)使用动态地址重定位;
与动态分区分配类似,区别在于这里使用了紧凑机制
紧凑机制会使得程序的位置发生改变,因此就需要引入重定位技术,由于程序的位置不固定,只有运行时才能确定,因此只能采用动态重定位(程序不变,运行时重定位,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。