执行程序时的整个内存周期

时间:2015-12-12 08:26:08

标签: caching memory memory-management computer-science virtual-memory

我一直在考虑在执行任何程序或查询时如何传递整个信息(data)。

我使用的下图扩展了我的假设:

enter image description here

  • 所有数据都存储在磁盘存储中。
  • 整个磁盘分为多个sectorssectors分为blocksBlocks分为pagespages包含page tablesequence id
  • 最常用的数据存储在cache中,以便更快地访问。
  • 如果在cache中找不到数据,则程序会检查Main Memory,如果发生页面错误,则会进入磁盘存储。
  • Virtual Memory用作从RAMDisk Storage的地址映射。
你觉得我在这里遗失了什么吗?关于内存管理如何工作,我的假设是否正确?将感谢任何有用的评论。谢谢

1 个答案:

答案 0 :(得分:1)

我认为你们正在混合太多东西。

  

所有数据都存储在磁盘存储中。

在大多数基于磁盘的操作系统中,所有用户数据(有时是内核数据)都存储在磁盘(某处)并映射到内存。

  

磁盘的整个盘片被分成许多扇区,扇区被分成块。块分为页面,页面包含在页面表和序列ID中。

没有

现在大多数磁盘都使用逻辑I / O,因此软件只能看到块,而不是轨道,扇区和盘片(如同以前那样)。

块仅存在于磁盘上。页面仅存在于内存中。块分为页面。

  

最常用的数据存储在缓存中,以便更快地访问。

有两种常见的缓存。我不知道你指的是哪个。一个是CPU缓存(硬件),另一个是操作系统维护的软件缓存。

  

如果在缓存中找不到数据,则程序会检查主内存,如果发生页面错误,则会进入磁盘存储。

没有

这听起来像是指CPU缓存。读取页表时会触发页面错误。

  

虚拟内存用作从RAM到磁盘存储的地址映射。

逻辑内存映射用于将逻辑页映射到物理页帧。虚拟内存用于将逻辑页映射到磁盘存储。