2011-04-08 25 views
7

如果磁盘有问题,磁盘驱动程序通常会重试它。例如,有时Linux SCSI驱动程序将从SCSI驱动器获得BUSY状态并重新发送IO。上层(例如FS)将等到: 1.磁盘驱动程序无法处理IO错误并直接报告错误。 2.磁盘驱动程序仍然重试但发生超时。Linux和Windows的IO超时值?

我的问题是,Windows和Linux平台的超时值是多少?例如,如果我调用“write”同步发送一些数据到磁盘,如果系统调用不能真正写入数据,系统调用将返回多长时间?

谢谢!

+1

这可能会得到更好的答案,如果你使它特定于一个操作系统或其他。也许把它分成两个问题一个用于Linux和一个用于Windows?我怀疑许多Linux专家也会拥有专业的Windows知识。 – 2011-04-08 13:57:48

+0

不只是特定于操作系统,而是特定于驱动程序本身。 – 2011-04-18 04:18:15

+0

...并且特定于I/O的类型。但是,对于Windows中的IRP,也存在硬性限制。我记得那么多。 – 0xC0000022L 2011-04-21 13:32:17

回答

2

正如布莱恩指出的那样,它依赖于驱动程序。当司机放弃时写回。驾驶员放弃的方式和原因取决于驾驶员和设备。本身没有超时,就像阅读经常有的那样。

/SYS /块/ mydevice在 /设备/超时

默认情况下,该值是:

+0

不完全,但几乎。在Windows上,据我所知,未完成的IRP如果未被标记为挂起,将在一段时间后被I/O管理器取消。仍+1。欢迎。 – 0xC0000022L 2011-04-21 13:31:15

1

在Linux上,你可以通过阅读价值得到每个块设备的IO超时值60。