2011-04-08 6 views
7

Si un disco tiene algunos problemas, el controlador de disco generalmente lo vuelve a intentar. Por ejemplo, a veces el controlador SCSI de Linux obtendrá el estado BUSY de las unidades SCSI y reenviará el IO. Las capas superiores (por ejemplo, FS) esperarán hasta que: 1. El controlador de disco no pueda manejar el error de IO e informar directamente el error. 2. El controlador de disco aún reintenta pero se agota el tiempo de espera.Valor de tiempo de espera de IO para Linux y Windows?

Mi pregunta es ¿cuál es el valor del tiempo de espera en las plataformas Windows y Linux? Por ejemplo, si invoco "escribir" para enviar algunos datos al disco de forma síncrona, ¿cuánto tiempo devolverá la llamada al sistema si realmente no puede escribir datos?

Gracias!

+1

Esto podría obtener mejores respuestas si lo hace específico para un sistema operativo u otro. ¿Tal vez dividirlo en dos preguntas una para Linux y otra para Windows? Dudo que muchos expertos de Linux también tengan conocimiento experto de Windows. –

+0

No solo es específico para el sistema operativo, sino también específico para el controlador. –

+0

... y específico para el tipo de E/S. Pero aún así, para los IRP en Windows también existe un límite estricto. Eso recuerdo. – 0xC0000022L

Respuesta

2

Como señala Brian, depende del conductor. La escritura regresa cuando el conductor se da por vencido. Cómo y por qué el conductor se da por vencido depende del dispositivo y del conductor. No hay tiempo de espera, per se, como las lecturas a menudo tienen.

+0

No del todo, pero casi. En Windows, que yo sepa, los IRP pendientes, si no están marcados como pendientes, serán cancelados por el administrador de E/S después de un tiempo. Todavía +1. Bienvenido. – 0xC0000022L

1

En Linux, se puede obtener el valor de tiempo de espera de IO de cada dispositivo de bloque leyendo el valor en:

/sys/block/mydevice/dispositivo/tiempo de espera

Por defecto, el valor es 60s.

Cuestiones relacionadas