虚拟存储器

1. 实地址与虚地址
2.虚存的访问过程
3.cache与虚存的异同
4.虚存机制要解决的关键问题
3.7.2页式虚拟存储器
1.页式虚拟地址映射
2.内页表和外页表
3.转换后援缓冲器(TLB)
4.虚拟存储器、TLB和cache的协同操作
3.7.3段式虚拟存储器和段页式虚拟存储器
1.段式虚拟存储器
2.段页式虚拟存储器
3.7.4虚拟的替换算法
3.7.5存储管理部件
3.7.1 虚拟存储器的基本概念
1. 实地址与虚地址
虚地址(逻辑地址):用户编制程序时使用的地址,其对应的存储空间称为虚存空间或逻辑地址空间
实地址(物理地址):计算机物理内存访问地址,其对应的存储空间称为物理存储空间或主存空间。
程序再定位:程序进行虚地址到实地址转换的过程。

2.虚存的访问过程
   虚拟空间的用户程序按照虚地址编程并放在辅存(外存)中,程序运行时,由地址变换机构依据当时分配给程序的实地址空间把程序的一部分调入实存。


   虚存是在主存和辅存之外附加一些硬件和软件实现的

3.cache与虚存的异同
在三级存储体系中,cache—主存和主存—辅存的相同处

出发点相同:二者都是为了提高存储系统的性能价格比构造的分层存储体系,力图使性能接近高速存储器,价格和容量接近低速存储器
原理相同:都是利用局部性原理把最近常用的信息块从慢速大容量的存储器调入相对高速小容量的存储器中
侧重点不同:cache解决主存和CPU的速度差异问题,虚存解决存储容量问题
数据通路不同:CPU和cache和主存之间均可以有直接访问通路,cache不命中可直接访问主存。而虚存所依赖的辅存于CPU之间不存在直接的数据通路,当主存不命中时只能通过调页解决,CPU最终还是要访问主存
透明性不同:cache的管理完全由硬件完成,对系统程序员和应用程序员均透明,而虚存管理由软件(操作系统)和硬件共同完成,对系统程序员不透明,只对应用程序员透明
4.虚存机制要解决的关键问题
虚存机制要解决的关键问题

调度问题:决定哪些程序和数据应被调入主存
地址映射问题:在访问主存时虚地址变为主存物理地址(内地址变换);在访问辅存时把虚地址变成辅存的物理地址(外地址变换),以便换页。此外还要解决主存分配、存储保护于程序在定位等问题
替换问题:决定哪些程序和数据应调出主存
更新问题:确保主存于辅存的一致性
3.7.2页式虚拟存储器
1.页式虚拟地址映射
页式虚拟存储系统中,虚地址空间被分成等长的页,称为逻辑页(虚拟页)。
主存空间也被分成同样大小的页,称为物理页。
虚地址分成两个字段:高字段为逻辑页号,低字段为页内地址。
通过页表可以把虚地址(逻辑地址)转换成物理地址。
在大多数系统中,每一个进程对应一个页表

2.内页表和外页表
页表是虚地址到主存物理地址的变换表,称为内页表。而外页表用于虚地址于辅存地址之间的变换。
当主存缺页时,调页操作首先要定位辅存,而外页表的结构与辅存的寻址机制密切相关。
外页表通常放在辅存中,在需要时可调入主存。当主存不命中时,由存储管理部件向CPU发出“缺页中断”,进行调页操作
3.转换后援缓冲器(TLB)
  为了避免对主存访问次数的增多,可以对页表本身实行二级缓存,把页表中最活跃的部分存放在高速存储器中。这个部件通常称为转换后援缓冲器(TLB),也称快表。而保存在主存的完整页表则称为慢表。


4.虚拟存储器、TLB和cache的协同操作
  虚拟存储器和cache系统如同一个层次结构般一起工作。操作系统在管理该层次结构时起到关键作用,当它决定要把某一页移到磁盘上去时,就迫使该页的全部内容从cache中删除。同时,操作系统修改页表(慢表)和TLB(快表),而试图访问该页上的任何数据可能将导致缺页。


3.7.3段式虚拟存储器和段页式虚拟存储器
1.段式虚拟存储器
分页:页面时主存物理空间中划分出来的等长的固定区域。

优点:页长固定,便于构造页表、易于管理,且不存在外碎片。
缺点:页长于程序的逻辑大小不相关
分段:划分可寻址的存储空间的方法,段是按照程序的自然分界划分的长度可动态改变的区域

  在段式虚拟存储系统中,虚地址由段号和段内地址(偏移量)组成。虚地址到实地址的变换通过段表实现。每一个程序设置一个段表,段表的每一个表项对应一个段。每一个表项至少包含三个字段。

有效位:指明该段是否已经调入实存
段起始:指明在该段已经调入实存的情况下,该段在实存中的首地址
段长:记录段的实际长度。设置的目的是防止地址越界

2.段页式虚拟存储器
段页式虚拟存储器式段式虚拟存储器和页内虚拟存储器的结合


3.7.4虚拟的替换算法
虚拟存储器的替换算法与cache的替换算法类似,由FIFO算法、LRU算法、LFU算法
虚存的替换与cache的替换不同的是:

cache的替换全部靠硬件实现,而虚拟存储器的替换由操作系统的支持
虚存缺页对系统性能的影响比cache未命中要大得多,因为调页需要访问辅存,并且要进行任务切换
虚存页面替换的选择余地很大,属于一个进程的页面都可以替换。通常在页表或段表的每一个表项中设置一个修改位,标识该表项所对应的主存页或段空间在被调入主存后是否被修改过。
3.7.5存储管理部件
  存储管理部件(Memory Management Uit,MMU)是系统中进行虚实地址转换的核心部件。
主要功能:

在TLB的协助下完成虚实地址转换
维护TLB的控制机制
负责存储保护
在TLB失效或非法访问时向处理器发起中断
维护一个TLB失效后的再填充机制
工作流程大致如下:
  CPU发出访存的虚拟地址后,MMU通过页表查询找机制访问主存页表,获得映射关系;如果主存命中,MMU将虚页号变换为物理页号,产生物理地址访存;如果主存缺页,CPU将转到操作系统的页面失效程序入口,由操作系统进行调页操作。

你可能感兴趣的:(人工智能)