首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是页面故障服务时间?

什么是页面故障服务时间?
EN

Stack Overflow用户
提问于 2016-10-13 17:26:16
回答 1查看 5.5K关注 0票数 0

我正在阅读操作系统,对页面错误服务时间有疑问吗?

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

我怀疑页面故障服务时间包括哪些内容?

据我说,

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

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

有人确认一下吗?

EN

回答 1

Stack Overflow用户

发布于 2016-10-13 18:59:46

你所描述的是学术Bulls____。有如此多的因素,这样一个简单的方程不能描述访问时间。尽管如此,还是有一些愚蠢的操作系统书籍会发布这样的东西来听起来很有智慧(教授们也喜欢它来回答试题)。

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

那么你就有了内存访问时间。这也不是固定不变的。访问缓存内存位置比非缓存位置更快.访问由多个处理器共享和互锁的内存比较慢。这也不是常数。

那么您就有了页面故障服务时间。有软页错误和硬页错误。对于必须从磁盘加载的页,需求零页上的页故障在时间上是不同的。磁盘访问是缓存的还是未缓存的?磁盘上有多少活动?

页表被传呼了吗?如果是的话,是页面表上的页面错误还是页面本身的错误?两者都有可能。

维护页面错误:

  1. 进程输入异常和中断处理程序。
  2. 中断处理程序会分派给页面错误处理程序。
  3. 页面错误处理程序必须找到存储页面的位置。
  4. 如果页在内存中(已被分页,但未写入磁盘),则处理程序只需更新页表。
  5. 如果页面不在内存中,处理程序必须查找存储页面的位置(这是特定于系统和内存类型的)。
  6. 系统必须为内存分配物理页帧。
  7. 如果这是对需求零页的第一次引用,则不需要从磁盘读取,只需将所有内容设置为零。
  8. 如果该页位于磁盘缓存中,则从该缓存获取该页。
  9. 否则,将页从磁盘读取到页帧。
  10. 酌情重置进程的寄存器。
  11. 返回用户模式
  12. 重新启动导致错误的指令。(上述所有内容都有总体简化。)

TLB实际上与此无关,只是如果所讨论的页面表条目在TLB中,则服务时间会稍微快一些。

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

不用谢。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40027359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档