计算机组成原理课件 虚拟存储器
- 格式:ppt
- 大小:808.00 KB
- 文档页数:21
计算机组成原理3.7虚拟存储器3.7.1虚拟存储器概念3.7.2页式存储器主存和Cache之间是分块映射存储,同样,利⽤局部性原理,也可以将主存和辅存之间进⾏分块映射存储。
举个粒⼦,假如现在使⽤微信⽂字聊天,该部分程序占⽤⼤⼩了4KB的空间,那么可以分为⼤⼩位1KB的四块,分别映射存储到主存中。
如下图,分页式存储,在这个问题中就是把程序进程逻辑上⼤⼩相等的四块页⾯,每个页⾯⼤⼩与主存块⼤⼩相等,可以离散的存储到主存块中。
那么,4KB的程序被拆分成四块存储到主存后,要如何执⾏该程序呢?这个问题留到3.7.3.3部分来回答。
3.7.3页式虚拟存储器3.7.3.1页表虚拟存储,如上⽂提到的微信⽂字聊天,假设微信程序⼤⼩1GB,主存⼤⼩只有512MB,在⽂字聊天时候不需要把全部的微信程序相关数据调⼊到主存,只调⼊需要的4KB,剩余的空间可以继续调⽤其他程序进程,512MB⼤⼩的主存可以运⾏许多个1GB的程序,这就是虚拟存储。
关于分页式虚拟存储,依然借⽤学习讲义⾥的图⽚,逻辑页号:记录程序数据在逻辑地址的哪⼀块地址页中。
主存块号:记录程序数据在主存储器的哪⼀块主存中,与逻辑页号有映射关系。
外存块号:记录程序数据在辅存的哪⼀块。
有效位:初始化位0,记录某⼀块程序数据所在的逻辑页⾯是否被调⽤到主存中,若是为1,若否为0。
访问位:初始化为0,记录某块程序数据被访问的次数,⽤访问位帮助实现页⾯替换,需要替换时优先淘汰访问位记录数较⼩的。
脏位:初始化为0,发⽣数据修改时变为1。
举个粒⼦,假设要访问逻辑页号为1的数据,则从页表中找到对应的对应逻辑页号,有效位是1,则直接根据映射访问主存块号位2的主存块,并且访问位+1。
假设访问逻辑页号为3的数据,根据页表找到逻辑页号,有效位是0,主存中没有数据,则需要到辅存中找到外存块号为d的存储块,将数据调⼊到主存中,有效位修改为1,访问位+1;若对该块数据进⾏修改,则脏位0变1,这⼀块数据被替换掉时,需要把数据写⼊辅存。