操作系统 chap-5(2) 存储管理

1 存储管理的功能及目标

概述介绍存储管理

1.5 内外存数据传输的控制

将执行的程序和数据段调入内存,把处于等待状态的程序和数据段调出内存

换入换出 挂起激活

1.6 内存的分配与回收

将外存中的数据调入内存,在内存中为它们安排合适的位置。目的是可使多个程序同时驻留在内存中(进入内存后变成进程),以提高CPU利用率;进程执行结束时,回收该进程所占内存资源。

策略和数据结构:
分配结构:登记内存使用情况,提供分配程序使用的数据结构
放置策略:确定调入内存的程序和数据在内存中的位置
交换策略: 在需要将某个程序段和数据调入内存时,若内存无足够空间,使用交换策略
调入策略:决定外存中程序段和数据段调入的时间和控制方式
回收策略:回收的时机和空闲区的调整

1.7 内存信息的共享与保护

存储保护的目的
保护系统程序区不被用户侵犯(有意或无意的)(核心态和用户态)
不允许用户程序读写不属于自己地址空间的数据(系统区地址空间,其他用户程序的地址空间)

保护方法

  • 界限保护
    (上界寄存器UR/下界寄存器或基址寄存器LR/限长寄存器)限定可以访问限定地址内地址,否则产生越界中断
    被保护区不能被别的程序访问
  • 访问方式保护(保护键)
    对每个内存区域指定一个键值和若干禁止的访问方式,进程中也指定键值,如果访问时键值不匹配而且是被禁止的访问方式,则出错,发生操作越权(即读写保护)
  • 其它
    界限寄存器与CPU状态(用户态、核心态)相结合

2 分区存储管理

2.1 分区管理的基本原理

把内存分为一些大小相等或不等的分区(partition),每个应用进程占用一个或几个分区。操作系统占用其中一个分区

特点:适用于多道程序系统和分时系统
(1)支持多个程序并发执行
(2)难以进行内存分区的共享

问题:可能存在内碎片外碎片
内碎片:占用分区之内未被利用的空间(eg.大房里的小空房)
外碎片:占用分区之间难以利用的空闲分区(通常是小空闲分区)(eg.没人要的小房子)

分区用的数据结构:分区说明表,或分区链表
分区说明表

内存紧缩(compaction):将各个占用分区向内存一端移动。使各个空闲分区聚集在另一端,然后将各个空闲分区合并成为一个空闲分区 动态
紧缩时机: 每个分区释放后,如果没有邻接空闲区但内存中有其他空闲区时,则马上进行拼接;或内存分配找不到满足条件的空闲分区时, 而所有空闲区总容量却能满足需求量时,再进行拼接

2.2 固定分区 (fixed partitioning)

把内存区固定地划分为若干个大小相等(和不等)的连续分区。每个分区装一个且只能装一个作业

每个进程指定到适应它的最小分区

固定分区的进程队列:多队列适用于大小不等的固定分区;单队列适用于大小相同的固定分区,也可用于大小不等的情况

优点:易于实现,开销小
缺点:
内碎片造成浪费(小作业不能有效地利用分区空间)
分区总数在系统生成时确定(固定),限制了并发执行的程序数目

2.3 动态分区(dynamic partitioning)

内存不是预先划分好的,而是当作业装入时,根据作业的需求和内存空间的使用情况来决定是否分配

优点:没有内碎片
缺点:有外碎片(中途退出的空间被浪费)

内存管理:设置内存空闲块表——记录了空闲区起始地址和长度
内存分配: 动态分配
内存回收:当某一块归还后,前后空间合并,修改内存空闲区表

2.4 动态分区分配算法

分区分配算法: 寻找某个空闲分区,其大小>=程序的要求。若是大于要求,则将该分区分割成两个分区,其中一个分区为要求的大小并标记为“占用”,而另一个分区为余下部分并标记为“空闲”。分区的先后次序通常是从内存低端到高端

分区释放算法: 需要将相邻的空闲分区合并成一个空闲分区。(这时要解决的问题是:合并条件的判断和合并时机的选择)(只是改了一下起始地址/分区长度,未搬动区域)

1.最先匹配法(first-fit): (首次匹配法)按分区的先后次序(分区按起始地址递增的顺序排列),从头查找,找到符合要求的第一个分区

  • 简单、快速分配。 该算法的分配和释放的时间性能较好,较大的空闲分区可以被保留在内存高端
  • 但随着低端分区不断划分而产生较多小分区,每次分配时查找时间开销会增大

2.下次匹配法(next-fit): 按分区的先后次序,从上次分配的分区起查找(到最后分区时再回到开头),找到符合要求的第一个分区
该算法的分配和释放的时间性能较好,使空闲分区分布得更均匀,但较大的空闲分区不易保留

3.最佳匹配法(best-fit): 找到其大小与要求相差最小的空闲分区 (按空闲区大小从小到大的顺序排列)
从个别来看,外碎片较小,但从整体来看,会形成较多外碎片。较大的空闲分区可以被保留。(用最小空间满足要求)

4.最坏匹配法(worst-fit): (最大匹配法,掰香蕉的时候从大串上掰)找到最大的空闲分区(按空闲区大小从大到小的顺序排列)
基本不留下小空闲分区(当分割后空闲块仍为较大空块) ,但较大的空闲分区不被保留

紧凑技术: 通过在内存移动程序,将所有小的空闲区域合并为大的空闲区域

2.5 分区管理的主要优缺点

优点:简单
缺点:
·碎片问题(碎片)
·内存利用率不高
·受分区大小或实际内存容量限制
·不利于程序段和数据段的共享

2.6 MS DOS中的分区存储管理

通过DOS功能调用int 21h,支持分区的创建(48h)、释放(49h)和改变分区大小(4Ah)
设置或查询分区的分配策略(58h)
·最先匹配法
·最佳匹配法
·最后匹配法(last-fit,从内存高端向低端查找)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值