网工笔记--虚拟存储技术网工笔记 2008-04-03 09:18:19 阅读20 评论0 字号:大中小
2005年考题
虚拟存储管理系统的基础是程序的 (7) 理论,这个理论的基本含义是指程序执行时往往会不均匀地访问主存储器单元。根据这个理论,Denning提出了工作集理论。工作集是进程运行时被频繁地访问的页面集合。在进程运行时,如果它的工作集页面都在 (8) 内,能够使该进程有效地运行,否则会出现频繁的页面调入/调出现象。
(7) A.全局性
B.局部性
C.时间全局性
D.空间全局性
(8) A.主存储器
B.虚拟存储器
C.辅助存储器
D.优盘
解析:
虚拟存储的定义可以从两个方面来理解:从专业角度看,虚拟存储实际上是逻辑存储,是一种智能、有效地管理存储数据的方式;从用户角度看,虚拟存储将使用户使用存储空间,而不是使用物理存储硬件(磁盘、磁带);管理存储空间,而不是管理物理存储硬件。
虚拟存储管理系统的基础是程序的局部性理论。该理论的基本含义指程序执行时,往往会不均匀地访问存储器,也就是说,某些存储空间可能被经常访问,而有的可能访问量较少。
根据这个理论,Denning提出了工作集理论。工作集是进程运行时被频繁地访问的页面集合。在进程运行时,如果它的工作集页面都在主存储器内,就能够使该进程有效地运行,否则会出现频繁的页面调入/调出现象。
下面的内容转自:cisco技术网
虚拟存储器是根据程序的逻辑地址转换来的,也称线性地址空间。一般每个进程,甚至每个段都有一个,以32位为例,则每个最大可达4G。
|
虚拟地址换算: |
TLB miss: 4G(32-bit)的存储空间,如果按4K分页,则可分1M页。每个页表项为4B,则一个页表大小为4MB。由于页表太大,只能放在主存中。这样每次读内存都要读主存,大大影响读写速度。而同样基于局部性原理,整个页表在某一时刻,所用的也仅仅几页而已。所以我们把某段时间经常用的几个页表项,即常用的虚拟页号和其对应的物理页地址,存在Cache中,即TLB。 这样,当程序需要调用某个存储单元的内容时,先根据它的线性地址,算出其所在的页。先查TLB(比较虚拟页号),如果有相同的虚拟页号,则就可以马上知道其所在的物理地址,根据物理地址进行存取。 如果没有相同的虚拟页号,则说明该页没有记录在TLB中,那再去查页表,按page fault中所说的进行。 TLB像我们随身记录电话的小纸片,当要查一个电话时,我们先看小纸片。有,我们可以直接打电话。如果没有,我们再回家查详细的电话号码簿(页表),再打电话。 |
名称解释:
TLB:Translation Lookaside Buffer.
根据功能可以译为快表,直译可以翻译为旁路转换缓冲,也可以把它理解成页表缓冲。里面存放的是一些页表文件(虚拟地址到物理地址的转换表)。当处理器要在主内存寻址时,不是直接在内存的物理地址里查找的,而是通过一组虚拟地址转换到主内存的物理地址,TLB就是负责将虚拟内存地址翻译成实际的物理内存地址,而CPU寻址时会优先在TLB中进行寻址。处理器的性能就和寻址的命中率有很大的关系。
映射机制必须使一个程序能断言某个地址在其自己的进程空间或地址空间内,并且能够高效的将其转换为真实的物理地址以访问内存。一个方法是使用一个含有整个空间内所有页的入口(entry)的表(即页表),每个入口包含这个页的正确物理地址。这很明显是个相当大的数据结构,因而不得不存放于主存之中。
由于CPU首先接到的是由程序传来的虚拟内存地址,所以CPU必须先到物理内存中取页表,然后对应程序传来的虚拟页面号,在表里找到对应的物理页面号,最后才能访问实际的物理内存地址,也就是说整个过程中CPU必须访问两次物理内存(实际上访问的次数更多)。因此,为了减少CPU访问物理内存的次数,引入TLB。