我一直在考虑在执行任何程序或查询时如何传递整个信息(data
)。
我使用的下图扩展了我的假设:
sectors
,sectors
分为blocks
。 Blocks
分为pages
,pages
包含page table
和sequence id
。 cache
中,以便更快地访问。cache
中找不到数据,则程序会检查Main Memory
,如果发生页面错误,则会进入磁盘存储。Virtual Memory
用作从RAM
到Disk Storage
的地址映射。答案 0 :(得分:1)
我认为你们正在混合太多东西。
所有数据都存储在磁盘存储中。
在大多数基于磁盘的操作系统中,所有用户数据(有时是内核数据)都存储在磁盘(某处)并映射到内存。
磁盘的整个盘片被分成许多扇区,扇区被分成块。块分为页面,页面包含在页面表和序列ID中。
没有
现在大多数磁盘都使用逻辑I / O,因此软件只能看到块,而不是轨道,扇区和盘片(如同以前那样)。
块仅存在于磁盘上。页面仅存在于内存中。块分为页面。
最常用的数据存储在缓存中,以便更快地访问。
有两种常见的缓存。我不知道你指的是哪个。一个是CPU缓存(硬件),另一个是操作系统维护的软件缓存。
如果在缓存中找不到数据,则程序会检查主内存,如果发生页面错误,则会进入磁盘存储。
没有
这听起来像是指CPU缓存。读取页表时会触发页面错误。
虚拟内存用作从RAM到磁盘存储的地址映射。
逻辑内存映射用于将逻辑页映射到物理页帧。虚拟内存用于将逻辑页映射到磁盘存储。