所以我在计算机体系结构课程中,我想我很难区分缓存和页面。
我能想到的唯一解释是,页面是操作系统欺骗程序的方式,它在指定的内存区域中完成所有工作,而缓存内存是硬件操纵它正在读取的操作系统的方式从一个指定的记忆区域,当它真的不是。
操作系统是否指向需要“新页面”的硬件,或者由os尝试读取当前缓存“页面”的“超出范围”的地址(由于缺少更好的术语)。
我是在正确的轨道还是我完全疯了?
答案 0 :(得分:8)
缓存和页面是正交概念。
缓存是一种高速“内存”,用于最大限度地减少对大型低速“内存”的访问次数。从最普遍的意义上讲,高速“内存”可能是您的硬盘,用于缓存从Web获取的网页(低速“内存”)。当然,在计算机体系结构的上下文中,术语“缓存”更可能是指用于加速访问较慢的RAM或磁盘的物理RAM。
页面,OTOH,只是RAM或磁盘内容的管理单元。
这两个概念在实现虚拟内存系统时结合在一起。进程可以分配500 MB的内存。这可能更多的是物理RAM可用于给进程,因此操作系统在磁盘上分配块称为页面,这将在进程的地址空间中保存某些逻辑页面的内容。
当进程访问其地址空间中的某个位置,并且关联的页面当前未映射到物理内存时,CPU会发出页面错误信号,并且操作系统通过从进程所在的磁盘读取页面进行响应暂停状态。映射页面后,进程将恢复并能够访问该内存位置,就像它一直存在一样。
虚拟内存是一种欺骗过程的一种常见观点,认为它有大量的RAM并不是思考这个问题的唯一方法。您还可以将进程的地址空间视为逻辑上存储在磁盘页面上,操作系统辅助映射到RAM只是缓存这些页面内容的一种方式,这样进程就不会持续访问硬盘驱动器。从这个意义上讲,缓存和分页虚拟内存在逻辑上是一回事。请记住,虽然这个观点可能有助于理解这两个概念之间的关系,但它并不完全准确,因为它可以在没有虚拟内存的情况下运行,只需要物理内存(事实上,大多数嵌入式系统运行)这样)。