gpt4 book ai didi

c - x86_64中中断的开销是多少

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:19 25 4
gpt4 key购买 nike

x86_64 中中断的开销是多少。例如由于页面错误引起的中断?内核服务中断然后返回用户空间需要多少周期?我只想知道中断和调度被中断的用户级线程的成本,所以我们可以忽略中断处理程序内部发生的事情。

最佳答案

对于普通中断(硬件 IRQ 或普通异常,如被零除),可能会给出一个上限。

即使不涉及磁盘 IO,处理页面错误的时间也特别难以评估,因为 CPU 必须遍历页表,这会引入许多变量。页面错误的发生不仅是因为页面不存在,还因为访问冲突(例如,试图写入只读页面)。在任何情况下,如果页面映射不存在于 TLB 中(丢失的映射永远不会被缓存),CPU 将首先必须遍历多个级别的页表,然后才能调用页面错误处理程序。访问页表条目的时间(如果地址尚未缓存在 TLB 中)再次取决于某些条目是否已在数据缓存中。

因此,从访问线性地址到调用 PF 处理程序的时间可能是大约 200 个周期(最好的情况;存在 TLB 条目,由于错误的访问类型引起的异常——只是环切换)到大约 2000 个周期(没有 TLB条目存在,数据缓存中没有页表条目)。这只是 1) 执行出错的用户模式指令和 2) 执行页面错误处理程序的第一条指令之间的时间。

[旁注:鉴于此,我想知道是否有可能构建使用分页的硬实时系统。]

关于c - x86_64中中断的开销是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10282136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com