学习目标:
1.理解虚拟存储器的设计动机
2.了解硬件对于虚拟存储器提供的支持
一、虚拟存储器的设计目标
当我们人为定义了一个物理内存大小确定的系统编写程序,我们只能在固定内存大小的系统上运行。而当我们想要在一台更大或更小内存的系统上运行程序时,我们就需要根据新系统的配置重新修改内存数组的值,这是非常耗费时间的。
由此我们引入了虚拟存储器,他可以帮助我们简化内存管理,使编程更简单,且程序运行更安全。
虚拟存储器把主存看成是一个存储在磁盘地址空间上的高速缓存,在主存中只保存活动区域,根据用户的需要在磁盘和主存之间来回传送数据。
二、虚拟地址和物理地址之间的转换
我们可以通过建立虚拟地址和物理地址的关系表格,在程序运行时只需要通过查找表格,就能得到物理地址,从而完成访存。
三、虚拟存储器中的局部性
当发生缺页时,操作系统需要将一整页的数据在DRAM与磁盘间进行替换,由于磁盘速度远慢于DRAM,在程序中局部性起到决定性作用。具有良好局部性的程序,将趋向于在一个较小的页面集合上工作。
学习小结:
在本节课的学习中,我明白了虚拟存储器的由来,是因为“分支多任务同时在同一个主线中进行,程序为分担和快速读取”而产生,了解了虚拟地址和物理地址之间的转换,同时在课堂实践中,也利用了存储器层次结构和Cache存储器交换了磁盘和内存之间的数据,将主存作为磁盘的Cache,提升计算系统的整体性能。希望在接下来下学期的操作系统中,可以以这节课为基础入门,循序渐进。