精华内容
下载资源
问答
  • 早期计算机编程并不需要过多的存储管理 随着计算机和程序越来越复杂,存储管理成为必要 ◆ 确保计算机有足够内存处理数据 ◆ 确保程序可以从可用内存中获取...◆ 固定分区分配是支持多道程序的最简单存储分配方式 ...

    早期计算机编程并不需要过多的存储管理
    随着计算机和程序越来越复杂,存储管理成为必要

    ◆ 确保计算机有足够的内存处理数据
    ◆ 确保程序可以从可用内存中获取一部分内存使用
    ◆ 确保程序可以归还使用后的内存以供其他程序使用

    一、内存分配的过程

    单一连续分配

    ◆ 单一连续分配是最简单的内存分配方式
    ◆ 只能在单用户、单进程的操作系统中使用

    固定分区分配

    ◆ 固定分区分配是支持多道程序的最简单存储分配方式
    ◆ 内存空间被划分为若干固定大小的区域
    ◆ 每个分区只提供给一个程序使用,互不干扰

    动态分区分配

    ◆ 根据进程实际需要,动态分配内存空间
    ◆ 相关数据结构、分配算法

    1.动态分区空闲链数据结构

    在这里插入图片描述

    2.动态分区分配算法
    - 首次适应算法(FF算法)

    ◆ 分配内存时从开始顺序查找适合内存区
    ◆ 若没有合适的空闲区,则该次分配失败
    ◆ 每次从头部开始,使得头部地址空间不断被划分

    - 最佳适应算法(BF算法)

    ◆ 最佳适应算法要求空闲区链表按照容量大小排序
    ◆ 遍历空闲区链表找到最佳合适空闲区

    - 快速适应算法(QF算法)

    ◆ 快速适应算法要求有多个空闲区链表
    ◆ 每个空闲区链表存储一种容量的空闲区

    二、内存回收的过程

    在这里插入图片描述
    ◆ 不需要新建空闲链表节点
    ◆ 只需要把空闲区1的容量增大为空闲区即可
    在这里插入图片描述
    ◆ 将回收区与空闲区合并
    ◆ 新的空闲区使用回收区的地址
    在这里插入图片描述
    ◆ 将空闲区1、空闲区2和回收区合并
    ◆ 新的空闲区使用空闲区1的地址
    在这里插入图片描述
    ◆ 为回收区创建新的空闲节点
    ◆ 插入到相应的空闲区链表中去

    展开全文
  • 连续分配存储管理方式

    千次阅读 2018-11-25 12:42:05
    一、单一连续分配 最简单的一种存储管理方式,只能用于单用户、单任务的操作系统中。 优点:易于管理。 缺点:对要求内存空间少的程序,造成内存浪费;程序全部装入,很少使用的...最早的多道程序存储管理方式。 ...

    一、单一连续分配
    最简单的一种存储管理方式,只能用于单用户、单任务的操作系统中。
    优点:易于管理。
    缺点:对要求内存空间少的程序,造成内存浪费;程序全部装入,很少使用的程序部分也占用内存。

    二、固定分区分配
    把内存分为一些大小相等或不等的分区(partition),每个应用进程占用一个分区。操作系统占用其中一个分区。支持多个程序并发执行,适用于多道程序系统和分时系统。最早的多道程序存储管理方式。
    缺点:内碎片(一个分区内的剩余空间)造成浪费;划分为几个分区,便只允许几道作业并发,分区总数固定,限制并发执行的程序数目。

    三、动态分区分配
    1、分区的大小不固定:在装入程序时根据进程实际需要,动态分配内存空间,即——需要多少划分多少。
    2、空闲分区表项:从1项到n项:内存会从初始的一个大分区不断被划分、回收从而形成内存中的多个分区。
    3、优点:并发进程数没有固定数的限制,不产生内碎片。缺点:有外碎片(分区间无法利用的空间)
    4、分区分配算法
    ①首次适应算法FF(first-fit)
    空闲分区排序:以地址递增的次序链接。
    检索:分配内存时,从链首开始顺序查找直至找到一个大小能满足要求的空闲分区;
    分配:从该分区中划出一块作业要求大小的内存空间分配给请求者,余下的空闲分区大小改变仍留在空闲链中。
    若从头到尾检索不到满足要求的分区则分配失败
    优点:优先利用内存低址部分,保留了高地址部分的大空闲区;
    缺点:但低址部分不断划分,会产生较多小碎片;而且每次查找从低址部分开始,会逐渐增加查找开销。

    ②循环首次适应算法
    空闲分区排序:按地址
    检索:从上次找到的空闲分区的下一个空闲分区开始查找,直到找到一个能满足要求的空闲分区。为实现算法,需要设置一个起始查寻指针并采用循环查找方式
    分配:分出需要的大小
    优点:空闲分区分布均匀,减少查找开销
    缺点:缺乏大的空闲分区

    ③最佳适应算法
    总是把能满足要求、又是最小的空闲分区分配给作业,避免“大材小用”。
    空闲分区排序:所有空闲分区按容量从小到大排序成空闲分区表或链。
    检索:从表或链的头开始,找到的第一个满足的就分配
    分配:分出需要的大小
    缺点:每次找到最合适大小的分区割下的空闲区也总是最小,会产生许多难以利用的小空闲区(外碎片)

    ④最差适应算法/最坏匹配法
    基本不留下小空闲分区,但会出现缺乏较大的空闲分区的情况。

    ⑤快速适应算法
    根据进程常用空间大小进行划分,相同大小的串成一个链,需管理多个各种不同大小的分区的链表。进程需要时,从最接近大小需求的链中摘一个分区。
    能快速找到合适分区,但链表信息会很多;实际上是空间换时间。

    5、回收分区
    (1)回收区(首址a)与一个分区f1末尾(首址b+大小)邻接:将回收区与f1合并,修改f1的表项的分区大小
    (2)回收区(首址a+大小)与一个分区f2的首址b邻接:将回收区与f2合并,修改f2的表项的首址、分区大小
    (3) (1)(2)两种情况都有,则将回收区与前后两个分区F1、F2邻接:将三个分区合并,使用F1的表项和F1的首址,取消F2的表项,大小为三者之和
    (4) 回收区没有邻接的分区:为回收区单独建立新表项,填写回收区的首址与大小,根据其首址插到空闲链中的适当位置

    四、动态重定位分区分配——有紧凑功能的动态分区分配
    动态重定位分区分配算法与动态分区分配算法基本相同,差别在于增加了紧凑的功能

    伙伴系统
    分区大小有规定,且分区动态变化
    1、无论已分配还是空闲分区,大小都为2的k此幂。若整个可分配空间大小为2m,则1≤k≤m.
    2、随着系统运行,内存被不断划分,形成若干不连续的空闲分区。对每一类具有相同大小的空闲分区设置一双向链表,即会有k个链表,链表中的分区大小都是2m。
    3、进程申请n个大小的空间时,计算n= 2i。则找i对应的链表。若i大小的链表没有,则找i+1的链表。找到的分区对半划分后,一半用于分配,一半链接到较小一级的链表里去。
    4、一次分配和回收都可能对应多次的划分和合并。

    五、内存空间管理之对换
    当内存空间还是满足不了需求时,把内存中暂时不能运行、或暂时不用的程序和数据调到外存上,以腾出足够的内存;把已具备运行条件的进程和进程所需要的程序和数据,调入内存。
    整体对换(或进程对换):以整个进程为单位(连续分配)
    页面对换或分段对换:以页或段为单位(离散分配)

    展开全文
  • 存储管理(-)

    2012-09-20 22:03:58
    存储管理的方案有很种,先简单总结下早期的存储管理方式。 1.单一连续分配  优点:方法简单,易于实现。  缺点:仅适用于单程序设计,不能使处理剂和贮存得到充分利用   2.分区分配  (1)固定分区...

    看完了《操作系统》后,感觉还是存储管理最重要。存储管理的方案有很多种,先简单的总结下早期的存储管理方式。

    1.单一连续分配

        优点:方法简单,易于实现。

        缺点:仅适用于单道程序设计,不能使处理剂和贮存得到充分利用

     

    2.分区分配

      (1)固定分区法:系统生成时,将主存划分为若干那个分区,每个分区大小可以不等,但事先必须固定,以后不能改变

                                缺点:有内碎片,内存浪费

      (2)可变分区:系统为了管理主存分区分配情况,需建立2张表,分别记录已分配和未分配区域的容量,位置和状态信息

                    

                     *** 空白区域的分配算法:  

                                     i.最佳适应算法: 空白区域中按容量递增方式排序,当要求分配一个空白区时,从小到大查找,                                                          即x1 <=  x2 <=  x3 <= x4 <= ... <= xn 当s <= xi 时,从xi中分配s,若                                                          分配后有剩余,将剩余的空白区插入到合适位置,若xn仍不能满足要求分配失                                                          败

     

                                                             优点:1.平均而言只要查找一般的表格便能够找到最佳的空白区。

                                                                      2.若有一个空白区的容量刚好满足,则它必被选中

                                                                      3.如果不存在恰好满足的空白区,则选中一个容量最接近的空白区,

                                                                         而较大的空白区则可以以备后用

                                                             缺点:分配后造成的碎片很小,无法使用

     

                                      ii.最差适应:空白区按容量递减派讯,即x1 >= x2 >= x3 >= ... >= xn ,若分配的容量是s

                                                        ,并且x1 >= s ,则从x1里分配s,若有剩余,则将其插入到合适的位置;若x1<s

                                                        则分配失败

     

                                                             优点:只要比较s和x1即可

                                                                      x1分配出去后,剩余的空白区仍然很大,仍可以使用

                                                             缺点:个空白区比较均匀的减少,工作一段时间后,不能满足大空白区的要求

     

                                      iii.最先适应:空白区按照地址大小顺序递增排序,对于要求分配的分区s,从头开始比较,知道                                                     找到xi  >= s为止,若满足则分配,剩余部分保留位置不变

     

                                                              优点:在释放内存分区时,若有相邻空白区就合并,使其成为一个较大的空白                                                                     区,以后要使用较大空白区,较容易满足。

                                                              缺点:低地址区域集中了很多较小的空白区,因而在空白区的分配时搜索次数                                                                    增加了,影响效率

     

     

    *********************************************

    固定式分区和可变式分区的优点和缺点分析:

             优点:利于多道程序设计

                      不受过多硬件限制,只需要地址寄存器,用于存储保护

                      算法简单

             缺点:会产生碎片,降低存储器利用率

                      分区的大小受到了主存容量的限制,无法扩充主存容量

     

    *********************************************

      (3)可在定位式分区:移动所有分配了的分区,使之成为一个连续区域,而留下一个较大的空白区,将碎片统一使用,                                    优点:高了存储器的利用率,

                                      缺点:需要硬件支持,成本很高,降低了计算速度,耗时

     

    解决浮动问题:1.模块装入程序重新装入(耗时,一旦执行不能重新开始)

                         2.动态在定位

     

    解决聚集靠拢时机:1.某分区内的作业一完成,就靠拢(频繁,耗时)

                               2.为某个作业请求一个分区时(较好)

     

      (4)多重分区:给一个作业分配一个以上的分区(提高了利用率,但是需要很多硬件支持,管理复杂)

     

    *********************

    分区的优点:实现了主存共享

                     算法简单

                     实现存储保护的措施比较简单

                     多重分区实现了对子程序,数据段的共享

    分区的缺点:主存仍不能使用

                      不能实现对主存的扩容

                      和单一连续分配一样,要求作业执行前,全部装入主存

                      采用靠拢方法,虽然解决了碎片,但是需要移动大量信息,损失了处理时间

                      除了多重分区外,几个共行作业间不能共享存入主存的单一信息副本(子程序,数据段)                         

    *********************  

     

     

    展开全文
  • 1.在最早的存储器分配方式中,采用的是连续分配。即逻辑地址相邻,物理地址也相邻。 2.随着多道程序概念的提出,为了能同时装入多道程序,且彼此之间互不干扰,把内存分成若干个区域,分配方式有固定...

    一、程序的装入和链接
    1.编译,编译程序对源程序进行编译,形成目标模块,此时文件后缀名为obj。
    2.链接,将目标模块以及他们所需的库函数链接在一起。
    3.装入,由装入程序装入内存。
    二、连续分配存储管理方式
    1.在最早的存储器分配方式中,采用的是连续分配。即逻辑地址相邻,物理地址也相邻。
    2.随着多道程序概念的提出,为了能同时装入多道程序,且彼此之间互不干扰,把内存分成若干个区域,分配方式有固定分区和动态分区两种。固定的坏处不用赘述。动态分区分配更适应需求。在动态分区中,区的大小是不同的,我们都希望能给程序分配大小合适的分区,为了实现这个希望,这就涉及到算法的问题了。在众多算法中,最佳适应算法每次分配所留碎片最小,故也会留下很多难以利用的碎片。
    3.所谓碎片,也就是很小很小的分区,这些分区不再能满足程序的需求。当碎片多了之后,内存资源就大大的浪费了,一般是通过“紧凑” 的方式将碎片拼接成一块大区域。碎片进行拼接,也就意味着它在内存中的地址改变了,需要及时修改相应信息,但如果每次紧凑都修改数据,那么很影响计算机效率,重新拼凑的内存未必都用得上,那么便提出“动态重定位”,即当程序需要使用该内存时,再进行修改。
    三、对换技术
    即把暂时不能运行的进程调换到外存上,把外存上符合要求的进程调入内存。这个方法能有效的改善计算机内存利用率。

    展开全文
  • 6.( )是多道操作系统不可缺少硬件支持。 A.打印机 B.中断机构 C.软盘 D.鼠标 7. 特权指令可以在( )执行。 A.目 态 B.浏览器中 C.任意时间 D.进程调度中 8. 没有了( )计算机系统就启动不起来。 A....
  • 但从微观上看,内存中的多道程序轮流地或分时地占用处理机,交替执行。 多道程序系统 ≠ 多重处理系统 ≠ 多用户 ≠ 多终端 多道是指内存中驻留多个程序或一个程序的多个程序段,因此,多用户系统一定是采用...
  • 单道批处理系统最早出现一种OS,它具有自动性,顺序性和单道性特点; ---多道批处理系统则具有调度性,无序性和多道特点; b. 单道批处理系统是在解决人机矛盾及CPU和I/O设备之间速度不匹配矛盾中形成...
  • Linux的最早起源是在1991年10月5日由一位芬兰大学生Linux Torvalds (Torvalds@kruuna.helsinki.fi)写了 Linux核心程序 0.02 版开始,但其后发展却几乎都 是由互联网上 Linux社团(Linux Community)互通...
  • 首先是操作系统的名字改变了,原因在于虽然我们试验性 OS从前辈们那里借鉴了很东西,但其各个部分设计(比如文件系统和内存管理)往往有其独特之处,所以我将原先 Tinix(本意为 TryMinix)改成了新名字...
  • 首先是操作系统的名字改变了,原因在于虽然我们试验性 OS从前辈们那里借鉴了很东西,但其各个部分设计(比如文件系统和内存管理)往往有其独特之处,所以我将原先 Tinix(本意为 TryMinix)改成了新名字...
  • 网络组建域管理课件2

    2009-02-08 22:29:19
    它们最大区别在于在C/S结构中,服务器控制管理数据能力由文件管理方式上升为数据库管理方式,原先在工作站/文件服务器中由工作站所承担数据加工任务(即应用一部分),现改由服务器来承担,从而使整个系统的...
  •  BMP:PC机上常见位图格式,尤其在Windows系统中使用特别广泛。  GIF:主要用于在不同平台上进行图像交换,是经过压缩图形格式。GIF文件最大64MB,颜色数最多256色。  JPEG:文件压缩比较高,文件比较小...
  • Win32线程程序设计--源代码

    热门讨论 2012-04-22 17:09:08
    OS/2、Windows NT、Windows 95这类"新一代PC操作系统"初上市时,便一再强调其抢先式多任务(preemptive multitasking)的多线程 (multithreaded)环境。拜强势行销之赐,霎时间线头到处飞舞,高深的计算机术语在...
  • Win32线程程序设计--详细书签版

    热门讨论 2012-04-22 16:59:13
    OS/2、Windows NT、Windows 95这类"新一代PC操作系统"初上市时,便一再强调其抢先式多任务(preemptive multitasking)的多线程 (multithreaded)环境。拜强势行销之赐,霎时间线头到处飞舞,高深的计算机术语在...
  • 9. 存储管理 (1)边界标识法 (Boundary_tag_method) (2)伙伴系统 (Buddy_system) (3)紧缩无用单元 (Storage_compaction) 10. 静态查找 (1)顺序查找(Search_Seq) (2)折半查找 (Serch_Bin) (3)...
  • 信息技术基础

    2018-01-06 11:47:19
    多道程序和分时系统技术产生和各种存储器和输入输出部件在功能和技术上发展,使计算机系统内部信息的管理方法与传输成为重要问题,计算机控制从集中式走向分布式,出现了存储器控制技术与通道、外部设备部件...
  • 作者是互联网早期研究者之一,他以独树一帜方法把技术上准确性和当前网络研究热点完美地结合起来,讲述了网络底层技术和联网技术。本书是原书第2版译本,比第1版增加了3章内容,介绍了基本网络工具、...
  • 会计理论考试题

    2012-03-07 21:04:40
    C、对各种数据进行操作 D、控制和管理系统的软硬件资源 22.在硬盘上找某个文件,但不知在哪个文件夹中,下列___B____方法较快。 A、打开“我电脑”,选C盘,再按文件夹查找 B、在“开始”菜单中选择“查找”命令 C...
  • 3 气体安全管理系统 3.1 功能特点 采集数据端口,支持串口端口+网络端口,串口支持自由设置串口号+波特率,网络支持自由设置IP地址+通讯端口,每个端口支持采集周期,默认1秒钟一个地址,支持设置通讯超时次数,...
  • 数字传输技术最早是被长途电话系统采用。由于模拟信号在远距离传输时存在衰减,需要放大器来接力,而沿线每个放大器都会轻微扭曲信号。所以20世纪60年代,电话公司就使用数字技术来解决这个问题。模拟声音信号在...
  • CuteFTP9简易汉化版

    2014-04-11 12:31:30
    SSL Certificates-CuteFTP包括一个完整证书管理系统,让您能够接受或拒绝一个服务器证书,接受证书存储在一个本地数据库,导入和导出证书在本地存储,使用窗口受信任证书存储证书批准,并且能够创建自己...

空空如也

空空如也

1 2 3
收藏数 46
精华内容 18
关键字:

最早的多道存储管理系统