Siempre se ha sabido que las operaciones de disco son lentas y sabemos las razones por las que son lentas. Entonces, la pregunta aquí es ¿por qué tenemos que esperar E / S o por qué hay algo como IOWait, etc.?
Quiero decir, me di cuenta de que cuando haces algunas tareas de E / S en segundo plano, tu computadora básicamente se vuelve mucho más lenta, especialmente me di cuenta de que cuando usas Linux, si estás haciendo algunas tareas de E / S más largas , el sistema operativo se vuelve casi inutilizable hasta que se completen.
De hecho, también encontré este tema en un artículo, hay un fragmento:
La espera de E / S es del 12,1%. Este servidor tiene 8 núcleos (a través de cat / proc / cpuinfo). Esto está muy cerca de (1/8 núcleos = 0.125)
Básicamente significa que está ralentizando mucho la computadora, ¿por qué es eso? Quiero decir, está bien, ahora la computadora normal tiene al menos 2 núcleos, a veces 4 o a veces tienen más debido a hyperthreading o algo así. Pero ahora la pregunta es ¿por qué la CPU realmente tiene que permanecer allí, prácticamente sin hacer nada más que solo esperar IO? Me refiero a la idea básica o la arquitectura de la gestión del proceso, ahora no sé si es el sistema operativo el responsable de eso, o si se trata de la parte del hardware, pero debería ser posible que la CPU espere o no verifique regularmente, mientras realiza muchas otras tareas y solo regresa al proceso IO cuando está listo. De hecho, si esa es una tarea tan difícil y la CPU tendría que esperar, ¿por qué no? ¿Eso gestionado por hardware de manera más eficiente entonces? Por ejemplo, podría haber algún tipo de mini CPU que simplemente lo esperaría y entregaría la pequeña parte de los datos a la CPU real tan pronto como vuelva al proceso, por lo que el proceso se repetiría y no tendríamos para dedicar prácticamente todo un núcleo de CPU para el proceso de copia de datos ... ¿O sería yo quien debería inventar este tipo de cosas y obtener un premio nobel por eso? : S
Ahora bien, realmente lo estoy poniendo desde la perspectiva de los observadores y realmente no he profundizado tanto en el tema, pero realmente no entiendo por qué la CPU tiene que funcionar con la velocidad del HDD, aunque podría hacer otra cosa y volver a HDD una vez que esté listo. La idea no es acelerar la aplicación que necesita esa operación de E / S o el proceso de copia o lo que sea, sino la idea es afectar mínimamente el consumo de CPU mientras se realiza esa operación, para que el sistema operativo pueda utilizarla para otros procesos y el usuario no tendría que sentir un retraso general de la computadora al hacer algunas operaciones de copia ...