操作系统笔记 - 第四章 存储器管理

本文详细介绍了操作系统的存储管理,包括程序的三种链接方式(静态链接、装入时动态链接、运行时动态链接)和三种装入方式(绝对装入、可重定位装入、动态重定位)。重点讲解了分区、分页和分段存储的分配算法及其优缺点,如首次适应、循环首次适应、最佳适应、最坏适应和快速适应算法。此外,还讨论了虚拟存储器的概念及其在请求分页、分段存储管理中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本章重点:

  • 理解程序的三种链接方式和三种装入方式。
  • 掌握分区、分页和分段分配方式的概念,及分配算法和实现(连续与离散)。
  • 掌握虚拟存储器的基本概念。
  • 掌握请求分页、分段存储管理方式的概念、分配算法和实现

三种链接方式:

  1. 静态链接:事先连接

    • 对相对地址的修改
    • 变换外部调用符号
  2. 装入时动态链接:边装入边连接

    • 便于修改和更新
    • 便于实现对目标模块的共享
  3. 运行时动态链接 Run-time Dynamic Linking

    • 对某些模块的链接推迟到执行时才进行,如, 错误处理模块

程序的处理顺序:编辑――编译――链接――装入――运行

三种装入方式:

  1. 绝对装入
    • 编译后,装入前已产生了绝对地址(内存地址),装入时不再作地址重定位,装入后不能移动程序
    • 适用于单道系统
    • 绝对地址的产生:(1)由编译器完成,(2)由程序员编程完成。
  2. 可重定位装入方式
    • 静态重定位:装入时完成,主要工作是对相对地址中的指令和数据地址的调整过程,适用于多道系统
    • 不允许程序运行时在内存中移动
  3. 动态重定位
    • 动态重定位一般在执行时才完成“相对——绝对地址”的转换且有硬件的支持,能保证程序的可移动性

磁盘分区方式

  1. 固定分区
    • 各分区等大或从小到大
    • 数据结构:将分区按大小排序,建立分区使用表,并将其地址、分配标识作记录
  2. 动态分区
    • 数据结构:1.空闲分区表 2.空闲分区链

分区算法:

  1. 首次适应算法FF(first fit)
    • 要求:分区按低址――高址链接
    • 特点:找到第一个大小满足的分区,划分。有外零头,低址内存使用频繁
  2. 循环首次适应算法NF(next fit)
    • 从1中上次找到的空闲分区的下一个开始查找。
    • 特点:空闲分区分布均匀,提高了查找速度;缺乏大的空闲分区。
  3. 最佳适应算法BF(best fit)
    • 分区按大小递增排序;分区释放时需插入到适当位置
    • 分割后留下小碎片,难以利用
  4. 最坏适应算法WF(worst fit)
    • 总是挑选最大的空闲分区分割给作业使用
    • 分区按大小递减排序;
    • 优点:剩下碎片不至于太小
    • 缺点:缺乏大的空闲分区
  5. 快速适应算法QF(quick fit)

    • 分类搜索:将空闲分区根据容量大小分类
    • 设立管理索引表
    • 优点:查找效率高;不要分割
    • 缺点:存储空间会有一定的浪费
  6. 伙伴系统BS

    • 大小:为2k,
    • 将相同大小的所有空闲分区,设立一个空闲双向链表
      • 要分配一个n的存储空间, 首先求i值,让2i-1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值