视频字幕
计算机的存储系统就像一座金字塔。最顶层是CPU寄存器,速度最快但容量最小。往下是高速缓存,速度很快容量稍大。再往下是主存储器也就是内存,速度中等容量更大。最底层是辅助存储器比如硬盘,容量最大但速度最慢。这就形成了存储器的层次结构,存在着容量与速度之间的矛盾。
传统的存储管理方式存在很多问题。首先,程序必须完整地装入内存才能运行,不能部分装入。其次,当内存空间不足时,大程序就无法运行,即使程序只需要使用一小部分代码。最后,多个程序同时运行时,会出现内存分配冲突,导致系统效率低下。这些问题限制了计算机系统的性能和灵活性。
虚拟存储器就像一个魔法存储器,它的基本思想是为每个程序创建一个比物理内存更大的虚拟地址空间。程序以为自己拥有一个很大的连续内存空间,实际上这个虚拟空间通过地址转换映射到物理内存中。内存管理单元MMU负责完成虚拟地址到物理地址的转换,让程序可以透明地使用虚拟存储器。
欢迎来到虚拟存储器的奇妙世界!想象一下,你的电脑内存就像一个小书包,但你却要装下整个图书馆的书。这听起来不可能,对吧?但是虚拟存储器就像魔法一样,让这个不可能变成可能!它让程序以为自己拥有巨大的连续内存空间,而实际上只是巧妙地管理着有限的物理内存。
虚拟存储器的核心思想非常巧妙。程序看到的是连续的虚拟地址空间,就像地址从0x1000、0x2000、0x3000这样依次排列。但实际上,这些数据在物理内存中可能是不连续存放的。操作系统就像一个翻译器,负责把虚拟地址翻译成真实的物理地址。这样程序编写变得简单,而内存管理变得更加灵活高效。
虚拟存储器为计算机系统带来了许多重要优势。首先,它大大扩展了可用的地址空间,让程序可以使用比物理内存更大的地址范围。其次,它提供了内存保护和隔离机制,不同程序之间不会相互干扰。另外,程序的重定位变得非常简单,同一个程序可以在不同的物理地址运行。最重要的是,它支持多道程序设计,多个程序可以同时运行,大大提高了系统的整体效率。
分页存储管理是虚拟存储器的主要实现方式。我们把虚拟地址空间比作一本大书,每一页代表一个固定大小的页面。物理内存也被分成同样大小的页框。页表就像目录一样,记录每个虚拟页面对应哪个物理页框。当程序访问虚拟地址时,系统通过页表找到对应的物理地址,实现地址转换。这样程序就可以使用连续的虚拟地址空间,而实际存储在不连续的物理内存中。
当物理内存满了,新页面需要进入时,就需要页面置换机制。页面管家负责决定哪个页面应该被换出到磁盘。常用的置换算法有FIFO先进先出,就是最早进入的页面先被换出。还有LRU最近最少使用算法,把最长时间没有被访问的页面换出。页面管家会根据不同的策略,选择合适的页面进行置换,确保系统高效运行。这就是虚拟存储器按需调页的核心机制。