操作系统之存储管理

1.内存分配的方式

(1) 连续分配方式

以固定分区分配方式为例,因为分区固定,所以缺乏灵活性。当程序太小时,一个分区不足以容纳,造成内部碎片。当程序太大时,一个分区又不足以容纳,造成外部碎片。

(2) 基本分页存储管理方式

分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页。并将各页加以编号,从0开始,如第0页,第1页等。相应的也把内存空间分成与页面相同大小的存储块,也被称为页帧。

在为进程分配内存的时候,将进程中的若干个页分别装入到多个可以不相邻接的块中,由于进程的最后一页经常装不满一块形成不可利用的碎片,被称为页内碎片。

在分页系统中,允许将进程的各个页离散的储存在内存不同的物理块中,但系统要能保证进程的正确运行,必须要在内存中找到每个页面所对应的物理块。因此系统为所有进程建立了一张页表,页表的作用是实现从页号到物理块号的地址映射。

由于页表是放在内存中的,使得CPU在存取每个数据的时候,都要两次访问内存(也就是访问页表和访问实际物理地址)。为了提高地址变换速度,增加了一个具有并行查询能力的缓冲寄存器,被称为联想寄存器,也叫快表。

(3) 基本分段存储管理方式

作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。例程序段、数据段等。每个段都从0开始编址,并采用一段连续的地址空间。段的长度由相应的逻辑信息组的长度决定,因而各段长度不等。

在段式虚拟存储系统中,虚拟地址由段号和段内地址组成,虚拟地址到实存地址的变换通过段表来实现。每个程序设置一个段表,段表的每一个表项对应一个段,每个表项至少包括三个字段:有效位(指明该段是否已经调入主存)、段起址(该段在实存中的首地址)和段长(记录该段的实际长度)。

地址变换:针对每一个虚拟地址,存储管理部件首先以段号S为索引访问段表的第S个表项。若该表项的有效位为1,则将虚拟地址的段内地址D与该表项的段长字段比较;若段内地址较大则说明地址越界,将产生地址越界中断;否则,将该表项的段起址与段内地址相加,求得主存实地址并访存。如果该表项的有效位为0,则产生缺页中断,从辅存中调入该页,并修改段表。段式虚拟存储器虚实地址变换过程如图所示。

分段和分页的区别

  1. 两者相似之处:两者都采用离散分配方式,且都要通过地址映射来实现地址变换
  2. 两者不同之处:
    • 页是信息的物理单位,分页式由于系统管理的需要,消减内存的零头。段是信息的逻辑单位
    • 页的大小固定,由系统决定,段的长度不固定

(4)段页式存储管理方式

段页式系统的基本原理是先将用户程序分成若干个段,然后再分为若干个页。在段页式系统中,地址结构由段号,段内页号和页内地址三部分所组成。段页式存储管理方式综合了分页系统能有效提高内存利用率的优点和分段系统能有效满足用户需求的优点。

2.虚拟内存

虚拟内存的作用:先将部分程序导入内存,执行完成之后导入下一部分程序,给我们的感觉是内存变大了,实际上物理内存的大小并没有变化

虚拟内存的优点:

  • 将逻辑内存和物理内存分开
  • 虚拟内存允许文件和内存通过共享页而为两个或多个进程所共享

3.页面置换算法

1.最优页面置换算法(OPT):选未来最远将使用的页淘汰,但是无法实现。

2.最近未使用(NRU):根据R位和M位分成四类

  • 第0类:没有被访问,没有被修改
  • 第1类:没有被访问,已被修改
  • 第2类:已被访问,没有被修改
  • 第3类:已被访问,已被修改

优先选择类编号最小的挑选一个页面淘汰之。

3.先进先出(FIFO)

4.第二次机会

检查最老页面的R位,如果R位是0,那么这个页面既老又没有被使用,可以立刻置换掉,如果是1,就将R位清零,并把该页面放到链表的尾端,修改它的装入时间使它就像刚装入一样,继续搜索。

5.时钟页面置换算法

时钟页面置换算法跟二次机会算法相似,不过页面都是保存在一个类似钟面的环形链表中,一个表针指向最老的页面,发生缺页中断时,算法首先检查表针指向的页面,如果R位是0则淘汰该页面,并把新的页面插入这个位置,然后把表针前移一个位置,如果R位是1就消除R位并把指针前移一个位置。

6.最近最少使用(LRU)

LRU硬件维持一个初值为0的n * n的矩阵,当访问到页框k时,硬件首先把k行的位都设置为1,再把k列的位都设置为0,在任何时候,二进制数值最小的行就是最近最少使用的。

7.工作集:工作集就是最近K次内存访问所用过的页面的集合

在每个时钟周期,有一个定期的时钟中断会用软件方法来清除r位。

在处理每个表项时,都需要检查R位,如果它是1,都把当前实际时间写进页表项‘上次使用的时间域’,不应该删除。

如果R是0,则表示当前时钟周期没有被访问过,则它可以作为候选者,需要计算它的生存时间,(当前实际运行时间-上次使用时间),然后与z作比较。如果生存时间大于z,那么这个页面不在工作集,要用新的页面置换它。

8.工作集时钟

工作集时钟算法其实就是工作集算法和时钟算法的结合版。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值