赞
踩
1.引入原因
虚拟存储器:在操作系统及辅助硬件的管理下,由主存和大容量外存所构成的一个单一的,可直接访问的超大容量的主存储器。
2.虚拟存储器的概念(虚拟存储体系)
主存储器与大容量磁盘存储器构成虚拟存储系统
虚拟存储器工作时,操作系统管理的地址转换硬件检测程序欲访问的虚存地址所在的程序或数据页(或段)是否在主存中,若已在主存中(即命中),则将虚拟地址转换为主存地址,CPU根据主存地址从主存(或Cache-主存)读取程序或读/写数据;若未在主存中(即失效),则将虚存地址转换为外存地址,由操作系统控制把当前要执行的程序或使用的数据从外存调入到快速主存中,大量暂时不用的部分仍放在慢速廉价的外存中。如果主存中没有空闲区域,则选择最近不常用的程序或数据作为替换对象,且将修改的数据送回外存。因为程序和数据在主存与外存的调入,调出由硬件与操作系统共同完成,所以,对于设计存储管理软件的程序员来说是不透明的,对于应用程序员来说是透明的(而Cache的控制完全由硬件实现,对各类程序员都透明)。每个程序员的编程空间均为完整的虚存空间(远远大于主存实际空间),用户程序运行在标准化的虚拟地址空间中,且该存储空间无存储实体,故称“虚拟”存储器。
页式虚拟存储器采用分页请求系统:它允许用户程序只装入少数页面的程序及数据即可启动运行,以后再通过调页功能及页面置换功能陆续地把即将运行的页面调入内存,同时把暂时不用的页面换出到外存上,置换时以页面为单位。
页式虚拟存储器的硬件支持:
1.虚页和实页
2.虚拟地址和主存地址
虚页号 | 页内地址 |
---|
实页号 | 页内地址 |
---|
3.地址变换⭐
管理页式虚拟存储器时,要完成虚拟地址到物理地址的变换,该变换是基于全相联地址映射并通过页表来实现的。
在页表中每一条记录都包含虚页号所对应的实页号
页表通常设置在主存中,表的起始地址通过页表基址寄存器来设定
在页式虚拟存储器地址变换中,当程序给出虚拟地址后,CPU以虚页号为偏移地址查页表,从而获得相应的实页号。
将实页号与虚拟地址的页内地址连接到一起,便构成了主存的物理地址。
4.关于页表⭐
5.快表与慢表
为了提高速度,可借鉴Cache的思路,将页表中最活跃的部分放在Cache存储器中,构成快表,对快表的查找及管理全部使用硬件来实现。快表一般很小,它仅是主存中页表(慢表)的一小部分。只有在快表找不到要访问的页面时,才去访问慢表,以达到快的目的。
6.缺页中断机构
在请求分页系统中,每当所要访问的页面不存在时,便产生一缺页中断,请求OS将所缺页面调入内存。
缺页中断与一般中断的不同表现在:
7.页面的调入过程
8.页式虚拟存储器的优缺点
优点:
缺点:
1.某计算机主存按字节编址,虚拟(逻辑)地址空间大小为256MB,主存(物理)地址空间为16MB,页
面大小为4KB。
虚拟地址共有几位,哪几位表示虚页号?物理地址共有几位,哪几位表示实页号?
分析:
2.某页式虚拟存储器共256K页,每页4KB。主存容量1MB,按字节编址。试问:主存分多少页?主存页表有多大?描述虚实地址的变换过程。
分析:
地址变换过程:
1.段式虚拟存储器
优点:(1)很适合模块化程序设计(2)便于程序和数据共享(3)便于信息保护
缺点:(1)各段长度不一,分配地址空间麻烦(2)段与段间空隙较大,降低主存利用率
2.段页式虚拟存储器
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。