《操作系统》——存储管理

    谈到存储器,我们有可能想到很多,与计算机有关的存储器,大概分为三个层次,寄存器、主存储器和高速缓冲存储器、辅助存储器等等。今天我和大家分享的是主存储器的管理与使用。想必大家都知道,CPU能直接访问主存储器和高速缓冲存储器,不能直接访问辅助存储器,那么,当CPU处理一些作业时是怎样在主储存器找到它们的那?作业又是以怎样的方式在主存储器中被管理的那?

    大家先看一张图

      

    一、 现在我先回答我刚才问的第一个问题,CPU是怎样找到放在主存储器中的待处理的作业的,这里需要引进一个重定位的概念。

    重定位:将放在主存储器中的作业的逻辑地址转换为绝对地址。(也就是找到作业在主储存器中的准确位置)

            静态重定位:在装入一个作业时,把作业中的指令地址和数据地址全部转换成绝对地址。

            动态重定位:在作业执行的过程中,由硬件的地址转换机构动态的进行地址转换。

    当作业的逻辑地址转换成绝对地址后,CPU就能按照数据地址找到作业,然后根据指令地址去操作。(指令地址存放在指令寄存器当中)。

    二、作业是以怎样的方式放入主存储器当中去的那?

    从我的上篇博客中介绍,待处理的作业是从输入井中放到主存储器当中去的,这个过程要通过作业调度来实现(作业调度又分为移臂调度和旋转调度)。作业放入主存储器中大概分为三种方式。

    1、单用户连续存储管理:除了操纵系统占用主存储器中的一部分空间,将剩余的空间也就是将用户区全部分配给一个作业使用,即在任何时刻主存储器中只有一个作业。(适合用于单道运行的计算机系统)

    2、固定分区储存器:将用户区预先划分成若干个连续的区域,每一个连续的区域成为一个分区。每个分区的大小可以不同,每个分区装入一个作业。(适用于多道程序设计系统)

    3、可变分区存储管理:根据作业的需要的主存空间的大小和当时主存空间使用的情况来为作业分配一个分区。分区的长度不是预先固定的,是按照作业的实际需求来划分的,分区的个数也不是预先确定的,而是由装入的作业数来确定。

    在可变分区管理中,作业的装入有三种算法,

    3.1、最先适应分配算法:顺序的查找空闲去表,找到第一个能满足作业长度要求的空闲去。其弊端是容易形成碎片。

    3.2、最优适应分配算法:作业要求从空闲区中挑选一个能满足作业要求最小的空闲区域。(空闲区的大小从小到大排列)

    3.3、最坏适应分配算法:挑选一个最大的空闲区分割一部分给作业使用。

    4、 三种存储管理方式的比较

    4.1、 单用户连续存储管理每次只能装入一个作业,其它两种每次可以装入多个作业。

    4.2、 在可变分区储存管理当中,由于分区是按照作业的实际需求量来定的,因此能客服固定分区方式中分区空间不能被充分利用的缺陷。

    4.3、在可变分区管理中,有移动技术,移动技术有利于动态的扩充主存(当作业执行过程中需要增加主存的时候)和集中分散的空闲区。

    三、小结

    上面的存储管理是对主存储空间的用户区进行管理,其中重点谈论的是主存空间的分配问题,在上面的几种管理方式中,都是将用户作业的逻辑地址空间连续的放在主存中的某个区域中。当主存器中没有足够大的区域时,作业将无法装入,这时候有一种解决办法是移动作业,腾出足够大的空闲去,另一种方式是换一种方式对主存中作业空间的分配,这就是下一篇博客所将的页式虚拟存储管理。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 32
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值