栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

第4章 存储器管理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第4章 存储器管理

第4章 存储器管理
    • 第4章 存储器管理
      • 4.1 存储器的层次结构
      • 4.2 程序的装入和链接
        • 4.2.1 程序的装入
      • 4.3 连续分配存储器管理方式(重点 2大题)
        • 4.3.1 单一连续分配
        • 4.3.2 固定分区分配
        • 4.3.3 动态分区分配
          • 第一种 动态分区分配算法(基于顺序搜索的4种分配算法)
            • 1.首次适应算法(first fit,FF) 首-->尾
            • 2.循环首次适应算法(next fit,NF)
            • 3.最佳适应算法(best fit,BF) 小-->大
            • 4.最坏适应算法(worst fit,BF) 大-->小
            • 算法示例
            • 作业
        • 4.3.5 第二种 动态分区分配算法(基于索引搜索的分配算法)
            • 1.伙伴系统
            • 作业
        • 4.3.6 动态可重定位分区分配
      • 4.4 对换(不讲 课后阅读)
      • 4.5 分页存储管理方式(大题)
        • 离散分配的存储管理方式
        • 4.5.1 分页存储管理的基本方法
        • 4.5.2 地址变换机构 (必考)
            • 1.基本地址变换
            • 2.快表
        • 4.5.3 访问内存的有效时间(课后阅读)
        • 4.5.4 两级和多级页表
        • 4.5.5 反置页表(课后阅读)
      • 4.6 分段存储管理方式

第4章 存储器管理 4.1 存储器的层次结构


4.2 程序的装入和链接 4.2.1 程序的装入

静态重定位
动态重定位


4.3 连续分配存储器管理方式(重点 2大题) 4.3.1 单一连续分配
  • 原理:内存分为两个区域:系统区,用户区。用户区作为一个连续的分区分配给一个作业使用。
  • 优点:方法简单,易于实现
  • 缺点:单道、浪费内存
4.3.2 固定分区分配
  • 原理:把内存分为一些大小相等或不等的分区,每个应用
    程序占用一个或几个分区。操作系统占用其中一个分区。
  • 优点:易于实现,开销小。
  • 缺点:分区总数固定,限制了并发执行的程序数目;内碎片造成浪费;作业大小受分区大小的限制。(内碎片,又称内零头,是指占用分区之内未被利用的空间)
4.3.3 动态分区分配
  • 动态创建分区,内存预先不分区,在装入程序时按其初始要求分配,或在其执行过程中通过系统调用进行分配或改变分区大小。
  • 优点:没有内碎片。
  • 缺点:有外碎片。(外碎片,外零头,是指占用分区之间难以利用的空闲分区(通常是小空闲分区))

1、内存分配

2、内存回收

示例:

  1. 加入一个结点
  2. 修改结点大小
  3. 修改结点首地址和结点大小
  4. 修改结点首地址和结点大小

第一种 动态分区分配算法(基于顺序搜索的4种分配算法) 1.首次适应算法(first fit,FF) 首–>尾

查找未分配区表或链表,直至找到第一个能满足长度要求的空闲区为止,分割此区,一部分分配给作业,另一部分仍为空闲区(若有)。


2.循环首次适应算法(next fit,NF)

总是从未分配区的上次扫描结束处顺序查找未分配区表或链表,直至找到第一个能满足长度要求的空闲区为止,分割此区,一部分分配给作业,另一部分仍为空闲区(若有)。

优缺点:

  • 是首次适应算法的变种。
  • 缩短平均查找时间,且存储空间利用率更加均衡。
  • 缺乏大的空闲区。

3.最佳适应算法(best fit,BF) 小–>大

扫描整个未分配区表或链表,从空闲区中挑选一个能满足用户进程要求的最小分区进行分配。

优缺点:

  • 空闲区按长度递增顺序排列。(时间开销大)
  • 存储器留下许多难以利用的碎片。

4.最坏适应算法(worst fit,BF) 大–>小

扫描整个未分配区表或链表,总是挑选一个最大的空闲区
分割给作业使用。

优缺点:

  • 空闲区按长度递减顺序排列。
  • 剩下的空闲区不至于过小,对中小型作业有利。

算法示例


作业

