En informática , el límite de E / S se refiere a una condición en la que el tiempo que lleva completar un cálculo está determinado principalmente por el período de espera para completar las operaciones de entrada / salida . Esto es lo opuesto a que una tarea esté vinculada a la CPU . Esta circunstancia surge cuando la velocidad a la que se solicitan los datos es más lenta que la velocidad a la que se consumen o, en otras palabras, se dedica más tiempo a solicitar datos que a procesarlos. [1]
La E / S vinculada como un problema inherente a la informática
El estado vinculado de E / S se ha identificado como un problema en la informática casi desde sus inicios. La arquitectura de Von Neumann , que es empleada por muchos dispositivos informáticos, implica múltiples soluciones posibles, como implementar una unidad de procesador central lógicamente separada que, junto con el almacenamiento de las instrucciones del programa, también recupera datos reales generalmente de la memoria principal y hace uso de esto. datos accesibles para trabajar. Cuando finaliza el proceso, vuelve a escribir los resultados en el almacenamiento original (generalmente la memoria principal ).
Dado que los datos deben moverse entre la CPU y la memoria a lo largo de un bus que tiene una velocidad de transferencia de datos limitada , existe una condición que se conoce como 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 real que compone una computadora, Von Neumann Bottleneck predice que es más fácil hacer que la CPU realice cálculos más rápido que suministrarle datos a la velocidad necesaria para que esto sea posible.
En la historia reciente, el cuello de botella de Von Neumann se ha vuelto 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 hacer que la CPU funcione a una alta velocidad de transferencia de datos porque los datos se mueven entre ubicaciones dentro de ellos a través de pequeñas distancias. Sin embargo, la separación física entre la CPU y la memoria principal requiere un bus de datos para mover datos a distancias comparativamente largas de centímetros o más. El problema de hacer que esta parte del sistema funcione lo suficientemente rápido para mantenerse al día con la CPU ha sido un gran desafío para los diseñadores. [2]
El enlace de E / S como problema práctico
El estado vinculado de E / S se considera indeseable porque significa que la CPU debe detener su operación mientras espera que se carguen o descarguen datos de la memoria principal o del almacenamiento secundario . Dado que la velocidad de cálculo más rápida es el objetivo principal de los nuevos diseños y componentes de computadoras, como la CPU y la memoria, que son costosos, existe un fuerte imperativo de evitar los estados vinculados de E / S y eliminarlos puede producir una mejora más económica en el rendimiento que actualizar la CPU. o memoria.
A medida que la CPU se vuelve más rápida, los procesos tienden a estar más ligados a E / S
O en términos más simples:
A medida que la CPU se vuelve más rápida, los procesos tienden a no aumentar en velocidad en proporción a la velocidad de la CPU porque se limitan más a E / S.
Esto significa que los procesos vinculados a E / S son más lentos que los procesos no vinculados a E / S, no más rápidos. Esto se debe a los aumentos en 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 con ella. A medida que aumenta la velocidad del reloj de la CPU, lo que permite que se ejecuten más instrucciones en una ventana de tiempo determinada, el factor limitante de la ejecución efectiva es la velocidad a la que las instrucciones pueden entregarse al procesador desde el almacenamiento y enviarse desde el procesador a su destino. En resumen, los programas cambian naturalmente para estar cada vez más ligados a E / S. [3]
Comparación con CPU-bound
Supongamos que tenemos un proceso vinculado a la CPU y muchos procesos vinculados a la E / S. A medida que los procesos fluyen por el sistema, puede producirse el siguiente escenario. El proceso vinculado a la CPU obtendrá y mantendrá la CPU. Durante este tiempo, todos los demás procesos finalizarán su E / S y se moverán a la cola lista, esperando la CPU. Mientras los procesos esperan en la cola lista, los dispositivos de E / S están inactivos. Finalmente, el proceso vinculado a la CPU finaliza su ráfaga de CPU y se mueve a un dispositivo de E / S. Todos los procesos vinculados a E / S, que tienen ráfagas cortas de CPU, se ejecutan rápidamente y vuelven a las colas de E / S. En este punto, la CPU permanece inactiva. El proceso vinculado a la CPU volverá a la cola lista y se le asignará la CPU. Nuevamente, todos los procesos de E / S terminan esperando en la cola lista hasta que finalice el proceso vinculado a la CPU. Hay un efecto de convoy ya que todos los demás procesos esperan a que el gran proceso salga de la CPU. Este efecto da como resultado una menor utilización de la CPU y del dispositivo de lo que sería posible si se permitiera que los procesos más cortos fueran primero. [4]
Ver también
Referencias
- ^ Identificación de sistemas vinculados a E / S de disco
- ^ Blog de Erik Engbrecht: ¿Qué significa realmente el enlace de E / S?
- ^ slebetman . "¿Por qué-los-procesos-enlazados-son-más-rápidos" . Consultado el 9 de agosto de 2014 .
- ^ Silberschatz, Abraham; Galvin, Peter B .; Gagne, Greg (2013). Conceptos del sistema operativo . 9 . John Wiley e hijos. ISBN 978-1-118-06333-0.