【问题标题】:What is Page fault service time?什么是页面错误服务时间?
【发布时间】:2023-04-04 00:24:01
【问题描述】:

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

平均内存访问时间 = prob.无页面错误(内存访问时间) + 概率。缺页次数(缺页服务时间)

我的疑问是缺页服务时间包括什么?

据我所知,

TLB 或页表中存在首地址转换,但是当页表中没有找到条目时,则表示发生了缺页。因此,我必须从磁盘中获取所有条目,并在 TLB 和页表中更新所有条目。

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

请有人确认一下?

【问题讨论】:

    标签: operating-system


    【解决方案1】:

    您所描述的是学术公牛____。有很多因素,以至于像这样的简单方程并不能描述访问时间。尽管如此,还是有一些愚蠢的操作系统书籍提出了这样的内容,听起来很聪明(教授们喜欢在考试题中使用它)。

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

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

    那么你有缺页服务时间。有软页错误和硬页错误。需求零页面上的页面错误与必须从磁盘加载的页面错误的时间不同。磁盘访问是缓存还是不缓存?磁盘上有多少活动?

    哦,页表是分页的吗?如果是这样,是页表还是页本身的页错误?甚至可以两者兼而有之。

    处理页面错误:

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

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

    因此,page Fault服务时间=TLB时间+页表时间+从磁盘取页

    一点也不。

    【讨论】:

    • 缺页服务时间是否包括请求分页的内存访问时间?
    • 访问时间是多少?服务故障故障的时间从故障到达中断向量到从异常返回。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 2011-03-03
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    相关资源
    最近更新 更多