【问题标题】:Whole memory cycle in executing a program执行程序的整个内存周期
【发布时间】:2015-12-12 08:26:07
【问题描述】:

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

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

  • 所有数据都存储在磁盘存储中。
  • 整个盘片分为多个sectorssectors又分为blocksBlocks分为pagespages分别包含在page tablesequence id中。
  • 最常用的数据存储在cache,以便更快地访问。
  • 如果在cache 中未找到数据,则程序会检查Main Memory,如果发生页面错误,则将其放入磁盘存储。
  • Virtual Memory 用作从RAMDisk Storage 的地址映射。

你认为我在这里遗漏了什么吗?关于内存管理如何工作,我的假设是否正确?将感谢任何有用的 cmets。谢谢

【问题讨论】:

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


    【解决方案1】:

    我认为你把太多东西混在一起了。

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

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

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

    没有。

    现在大多数磁盘都使用逻辑 I/O,因此软件只能看到块,而不是磁道、扇区和盘片(就像在过去一样)。

    块只存在于磁盘上。页面只存在于内存中。块被分成页面。

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

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

    如果在缓存中没有找到数据,则程序去检查主存,如果发生缺页,则进入磁盘存储。

    没有。

    这听起来像是您指的是 CPU 缓存。读取页表时会触发缺页。

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

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

    【讨论】:

    • 你的评论很有帮助:)
    猜你喜欢
    • 1970-01-01
    • 2010-09-19
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 2012-09-10
    • 2015-11-24
    相关资源
    最近更新 更多