课内作业:

  1. 某系统采用动态分区分配方式管理内存,内存空间为700K,低端100水用来存放操作系统。在内存分配时,系统优先使用空闲区低端的空间。对下列请求序列:
    作业1申请130K
    作业2申请60K
    作业3申请100K
    作业2释放60K
    作业4申请200K
    作业3释放100K
    作业1释放130K
    作业5申请140K
    作业6申请60K
    作业7申请50K
    作业6释放60K
    问: 请分别画图表示出首次适应算法、最佳适应算法和最坏适应算法进行内存分配和回收后,内存的实际使用情况。
    答:
4.3.5 第二种 动态分区分配算法(基于索引搜索的分配算法) 1.伙伴系统
  • 无论已分配分区或空闲分区,其大小均为2的K次幂(K为整数,1
  • 当需要为进程分配一个长度为的存储空间时,首先计算一
    个 i 值,使 2 i − 1 < n < = 2 i 2^{i-1}
  • 时间性能优于顺序搜索算法,空间性能比顺序搜索法略差。
  • 并行系统中广泛使用。
作业

课内作业:
某系统驻留空间为1024KB,采用伙伴系统分配其内存,对于下列的请求序列:
作业A请求240KB
作业B请求120KB
作业C请求60KB
作业B释放
作业D请求130KB
作业C释放
请画出进行上述分配和回收后,内存实际使用的情况。


4.3.6 动态可重定位分区分配
4.4 对换(不讲 课后阅读)
4.5 分页存储管理方式(大题) 离散分配的存储管理方式

分页存储管理方式 (计算机)
将用户程序的地址空间分为若干个固定大小的区域,称为“页”或“页面”。

分段存储管理方式 (人)
将用户程序的地址空间分为若干个大小不同的段,每段可定义一组相对完整的信息。称为“段”。

段页式存储管理方式

4.5.1 分页存储管理的基本方法

1、页面和物理块

页面:将进程的逻辑地址空间分成若干个页,并为各页加以编号。
页面大小:页面大小适中,且页面大小应该是2的幂。页面大小
pcb:在内存中存储页表地址
页表:在内存中存储页号和块号

2、地址结构(必考)

  1. 示例:

    页面大小: 2 10 = 1024 2^{10}=1024 210=1024
    逻辑地址5000可转换为: 4 ∗ 1024 + 904 4*1024+904 4∗1024+904
  2. 页表放在哪里?内存
  3. 如何访问?
  4. 是否还存在碎片?可能存在
  5. 页面大小如何确定
4.5.2 地址变换机构 (必考) 1.基本地址变换

  • 通过pcb访问数据:访问内存3次
    访 问 p c b ( 内 存 中 ) → 访 问 页 表 ( 内 存 中 ) → 访 问 数 据 ( 内 存 中 ) 访问pcb(内存中)to 访问页表(内存中)to 访问数据(内存中) 访问pcb(内存中)→访问页表(内存中)→访问数据(内存中)

  • 通过寄存器访问数据:访问内存2次
    页 表 寄 存 器 → 页 表 ( 内 存 中 ) → 数 据 地 址 ( 内 存 中 ) 页表寄存器to 页表(内存中)to 数据地址(内存中) 页表寄存器→页表(内存中)→数据地址(内存中)

示例:
逻辑地址为2500,内存地址为
答:
逻辑地址转为页面地址: 2500 / 1024 = [ 2 , 452 ] 2500/1024=[2,452] 2500/1024=[2,452]
页面地址转为物理块地址: [ 2 , 452 ] → [ 6 , 452 ] [2,452]to[6,452] [2,452]→[6,452]
物理块地址转为内存地址: [ 6 , 452 ] → 6596 [6,452]to6596 [6,452]→6596


2.快表

快表:增设一个具有并行查寻能力的特殊高速缓冲寄存器。

  • 通过快表访问数据:访问内存1次
    快 表 → 数 据 地 址 ( 内 存 中 ) 快表to 数据地址(内存中) 快表→数据地址(内存中)
4.5.3 访问内存的有效时间(课后阅读)
4.5.4 两级和多级页表


4.5.5 反置页表(课后阅读) 4.6 分段存储管理方式
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/872156.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号