纯分页管理和请求式分页管理


分区式管理是满足多道程序的最简单的存储管理方案。它的基本思想是将内存划分成若干
个连续区域,称为分区。每个分区只能存储一个程序,且程序也只能在它所驻留的分区中运行。
 
        作系统预先把可分配的主存空间分割成若干个连续区域,如下图:
img4311.GIF (7433 bytes)
分区号起始地址

长度

状态

作业名
32k16k1J1
48k32k1J2
80k64k1J3
144k112k0 
状态=1
表示已
分配
 
 
 
固定分区示意图
固定分区说明书
        一旦分好,则每个分区的大小固定不再变化,且分区的个数也不再改变。一个分区只能
    容纳一道作业。
    分配算法                                                    BACKHEAD.GIF (2500 bytes)
          如下图:
固定分区分配流程图
BACKHEAD.GIF (2500 bytes)
    回收算法
          只需将分区说明表中相应的分区的占有标志位置成“0”即可。
    固定分区的优缺点
          内存分配、回收算法简单,容易实现。(优点)
          主存空间利用率不高,容易造成内零头(缺点)
 
        态地划分内存。即在作业在装入内存时把可用内存“切出”一个连续的区域分配给
    该作业,且分区大小正好适合作业的需要。
        为了实现动态分配,系统设立空闲分区链表
未分配分
区的边界标志
已分配分
区的边界标志
    每个空闲块的前后两个单元,
放置必要的说明信息和指针。系统
只要设立一个链首指针,指向第一
个空闲块即可。分配程序可以依照
自由块链表,来查找适合的空闲块
进行分配。(如下图)
空闲分区链表示意图
BACKHEAD.GIF (2500 bytes)
    分配算法
          按空闲块链接的方式不同,可以有以下四种算法:

          最佳适应法
                为作业选择分区时总是寻找其大小最接近于作业所要求的存储区域。
            设作业序列:    A:12K    B:3K    C:10K
          最坏适应法                                             BACKHEAD.GIF (2500 bytes)
最佳适应法相反,它在作业选择存储块时,总是寻找最大的空白区。
            作业序列:    A:12K    B:3K    C:10K
          首次适应法                                             BACKHEAD.GIF (2500 bytes)
                为作业选择分区时总是按地址从高到低搜索,只要找到可以容纳该作业的空白
            块,就把该空白块分配给该作业。
            作业序列:    A:12K    B:10K    C:3K
          下次适应法                                             BACKHEAD.GIF (2500 bytes)
                类似首次适应法,每次分区时,总是从上次查找结束的地方开始,只要找到一
            个足够大的空白区,就把它划分后分配出去。
            作业序列:    A:12K    B:10K    C:3K
BACKHEAD.GIF (2500 bytes)
     
     

设a、c、e、g分别为内存空闲块的首地址,当某作业申请13KB的空间时,三种分配算法的示意图如下:

三种分配算法示意图

对应不同分配算法空闲队列如下:

不同分配算法的空闲队列

回收情况
          设R:回收区;   F1:上邻空白块;   F2:下邻空白块
F1
 
F2
 
F1
F2
 
 
 
 
回收区R与上邻
空白块F1邻接
回收区R与下邻
空白块F2邻接
回收区R与上下邻
空白块邻接
回收区R不与
空白块邻接
 
    紧凑技术

(a)紧凑前

(b)紧凑后

用“紧凑”技术解决“外零头”
      为了消除外零头,进一步提高主存
  的利用率,定时地(或者在主存空间紧
  张时)把主存中的作业“搬家”集中在
  主存的一端。另一端就产生了一个大的
  空闲区。这种技术称为存储器的“紧凑
  ”。
    可重定位分区的优缺点
          解决了可变分区分配所引入的“外零头”问题。(优点
          消除内存碎片,提高内存利用率。(优点
          LREDP.GIF (158 bytes)提高硬件成本,紧凑时花费CPU时间。(缺点
BACKHEAD.GIF (2500 bytes)
  动态地址重定位
 
动态地址重定位
 
    上讨论都是基于一个作业在主存中占据的是

一个连续分区的假定。为了支持结构化程序设计,操

作系统往往把一道作业分成若干片段(如子程序、主

程序、数据组等)。这样片段之间就不需要连续了。

只要增加一些重定位寄存器,就可以有效地控制一道

作业片段之间的调用。

    如右图所示,作业A、B分别被分成两个片段放

进互不相连的存储区域中。由两个变址寄存器实现控

制。

多重分区分配
 
        了防止一首作业有意或无意地破坏操作系统或其它作业。一般说来,没有硬件支持,
    实现有效的存储保护是困难的。通常采取:
        界限寄存器方式         保护键方式
    两种措施,或二者兼而有之。
    界限寄存器方式
界限寄存器保护
60K > 访问地址 > =124K
则产生访问地址界中断
基址、限长寄存器保护
相对地址 > 限长寄存器的值
则产生访问地址界中断
    保护键方式                                                  BACKHEAD.GIF (2500 bytes)
 
 
当前的钥匙

8

    如果当前的钥匙与存储保护键不
匹配,且当前的钥匙不为0,则产生
中断。
 注意:保护键0是指
         定分配给操作
         系统使用的。
BACKHEAD.GIF (2500 bytes)

SPLIT.GIF (3216 bytes)

 
    最佳适应算法:(best fit algorithm)。“最佳”的含义是指每次为作业分配主存时
                  ,总是把既能满足要求,又是最小的空闲区分配给作业,以免由于“大
                  材小用”而浪费主存。为了加速查找,该算法要求将所有的空闲区按其
                  大小递增次序排列。

    首次适应算法:(first fit algorithm)。在该算法中,把主存中所有空闲区按其物理
                  地址递增的次序排列。在为作业分配存储空间时,从低址空闲区开始查
                  找,直到找到第一个能满足要求的空闲区后,从中划出与请求的大小相
                  等的存储空间分配给作业,余下的空闲区仍留在空闲区表或链中。

    下次适应算法:(next fit algorithm)。该算法是首次适应算法的变形,在为作业分
                  配存储空间时,是从上次所分配的空闲区的下一个空闲区开始查找,直
                  到找到第一个能满足要求的空闲区,从中划出一块与请求的大小相等的
                  一块存储区分配给作业。在该算法中应采取循环查找方式,即最后上个
                  空闲区的大小仍不能满足要求时,应再从第一个空闲区开始查找,故又
                  称为循环造就算法

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值