欢迎来到天天文库
浏览记录
ID:29203750
大小:66.00 KB
页数:5页
时间:2018-12-17
《虚拟存储技术原理.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、虚拟存储技术原理虚拟存储器是根据程序的逻辑地址转换来的,也称线性地址空间。一般每个进程,甚至每个段都有一个,以32位为例,则每个最大可达4G。而主存目前一般为百M。因此程序中所指的存储单元并不能都放到主存中,也就是并不是每个程序所用的存储单元,都有具体的物理的存储器单元与之对应。虚拟存储器是根据程序的逻辑地址转换来的,也称线性地址空间。一般每个进程,甚至每个段都有一个,以32位为例,则每个最大可达4G。而主存目前一般为百M。因此程序中所指的存储单元并不能都放到主存中,也就是并不是每个程序所用的存储单
2、元,都有具体的物理的存储器单元与之对应。应有一个位子上课(一万个虚拟位子),而学校只有一千个(物理)位子。但实际上,学校也不会一万个人同时上课,只要让上课的同学有位子(在主存中),而其它同学只要留下联系方法能找到就好。为了降低管理的复杂性,我们采用按学号分班(页)管理。每个班要么一起上课(主存),要么一起呆在寝室(磁盘)。而在学校保留一个动态表(页表)表明每个班在哪儿(物理地址)上课,或者没上课(不在主存)。现在假设我们想按学号找一个同学,而且是女同学,只能在教室说话,呵呵。那么:先算出来是哪个班的
3、,查动态表,看该班是否在教室。在,直接按位置找到(hit);不在(pagefault),要先找个不上课的班赶回寝室,把要找女生所在的班调到教室,再按位置找那个同学。动态表(页表)的大小=表项数*每个表项所需的位数。表项数=虚拟班数=虚拟人数(虚拟地址空间)/每班人数(每页大小)每个表项的位数=Log(教室数)+适当控制位数教室数=实际可以上课的人数(物理地址空间)/每班人数(每页大小)虚拟地址换算:TLBmiss:4G(32-bit)的存储空间,如果按4K分页,则可分1M页。每个页表项为4B,则一个
4、页表大小为4MB。由于页表太大,只能放在主存中。这样每次读内存都要读主存,大大影响读写速度。而同样基于局部性原理,整个页表在某一时刻,所用的也仅仅几页而已。所以我们把某段时间经常用的几个页表项,即常用的虚拟页号和其对应的物理页地址,存在Cache中,即TLB。这样,当程序需要调用某个存储单元的内容时,先根据它的线性地址,算出其所在的页。先查TLB(比较虚拟页号),如果有相同的虚拟页号,则就可以马上知道其所在的物理地址,根据物理地址进行存取。如果没有相同的虚拟页号,则说明该页没有记录在TLB中,那再去
5、查页表,按pagefault中所说的进行。TLB像我们随身记录电话的小纸片,当要查一个电话时,我们先看小纸片。有,我们可以直接打电话。如果没有,我们再回家查详细的电话号码簿(页表),再打电话。
此文档下载收益归作者所有