`
功夫小当家
  • 浏览: 183571 次
  • 性别: Icon_minigender_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
3
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics