操作系统(4)虚拟存储--覆盖与交换、局部性原理、虚拟页式存储、虚拟段式存储、缺页异常

版权声明:版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/lililuni/article/details/83660168

1. 虚拟存储的需求背景

   虚拟存储可以看出是非连续分区存储的延续,在非连续分区的基本上,把一部分内容放到外存里,从而增大应用程序的使用空间。

  1. 存储层次结构
    通过下图的层次结构,使系统处于繁忙的状态,实现价格、容量、访问速度方面的均衡。
    ==1==
  2. 解决计算系统常出现的内存不够用问题的办法
  1. 覆盖:应用程序手动把需要的指令和数据保存在内存中,这种方式加大了应用开发的难度
  2. 交换:操作系统自动把暂时不能执行的程序保存到外存中,这种方式开销大
  3. 虚拟存储:在有限容量的内存中,以页为单位自动装入更多更大的程序。

2. 覆盖和交换技术 (过时技术)

  1. 覆盖
    在这里插入图片描述
  2. 交换
    ==3==
    在这里插入图片描述

3. 局部性原理(虚拟存储的可实现前提)

虚拟存储是把原来放在内存中的一部分地址信息放到外存中。

  1. 虚拟存储的目标
  1. 只把部分程序放到内存中,从而运行比物理内存大的程序。不同于覆盖技术,这部分工作由操作系统自动完成。
  2. 实现进程在内存与外存之间的交换,从而获得更多的空闲内存空间
  1. 局部性原理
    分支局部性就比如循环
    在这里插入图片描述

4. 虚拟存储概念

  1. 原理
  1. 装载程序时:只讲当前指令执行需要的部分页面或段装入内存中,不同于之前的需要把整个进程放到内存中
  2. 当指令执行过程中需要的指令或者数据不在内存中时(称为缺页或者缺段),处理器通知操作系统将相应的内容调入内存
  3. 操作系统将内存中暂时不用的页面或段保存到外面(引出置换算法来决定调出哪些)。
  1. 实现方式:虚拟页式存储+虚拟段式存储

  2. 虚拟存储的基本特征
    ==6==

  3. 支持技术

    • 硬件:页式或短时存储中的地址转换机制
    • 操作系统:管理内存和外存间页面或段的换入和换出

4. 虚拟页式存储

在页式存储管理的基础上,增加请求调页和页面置换。

  1. 实现思路
    ==7==
    页式存储管理是将所有的页面都加入到内存中,只是可以实现存储的不连续,因此也不会出现所谓的缺页异常。

  2. 地址转换
    ==8==
    地址转换过程和页式存储管理差不多,只不过增加了缺页异常的一些处理机制,这样就会导致很多东西需要修改

  3. 页表项结构(区别于页式存储管理的页表项)
    在页表项中添加了4个标识位:驻留位,保护位,修改位,访问位
    ==9==
    ==10==
    ==11==
    ==12==

5. 缺页异常

  1. 缺页异常(中断)的处理流程(页面置换算法)
    ==13==
  2. 上图第4步详细流程
    ==14==
  3. 虚拟页式存储的外存管理
    ==15==
  4. 管理的性能
    ==16==

猜你喜欢

转载自blog.csdn.net/lililuni/article/details/83660168