io 请求何时从 io 队列中删除?

发布于 2024-10-07 21:36:45 字数 157 浏览 7 评论 0原文

Linux RH5.4操作系统,ext3文件系统 在时间T1,当我读/写一个文件时,ai/o请求将被发送到操作系统(磁盘?)工作队列,假设磁盘花费10毫秒来服务这个请求,现在时间是T2=T1+10ms, 那么问题是:请求何时从操作系统(磁盘?)工作队列中删除?在T1还是T2?

谢谢。

Linux RH5.4 OS, ext3 file system
In time T1, when i read/write a file, a i/o request will be send to OS(disk?) working queue, suppose the disk spend 10 ms to serve this request, now the time is T2=T1+10ms,
then the question is: When the request was removed from OS(disk?) working queue? at T1 or T2?

thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

-小熊_ 2024-10-14 21:36:45

直到大约 2.6.31 为止,由每个单独的设备驱动程序决定何时从内核请求队列中删除请求。

在更新的内核中,当驱动程序检索请求并将其发送到设备时,请求始终从队列中删除。

如果磁盘有队列(即 ATA NCQ),则从驱动程序将请求放置在那里开始,请求将一直保留在磁盘队列中,直到驱动程序用稍后的请求覆盖它(在磁盘发出第一个请求完成的信号之后) 。磁盘队列并不是严格意义上的队列,因为没有头或尾,它只是一个可以独立启动的命令槽池。

Up until about 2.6.31, it was up to each individual device driver to decide when to remove requests from the kernel request queue.

In more recent kernels, requests are always removed from the queue as the driver retrieves them to send to the device.

If the disk has a queue (i.e. ATA NCQ), a request will remain in the disk's queue from the time when the driver places it there until the driver overwrites it with a later request (after the disk has signalled completion of the first request). Disk queues aren't strictly queues as there is no head or tail, it's just a pool of command slots that can be started independently.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文