虚拟存储器
一个系统中的进程是与其他进程共享CPU和主存资源的,然而,共享主存会形成一些特殊的情况,如果太多的进程需要太多的储存器,那么他们中的一些就根本无法运行。当一个程序没有空间可用的时候,那就是他运气不好。存储器还容易被迫害,如果一个进程不小心写了另一个进程使用的存储器,它就可能失去原先的逻辑。为了更有效的管理存储器,现在系统引入了一种对主存的抽象概念,叫做虚拟存储器;
虚拟存储器它为每个进程提供了一个大的,一致和和私有的地址空间。通过一个很清晰的机制,虚拟存储器提供了三个重要的能力
1:把主存看成一个存储在磁盘上的地址空间的高速缓存,在主存中只保留活动区域,并根据需要在磁盘和主存之间来回传送数据
2:为每个进程提供了一致的地址空间
3:它保护了每个进程的地址空间不被其他进程破坏
物理寻址和虚拟寻址
物理寻址:计算机的主存被组织成一个由M个连续的字节大小单元组成的数组,每个字节都有一个唯一的物理地址;当cpu执行这条加载指令时候,它会生成一个有效的物理地址,通过存储器总线,把它传递给主存,主存按物理地址取回相应的字节,并返回给CPU,CPU把它放到寄存器中;
虚拟寻址:CPU通过生成一个虚拟地址来访问主存,这个虚拟地址在被送到存储器之前会转换成适当的物理地址。讲一个虚拟地址转化为物理地址的过程叫做地址翻译;
地址空间:
是一个非负整数地址的有序集合,如果地址空间中的整数是连续的,那么我们就说他是个线性地址空间
虚拟存储器被组织为一个由存放在磁盘上的N个连续的字节大小的单元组成的数组;每字节都有一个唯一的虚拟地址,这个唯一的虚拟地址是作为到数组的索引;磁盘上的数组的内容被缓存在主存中。,