2011-04-08 51 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。