所以我在上计算机体系结构课,我想我很难区分缓存和页面。
我能想到的唯一解释是,页面是操作系统欺骗程序的方式,让程序在指定的内存区域中完成所有工作,而高速缓存是硬件欺骗操作系统从指定区域读取数据的方式。记忆区域,而实际上并非如此。
操作系统是否指示硬件它需要“新页面”,或者是由操作系统尝试读取当前缓存“页面”“超出范围”的地址(由于缺乏更好的术语)来处理的。
我是走在正确的道路上还是完全疯了?
缓存和页面是正交的概念。
高速缓存是一种高速“存储器”,其作用是最大限度地减少对大型低速“存储器”的访问次数。从最一般的意义上来说,高速“内存”可以是用于缓存从网络获取的网页的硬盘(低速“内存”)。当然,在计算机体系结构的上下文中,术语“缓存”更可能指的是用于加速对较慢 RAM 或磁盘的访问的物理 RAM。
页(OTOH)只是 RAM 或磁盘内容的管理单元。
这两个概念在实现虚拟内存系统时结合在一起。一个进程可以分配 500 MB 的内存。这可能比可提供给进程的物理 RAM 更多,因此操作系统在磁盘上分配称为页面的块,这些块将保存进程地址空间中某些逻辑页面的内容。
当进程访问其地址空间中的某个位置,并且关联的页面当前未映射到物理内存时,CPU 会发出页面错误信号,操作系统会在进程处于挂起状态时通过从磁盘获取页面来做出响应。一旦页面被映射,进程就会恢复并能够访问该内存位置,就好像它一直在那里一样。
人们普遍认为虚拟内存是一种欺骗进程认为它拥有大量 RAM 的方法,但这并不是思考这个问题的唯一方法。您还可以将进程的地址空间视为逻辑上存储在磁盘页面上,操作系统辅助映射到 RAM 只是缓存这些页面内容的一种方式,这样进程就不会持续访问硬盘驱动器。从这个意义上说,缓存和分页虚拟内存在逻辑上是相同的。请记住,虽然这种观点可能有助于理解两个概念之间的关系,但它并不完全准确,因为完全可以在没有虚拟内存的情况下运行,只需物理内存(事实上,大多数嵌入式系统都运行这边走)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)