什么是页面错误服务时间?

时间:2016-10-13 17:26:16

标签: operating-system

我正在阅读操作系统并对页面故障服务时间有疑问?

平均内存访问时间=概率。没有页面错误(内存访问时间)                      +  概率。页面错误(页面错误服务时间)

我怀疑页面故障服务时间包括什么?

据我说,

TLB或Page表中存在第一个地址转换,但是当在页表中找不到条目时,表示发生了页面错误。因此,我必须从磁盘中获取并在TLB和页面表中更新所有条目。

因此,页面故障服务时间= TLB时间+页面表时间+从磁盘读取页面

有人确认了吗?

1 个答案:

答案 0 :(得分:2)

你所描述的是学术公牛_____。有很多因素,像这样的简单方程没有描述访问时间。尽管如此,还是有一些愚蠢的操作系统书籍,这些书籍能够证明知识产权(以及教授喜欢考试的问题)。

这些白痴试图说的是页面引用将在内存中或不在内存中,两个概率加起来为1.0。这完全没有意义,因为相对概率是动态的。如果其他进程开始使用内存,则页面错误的可能性会增加,如果其他进程停止使用内存,则概率会下降。

然后你有内存访问时间。这也不是一成不变的。访问高速缓存的内存位置比非高速缓存的位置更快。访问由多个处理器共享并且互锁的内存较慢。这也不是一个常数。

然后你有页面错误服务时间。有软页面和硬页面错误。对于必须从磁盘加载的页面,请求零页面上的页面错误在时间上是不同的。磁盘访问是缓存还是未缓存?磁盘上有多少活动?

哦,页面表是否已分页?如果是这样,页面表或页面本身是否有页面错误?它甚至可能都是。

处理页面错误:

  1. 进程进入异常和中断处理程序。
  2. 中断处理程序将调度到页面错误处理程序。
  3. 页面错误处理程序必须找到页面的存储位置。
  4. 如果页面在内存中(已被页面调出但未写入磁盘),则处理程序只需更新页面表。
  5. 如果页面不在内存中,则处理程序必须查找页面存储的位置(这是系统和特定于内存的类型)。
  6. 系统必须为内存分配一个物理页面框架。
  7. 如果这是对需求零页面的第一次引用,则无需从磁盘读取,只需将所有内容设置为零。
  8. 如果页面位于磁盘缓存中,请从该页面获取该页面。
  9. 否则请从磁盘读取页面到页面框架。
  10. 根据需要重置进程的寄存器。
  11. 返回用户模式
  12. 重新启动导致故障的指令。 (以上所有都有大致简化。)
  13. TLB与此没有任何关系,只是如果有问题的页表条目在TLB中,服务时间会略微加快。

      

    因此,页面错误服务时间= TLB时间+页面表时间+从磁盘读取页面

    完全没有。