《计算机组织结构》期末复习-第12讲-虚拟存储器

第12讲-虚拟存储器

原文链接

操作系统的出现

  1. 第一台计算机诞生时,采用手工操作的方式
    • 一个用户独占全机:不会出现因资源已被其他用户占用而等待的现象,但资源的利用率低
    • CPU等待手工操作:CPU 的利用不充分
  2. 批处理系统:加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地、成批地处理一个或多个用户的作业(包括程序、数据和命令)
    • 联机批处理系统,脱机批处理系统
  3. 操作系统:一种控制应用程序运行和在计算机用户与计算机硬件之间提供接口的程序
  4. 目标:使计算机使用起来更方便;允许计算机系统的资源以有效的方式使用

存储器管理

  1. 早期计算机的主存中仅包含系统软件和一个用户程序
    • 单道程序设计
  2. 现在计算机的主存中包含操作系统和若干个用户程序
    • 当所有任务都需要等待I/O 时,为了避免处理器处于空闲状态,需要尽可能让更多的任务进入主存
    • 多道程序设计:让处理器一次处理多个任务,提高处理器的利用率
  3. 存储器管理
    • 在多道程序系统中,主存需要进一步划分给多个任务,划分的任务由操作系统动态执行
    • 本门课不区分“进程”和“任务”这个更抽象的概念

交换技术

  1. 如何将更多更大的任务装入主存
    • 增大主存容量
    • 使用交换(exchange)技术
      • 当主存中没有处于就绪的任务时,操作系统调入其他任务来执行
      • 区(partitioning)和分页(paging)
  2. 虚拟存储器
    • 请求分页:每次访问仅将当前需要的页面调入主存,而其他不活跃的页面放在外存磁盘上
    • 虚拟地址
  3. 分区方式
    • 分区方式将主存分为两大区域
      • 系统区:固定的地址范围内,存放操作系统
      • 用户区:存放所有用户程序
    • 简单固定分区
      • 用户区划分成长度不等的固定长的分区
      • 当一个任务调入主存时,分配一个可用的、能容纳它的、最小的分区
      • 优点:简单
      • 缺点:浪费主存空间
    • 可变长分区
      • 用户区按每个任务所需要的内存大小进行分配
      • 优点:提高了主存的利用率
      • 缺点:时间越长,存储器中的碎片就会越多
  4. 分页方式
    • 目的:减少碎片的产生
    • 基本思想
      • 把主存分成固定长且比较小的存储块,称为页框(page frame),每个任务也被划分成固定长的程序块,称为页(page)
      • 将页装入页框中,且无需采用连续的页框来存放一个任务中所有的页
    • 逻辑地
    • 物理地址:实际主存地址

虚拟存储器

  1. 问题:内存的大小是有限的,但对内存的需求不断增加

  2. 基本思想

    • 请求分页:仅将当前需要的的页调入主存
      • 通过硬件将逻辑地址转换为物理地址
      • 未命中时在主存和硬盘之间交换信息
  3. 优点

    • 在不扩大物理内存的前提下,可以载入更多的任务
    • 编写程序时不需要考虑可用物理内存的状态
    • 程序员认为可以独享一个连续的、很大的内存
    • 可以在大于物理内存的逻辑地址空间中编程
  4. 设计要素

    • 页大小:4KB, 8KB, …
    • 映射算法:全相联映射
    • 写策略:写回
    • Cache比主存快10 倍,主存比硬盘快100000 多,故需要减少硬盘访问,尽可能提高主存命中率
  5. 类型

    • 分页式虚拟存储器
    • 分段式虚拟存储器
    • 段页式虚拟存储器
  6. 分页式虚拟存储器

    • 主存储器和虚拟地址空间都被划分为大小相等的页面
      • 虚拟页(virtual page,VP) / 逻辑页(logical page):虚拟地址空间中的页面
      • 物理页(physical page,PP) / 页框(page frame):主存空间中的页面
    • 页表
      • 页表中包含了所有虚拟页的信息,包括虚拟页的存放位置、装入位(valid)、修改位(dirty)、存取权限位等等
      • 保存在主存中
      • 虚拟地址:虚拟页号 + 页内偏移量
      • 根据页表中记录的物理页存放位置,可以将虚拟地址转化为物理地址
        虚拟页号 + 页内偏移量 -> 物理页号 + 页内偏移量
    • 快表(Translation Lookaside Buffer,TLB)
      • 页表的使用增加了主存的访问次数
      • 为了减少访存次数,把页表中最活跃的几个页表项复制到高速缓存中
      • 后备转换缓冲器(简称“快表”):将页表项放入高速缓存中
        • 映射:关联映射,组关联映射
        • 替换:随机替换
      • 主存中的页表相应地称之为“慢表”
    • CPU访存
    image-20231215203705409
    • TLB、页表、Cache 的缺失组合
    image-20231215204207927

分段式虚拟存储器

  1. 将程序和数据分成不同长度的段,将所需的段加载到主存中
  2. 虚拟地址:段号+ 段内偏移量
  3. 与分页式虚拟存储器相比
    • 分页式虚拟存储器(页对程序员不可见)
      • 优点:实现简单、开销少
      • 缺点:一个数据或一条指令可能会分跨在两个页面
    • 分段式虚拟存储器(段对程序员可见)
      • 优点:段的分界与程序的自然分界相对应,易于编译、管理、修改和保护
      • 缺点:段的长度不固定(引起碎片)

段页式虚拟存储器

  1. 将程序和数据分段,段内再进行分页
    • 每个分段都有一个页表
  2. 虚拟地址:段号+ 页号+ 页内偏移量
  3. 优点:程序按段实现共享与保护
  4. 缺点:需要多次查表
  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值