Articulo de referencia

Limitado a E/S

En informática , el término «limitado por E/S» se refiere a una condición en la que el tiempo necesario para completar un cálculo está determinado principalmente por el tiempo d...

En informática , el término «limitado por E/S» se refiere a una condición en la que el tiempo necesario para completar un cálculo está determinado principalmente por el tiempo de espera para que se completen las operaciones de entrada/salida , lo que puede compararse con el término « limitado por CPU» . Esta circunstancia surge cuando la velocidad a la que se solicitan los datos es menor que la velocidad a la que se consumen o, dicho de otro modo, se dedica más tiempo a solicitar datos que a procesarlos. [ 1 ]

La limitación de E/S es un problema inherente a la computación.

El estado de limitación de E/S se ha identificado como un problema en la informática prácticamente desde sus inicios. La arquitectura de Von Neumann , empleada en muchos dispositivos informáticos, contempla diversas soluciones posibles, como la implementación de una unidad central de procesamiento lógicamente independiente que, además de almacenar las instrucciones del programa, recupera datos reales, generalmente de la memoria principal , y utiliza estos datos más accesibles para su funcionamiento. Al finalizar el proceso, se reescriben los resultados en el almacenamiento original (normalmente la memoria principal ) .

Dado que los datos deben transferirse entre la CPU y la memoria a través de un bus con una velocidad de transferencia limitada , se produce un fenómeno conocido como el cuello de botella de Von Neumann . En pocas palabras, esto significa que el ancho de banda de datos entre la CPU y la memoria tiende a limitar la velocidad general de cálculo. En términos de la tecnología que compone un ordenador, el cuello de botella de Von Neumann predice que es más fácil acelerar la velocidad de cálculo de la CPU que suministrarle los datos necesarios para ello.

En la historia reciente, el cuello de botella de Von Neumann se ha hecho más evidente. La filosofía de diseño de las computadoras modernas se basa en una CPU y una memoria principal físicamente separadas. Es posible lograr que la CPU funcione a una alta velocidad de transferencia de datos porque estos se mueven entre ubicaciones dentro de ella a través de distancias minúsculas. Sin embargo, la separación física entre la CPU y la memoria principal requiere un bus de datos para mover datos a través de distancias relativamente largas, de centímetros o más. El problema de lograr que esta parte del sistema funcione con la suficiente rapidez para seguir el ritmo de la CPU ha sido un gran desafío para los diseñadores. [ 2 ]

El problema práctico consiste en limitar las operaciones de entrada/salida.

El estado de limitación de E/S se considera indeseable porque implica que la CPU debe detener su funcionamiento mientras espera que se carguen o descarguen datos de la memoria principal o del almacenamiento secundario . Dado que la mayor velocidad de cálculo es el objetivo principal de los nuevos diseños de ordenadores y que componentes como la CPU y la memoria son costosos, existe una necesidad imperiosa de evitar los estados de limitación de E/S, y su eliminación puede generar una mejora del rendimiento más económica que la actualización de la CPU o la memoria.

A medida que la CPU se vuelve más rápida, los procesos tienden a depender más de las operaciones de entrada/salida.

O en términos más sencillos:

A medida que la CPU se vuelve más rápida, los procesos tienden a no aumentar su velocidad en proporción a la velocidad de la CPU porque dependen cada vez más de las operaciones de entrada/salida (E/S).

Esto significa que los procesos limitados por E/S son más lentos que los procesos que no lo están, no más rápidos. Esto se debe al aumento de la velocidad de procesamiento de datos en el núcleo, mientras que la velocidad a la que se transfieren los datos desde el almacenamiento al procesador no aumenta en consecuencia. A medida que aumenta la velocidad del reloj de la CPU, lo que permite ejecutar más instrucciones en un intervalo de tiempo determinado, el factor limitante de la ejecución efectiva es la velocidad a la que las instrucciones pueden enviarse al procesador desde el almacenamiento y desde el procesador a su destino. En resumen, los programas tienden naturalmente a depender cada vez más de las operaciones de E/S. [ 3 ]

Comparación con la CPU limitada

Supongamos que tenemos un proceso que consume mucha CPU y muchos procesos que consumen mucha E/S. A medida que los procesos fluyen por el sistema, puede darse el siguiente escenario: el proceso que consume mucha CPU la obtiene y la mantiene. Durante este tiempo, todos los demás procesos terminan sus operaciones de E/S y se colocan en la cola de listos, esperando la CPU. Mientras los procesos esperan en la cola de listos, los dispositivos de E/S están inactivos. Finalmente, el proceso que consume mucha CPU termina su ráfaga de CPU y se mueve a un dispositivo de E/S. Todos los procesos que consumen mucha E/S, que tienen ráfagas de CPU cortas, se ejecutan rápidamente y vuelven a las colas de E/S. En este punto, la CPU está inactiva. El proceso que consume mucha CPU vuelve entonces a la cola de listos y se le asigna la CPU. De nuevo, todos los procesos de E/S terminan esperando en la cola de listos hasta que el proceso que consume mucha CPU termine. Se produce un efecto de convoy, ya que todos los demás procesos esperan a que el proceso grande deje de usar la CPU. Este efecto resulta en una menor utilización de la CPU y los dispositivos de la que sería posible si se permitiera que los procesos más cortos se ejecutaran primero. [ 4 ]

Véase también

Referencias

  1. Identificación de sistemas limitados por E/S de disco
  2. Blog de Erik Engbrecht: ¿Qué significa realmente "límite de E/S"?
  3. slebetman . "why-io-bound-processes-are-faster" . Consultado el 9 de agosto de 2014 .
  4. Silberschatz, Abraham; Galvin, Peter B.; Gagne, Greg (2013). Conceptos de sistemas operativos . Vol. 9. John Wiley & Sons. ISBN  978-1-118-06333-0.