虚拟内存2

本文介绍了虚拟内存管理技术,旨在解决覆盖技术和交换技术的不足。虚拟内存利用程序局部性原理,仅加载当前所需部分到内存,当发生缺页中断时,操作系统负责页面的调入调出。后备存储通常使用交换空间,可以将程序的部分映射到文件,如代码段、共享库或交换文件。这种方法实现了部分交换,提高了效率。
摘要由CSDN通过智能技术生成

虚拟内存管理技术

概述

  • 问题:在内存不够时,可以采用覆盖技术和交换技术。但都有缺点 。覆盖:增加程序员负担 交换:增加处理器的开销

  • 解决之道:虚拟内存管理技术—虚存技术

  • 目标:

    • 像覆盖技术一样,不是把程序的所有内容都放在内存中,但做的更好 ,由操作系统来完成,无需程序员干涉
    • 像交换技术一样 实现进程在内存外存之间的交换,但做的更好,只对进程的部分内容进行交换
  • 程序局部性原理:指程序在执行过程中的一个较短时期,所执行的指令地址和指令的操作数地址,分别局限于一定区域

    • 时间:一条指令的一次执行和下次执行,一个数据的一次访问和下次访问都集中在一个较短的时期内。
    • 空间:当前指令和临近的几条指令,当前访问的数据和临近的几个数据都集中在一个区域内
  • 基本概念:

    • 在装入程序时,将当前需要执行的部分页面或段装入到内存,就可以让程序执行
    • 在执行的过程中,如果需要执行的指令或访问的数据不在内存中(缺页或缺段),则由处理器通知操作系统将相应页面或段调入到内存。
    • 操作系统将内存中暂时不实用的页面或段调出到外存,调入需要的页面或段。
  • 基本特征:

    • 大的用户空间:将硬盘当做虚拟空间
    • 部分交换:与交换技术比较
    • 不连续:物理内存分配不连续,虚拟地址空间使用的不连续。

缺页中断

在这里插入图片描述

过程:

  1. 如果内存中有空闲的物理页面,则分配一物理页帧f,然后转第四步,否则转第二步
  2. 采用某种页面置换算法,选择一个将被替换的物理页帧f,逻辑页号为q,如果该页在内存期间被修改过,则需把它写回外存,否则释放该页
  3. 对q对应的页表项进行修改,把驻留位置改为0
  4. 将需要访问的页p装入到物理页面f中
  5. 修改p所对应的页表项的内容,把驻留位置改为1,物理页帧号改为f
  6. 重新运行被中断的指令。

后备存储

  • 在何处保存未被映射的页?
    • 能够简单识别在二级存储器中的页
    • 交换空间:特殊格式,用于存储未被映射的页面
  • 概念:
    • 一个虚拟地址空间的页面可以被映射到一个文件(在二级存储中)中的某个位置
    • 代码段:映射到可执行二进制文件
    • 动态加的共享库程序段:映射到动态调用的库文件
    • 其他段:可能被映射到交换文件(swap file)(程序运行时产生出的数据需要换出到硬盘中)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值