实现虚拟存储器管理,需要考虑:
1,快大小(也就是页,page)
2,主存和辅存的空间如何分区管理
3,程序块/存储块之间如何映像
4,逻辑地址和物理地址之间如何转换,转换速度如何提高
5,主存和辅存之间如何替换
6,页表如何实现,页表项中要记录那些信息
7,如何加快访问页表的速度
8,如果要找的内容不在主存怎么办
9,如何保护进程各自的存储区不被其他进程访问
有三种虚拟存储器的实现方式: 分页式,分段式,段页式
主存--磁盘VSCache--主存层次
1,页大小(2KB~64KB)比cache中的block大得多,因为访问一次磁盘太慢了,所以大点,一次性访问的多点
2,采用全相联映射 ,因为缺页的开销比cache缺失的开销大得多,缺页时需要访问磁盘大约几百万个时钟周期,而cache缺失,访问主存仅需几十到几百个时钟周期,因此,页命中率比cache命中率更重要,"大页面"和"全相联"可以提高页命中率
3,通过软件来处理缺页,因为缺页时需要访问磁盘,慢!不能用硬件实现
4,采用写回策略,(只写入主存不写入磁盘),避免频繁的慢速磁盘访问操作
5,地址转换要用硬件实现