首页 > 其他分享 >第四章 存储器管理 4.3 连续分配存储管理方式

第四章 存储器管理 4.3 连续分配存储管理方式

时间:2023-04-24 17:36:02浏览次数:35  
标签:存储管理 4.3 分区 存储器 作业 空白 内存 分配 空闲

一、单一连续分配

    内存分为两个区域:系统区,用户区。

    应用程序装入到用户区,可使用用户区全部空间。内存中仅驻留一道用户程序,整个用户区为一个用户独占。

二、固定分区分配

    1.将内存用户空间划分为若干个固定大小的区域,每个区域称为一个分区,在每个分区中只装入一道作业。分区大小可以相等可以不等。

    2.分区说明表:指出可用于分配的分区数以及每个区的大小、起始地址及状态 。

    3.作业装入内存时,内存分配程序检索分区说明表。

    从中找出一个尚未使用的满足大小要求的分区分配给该作业,然后修改分区的状态。

    如果找不到合适的分区就拒绝为该作业分配内存。

    4.内零头:内存中已分配给用户但未被利用的区域称

三、动态分区分配

    根据进程的实际需要,动态地为之分配连续的内存空间。即分区的边界可以移动,分区的大小是可变的 。

    1.分区分配中数据结构

    空闲分区表

    空闲分区链

    2.分区分配操作——分配内存和回收内存

    3.分区分配算法

    


  1. 最佳适应算法(Best fit: BF) 

        将存储空间中所有的空白区按其大小递增的顺序链接起来,组成一空白区链。  

        寻找大小最接近作业所要求的存储区域。即:把作业放入这样的分区后剩下的零头最小。

        优点: 选中合适的分区,不会对大分区进行切割,保留的大分区可以满足大作业的需求。 

        缺点:

        ①在每次分配时,总是产生最小的空白区。因此,经过一段时期后,存储空间中可能留许多这样的空白区,由于其太小而无法使用。

        ②:在回收一个分区时,为了把它插入到空白区链中合适的位置上也颇为费时。 所以,这种算法乍看起来是最佳的,其实则不然。 

    B.最坏适应算法(Worst fit: WF)

        为了支持这个算法的实现,空白块应以大小递减的顺序链接起来。

        在为作业选择存储区域时,总是寻找最大的空白区。

        优点:在划分后剩下的空白区也是最大的,因而对以后的分配很可能仍然是有用的

        缺点:由于最大的空白块总是首先被分配而进行划分,当有大的作业时,其存储空间的申请往往得不到满足

    C.首次适应算法(First Fit: FF) 

        每个空白区按其在存储空间中地址递增的顺序链在一起。

        在为作业分配存储区域时,从这个空白区链的始端开始查找,选择第一个足以满足请求的空白块。

        选择的空白区被分成两部分。一部分与请求的大小相等,分配给作业;剩下的部分留在空白区链中。

       

        优点:

        算法简单,查找速度快;

        留在高址部分的大的空白区被划分的机会较少,因而在大作业到来时也比较容易得到满足。                 

        缺点:

        常常利用一个大的空白区适应小作业的请求,从而留下一些较小的无法用的空白区,在低地址部分会积累大量外零头,存储空间利用率不高;

        由于所有的请求都是从空白区链的始端开始查找,因而这些小而无用的空白区集中在这个链的前端,相应地,一些较大空白区在链的尾端才能发现,这种情况将使找到合适空白区的速度降低。 

    D.下次适应算法(Next fit: NF)

        首次适应算法的一种变形,故也被称为带旋转指针的首次适应算法。

        把存储空间中空白区构成一个循环链。每次为存储请求查找合适的分区时,总是从上次查找结束的地方开始,只要找到一个足够大的空白区,就将它划分后分配出去。

    E.快速适应算法(Quik fit:QF)

        将空闲分区根据其容量大小进行分类,对于每一类具有相同容量的所有空闲分区,单独设立一个空闲分区链表。 这样,系统中存在多个空闲分区链表。

        在内存中设立一张管理索引表,并记录了该类型空闲分区链表表头的索引表,该表的每一个表项记录了对应类型空闲分区链表表头的指针。

        分配过程:根据进程的长度,寻找到能容纳它的最小空闲分区链表,并取下第一块进行分配即可。

    F.伙伴系统

        在伙伴系统中,可用内存块的大小为 2k (1≤k≤m)

        21表示分配的最小块的尺寸:2Byte

        2m表示分配的最大块的尺寸,通常是可供分配的整个内存空间的大小。

        进程请求大小为n的存储空间时:

        ①计算一个 i 值:使 2i-1 < n ≤ 2i,在空闲分区大小为 2i 的空闲分区链表中查找。    

        ②若找到,即把该空闲分区分配给进程。  

        ③否则,表明长度为2i的空闲分区已经耗尽,在分区大小为2i+1的空闲分区链表中寻找

        ④若找到大小为2i+1 的空闲分区,把该空闲分区分为相等的两个分区,其中一个用于分配,另一个加入分区大小为 2i 的空闲分区链表中。

        ⑤否则继续查找大小为2i+2 的空闲分区…… 

        释放内存的过程:

        把释放的块放入空闲块数组,合并满足条件的空闲块

        合并条件:大小相同;地址相邻;低地址空闲块的起始地址位数为2i+1

    E.哈希算法


