【操作系统学习笔记(七)】之 交换,覆盖技术,虚拟存储,高速缓冲存储

本文章由公号【开发小鸽】发布!欢迎关注!!!


老规矩–妹妹镇楼:

一. 交换技术和覆盖技术

(一) 存储扩容概述

       在基本的存储管理系统中,当一个作业的程序地址空间大于内存可以使用的空间时,该作业就无法装入运行。存储扩容可以解决这个问题,借助大容量的辅存在逻辑上实现内存的扩充,比较常用的存储扩容技术有交换技术和覆盖技术两种。

(二) 覆盖技术

1. 概述

       覆盖技术的目的是在较小的可用内存中运行较大的程序,常用于多道程序系统。


2. 原理

       将程序的必要部分的代码和数据常驻内存,将可选部分在其他程序模块中实现,平时存放在外存中的覆盖文件中,在用到时才会装入到内存中,不存在调用关系的模块之间可以覆盖。

3. 优缺点

       有效利用内存,但是在编程时必须划分出程序模块以及它们之间的覆盖关系,同时从外存中装入覆盖文件会消耗更长的时间。

(三) 交换技术

1. 原理

       用于多个程序并发执行的系统中,当某个作业的存储空间不够用时,可以将暂时不执行的程序占用的地址空间交换到外存中,从而获得空闲内存来装入新程序,交换的单位是整个进程的地址空间。


2. 优缺点

优点:
       增加并发运行的程序数目;

       编写程序时不影响结构;

缺点:
       换入,换出的控制增加的CPU开销


二. 虚拟存储

(一) 局部性原理

       程序在执行过程中 一个较短时期内,所执行的指令地址和指令的操作数地址分别局限于一定的区域,主要表现为:

1. 时间局部性

       一条指令的一次执行和下次执行都集中在一个较短时期内。

2. 空间局部性

       当前指令和临近的指令都集中在一个较小的区域中。


(二) 虚拟存储

       虚拟存储管理就是基于程序的局部性原理,利用大容量的磁盘作为后备,当作业要占用的内存不够时,将作业的一部分暂时放到磁盘中,当需要时就从磁盘上调入。在程序执行过程中,如果需要执行的指令不在内存中(缺页或缺段),则由系统来调度相应的页或段到内存中,这是请求调入功能,将内存中暂时不用的页或段调出保存在外存中,是置换功能。

(三) 虚拟存储的优势

       1. 可在较小的内存中执行较大的程序;

       2. 可在内存中容纳更多程序并发执行;

(四) 虚拟存储的分类

1. 请求分页
(1) 概述

       在页式存储的基础之上,增加了请求调页和页面置换的功能,不要求程序一次性全部装入内存之中,只需要装入当前运行的一部分页面,称为工作集,当发现需要的页面不在内存中时,产生缺页中断。为了实现请求分页式存储,需要对页表进行扩展,除了页号和对应的物理块号,还需要添加存在位,用于指示该页是否调入了内存中;添加修改位,表示该页调入内存后是否被修改过。

(2) 抖动

       将某一页从内存移到硬盘为出页,从硬盘移到内存为入页。如果刚从内存中移走某个页面后,根据请求马上又调入该页,这种反复进行入页和出页的现象称为抖动,浪费了CPU时间,应尽量避免,产生的主要原因是页面淘汰算法不合理和分配给进程的物理页面数量太少。

(3) 缺页中断

       缺页中断是在指令执行期间产生和处理的,而不是在一条指令指令完毕之后,且一条指令的执行可能产生多次缺页中断。

(4) 影响缺页的因素

       页面大小,过大则进程使用的大部分地址都在内存中,缺页率低;过小则每个进程的内存页很多,通过调页会适应局部性原理的要求,只有中等情况下,局部性区域只有很小的部分,缺页率高;

       分配给进程的物理页面数;

(5) 多级页表

       如果每页很小,进程页表过长,则可以采用多级页表的形式,每级都可以装入联想存储器中,每一级页表中记录的都是物理页号,指向下级页表或真正被访问的页。

(6) 页面调度策略

页面调入策略:
       请求调页会产生较多的缺页中断,容易产生抖动;预调页一次调入该页和相邻的几个页,提高IO效率,是基于局部性原理的预测。

页面置换策略:
       固定分配局部置换:为每个进程分配固定页数的内存空间,如果出现缺页,则从该进程的页面中进行置换;

       可变分配全局置换:进程的页数不是固定的,置换的时候所有的页都可以置换;

       可变分配局部置换:发生缺页时,只允许从该进程的页面中选出一页换出,如果进程频发发生缺页中断,则系统再为该进程分配若干页,直到缺页率降低。

(7) 页面淘汰算法

       FIFO:置换建立最早的页;

       第二次机会淘汰算法(SCR):按照FIFO选择页面,检查访问位,如果为0则淘汰,否则给第二次机会;

       页面缓冲算法:对被置换页面进行缓存,便于找到该页;

       最近最少使用算法(LRU):置换内存中最久未使用的页面,

(8) 常驻集

       常驻集指的是虚拟页式管理中给进程分配的物理页面数量。常驻集越小,则内存中的进程越多,并行度越高,但是缺页率也会上升。

2. 请求分段

       在段式存储的基础之上,增加了请求调段的功能。

3. 请求段页式

       请求分页和请求分段的结合。


三. 高速缓冲存储器

(一) 概述

       高速缓存是为了匹配CPU的处理速率与内存的访问而增加的高速存储器,目的是提高CPU的利用率。

(二) 组成

       由三部分组成:高速缓冲存储器,缓冲目录,缓冲控制器。


1. 高速缓冲存储器

       分为若干个区,每个区又分为若干个块,每个块用列号标识,因此可以用区号+列号描述每个缓冲存储块。

2. 缓冲目录

       描述各个缓冲存储器块的状态,缓冲目录的表项和缓冲存储器块一一对应,每32个缓冲目录的表项构成一行,对应于一个缓冲区。

3. 缓存控制器

       负责缓存目录的维护,利用缓存淘汰算法进行缓存的更新。

(三) 缓存的工作过程

1. CPU读数据

       缓存控制器自动查找缓存目录,确定相应内存数据是否在缓存中,如果在缓存中则读数据,修改访问标志。

2. CPU写数据

       地址在缓存中在,则修改缓存内容,设置修改位为1,立即写入内存或等待该缓存快被淘汰时再写入内存中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值