四、可重定位分区分配——解决外零头的问题

     1.紧凑

    将内存中的所有作业进行移动,使它们全都相邻接,把原来分散的多个小分区合成一个大分区。

    为了提高内存利用率,系统在运行过程中经常需要进行“紧凑”。需要对作业中的某些地址部分和地址常数等进行调整。 一个较实用且可行的办法是采用动态重定位技术。

    2.动态重定位技术

    动态重定位机制需要硬件的支持, 即须在系统中增设一个重定位寄存器,用它来存放程序(数据)在内存中的起始地址。 

    程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。

   

标签:存储管理,4.3,分区,存储器,作业,空白,内存,分配,空闲
From: https://www.cnblogs.com/05-ReFrain-19/p/17350260.html

相关文章

  • 王道408操作系统-4.3文件系统 习题总结
    文件系统第一题用户使用文件系统实现对文件的按名存取,选B第二题选B,超级块是用来描述文件系统的第三题文件的存储空间实际上是对(外存空间区)的组织和管理。第四题第五题索引节点用来存放文件的描述信息,所以选B虚拟文件系统虚拟文件系统,简称VFS(Virtual......
  • 4.3 路由器的工作原理
    一、整体结构 1.路由器两个核心功能  ①运行路由算法/协议  ②将分组从路由器的输入链路传送到正确的输出链路 2.体系结构  选路处理器负责路由选择,位于控制平面(软件);  其余位于数据平面(硬件)二、输入端口 1.线路端接模块:将一条物理链路端接到路由器......
  • cocoapods Xcode 14.3 Archive Command PhaseScriptExecution failed with a nonzero
    Xcode升级到14.3进行  Archive CommandPhaseScriptExecutionfailedwithanonzeroexitcode解决方法Xcode搜索 source="$(readlink-f"${source}")"将 source="$(readlink-f"${source}")"改为 source="$(readlink-f"......
  • 计算机组成原理—存储器
    计算机组成原理—硬件结构二、存储器1.概述存储器是计算机系统中的记忆设备,用来存放程序和数据1.1存储器的层次结构缓存-主存层次主要解决CPU和主存速度不匹配的问题,速度接近缓存主存-辅存层次主要解决存储系统的容量问题,容量接近与价位接近于主存2.主存储器2.1概述主......
  • 集成电路IC(4Gbit)IS46TR16256BL-125KBLA1动态随机存取存储器
    IS46TR16256BL-125KBLA14GBitDDR3SDRAM提供紧凑型BGA-96封装的高速SDRAM。IS46TR16256BL具有256Mx16结构,电源电压为1.45V或1.3V,最大时钟频率为800MHz。该SDRAM具有8个内部银行并发操作和8nBit预取架构。IS46TR16256BL是电信和网络、汽车和工业嵌入式计算的理想选择。应用汽车;......
  • 硬盘的存储管理
    硬盘的容量分为非格式化容量和格式化容量两种;有以下的计算公式:非格式化容量=面数*(磁道数/面)*内圆周长*最大化密度格式化容量=面数*(磁道数/面)*(扇区数/道)*(字节数/扇区) ......
  • 2023.4.3周一每日博客
     今天在健民老师的要求下,各个团队依次进行了团队演示,我们将当前所做出来的内容和项目的未来预期讲解了出来,同时,我们小组也对别的小组的内容进行了学习和观摩。 ......
  • Apple Xcode 14.3 (14E222b) 正式版发布下载
    AppleXcode14.3(14E222b)正式版发布CommandLineToolsforXcode14,tvOS16&watchOS9SimulatorRuntime请访问原文链接:https://sysin.org/blog/apple-xcode-14/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgXcode14包含了在所有Apple平台上开发、测......
  • 案例详解 | 4.3寸串口屏应用于两轮电动车仪表方案
    近年来,我国部分城市陆续开始改变对两轮车的高压态势,多座大型城市出台解禁令,为两轮车产业的回暖奠定了基础。两轮车因其机动灵活、通行效率高的特点,受到越来越多消费者的支持。经调研发现,消费者购车时除关注电池续航、安全性因素外,对于车辆的舒适性、外观的需求也进一步提升,83.9%的......
  • 上周热点回顾(4.3-4.9)
    热点随笔:· 阴差阳错的帮了博客园一把? (敖丙)· 开源不到48小时获35kstar的推荐算法「GitHub热点速览」 (削微寒)· 你到底值多少钱?2023打工人薪酬指南 (王有志)· 如何申请AzureOpenAI (晓晨Master)· 关于博客园绝境求商的一点点感想! (liandyao)· 做个清......