¿Qué es un bloqueo de software?
Un bloqueo de software es un problema informático que puede ocurrir en los sistemas multiprocesador. Este bloqueo puede hacer que el rendimiento de una computadora disminuya drásticamente y evitar el uso de la capacidad adicional del procesador. En las computadoras multiprocesador modernas, se debe utilizar un software de sistema operativo especial para evitar el mal funcionamiento del bloqueo de software.
La aparición del bloqueo de software fue descrita por primera vez por el científico de IBM ™ Stuart Madnick en 1968. En esta etapa inicial de la historia de la computadora, Madnick predijo que las computadoras personales se volverían más pequeñas y menos costosas en las próximas décadas, pero continuarían limitándose a las mismas velocidades de transferencia de datos. Esta predicción demostró ser principalmente correcta, y el poder útil de las computadoras a menudo aumenta simplemente agregando procesadores adicionales.
La causa principal del bloqueo de software no es un error per se, sino una característica. En una computadora con varios procesadores vinculados juntos, no hay ventaja en tener múltiples procesosEssors, cada uno manejando la misma información. De hecho, diferentes procesadores que intentan modificar una sola fuente de datos pueden dañar el registro original. Para evitar que múltiples unidades abran la misma información, solo se permite el acceso a un procesador mientras los componentes de procesamiento restantes están "bloqueados" del archivo.
Este método de bloqueo es efectivo para las computadoras con un bajo número de procesadores. Sin embargo, el enfoque se convierte en un problema en dispositivos con una amplia gama de unidades de procesamiento vinculadas. El bloqueo del software limita severamente la escalabilidad y la efectividad de agregar múltiples procesadores a las computadoras, porque hay límites para cómo se pueden distribuir los datos rápidos entre el espacio de almacenamiento y los procesadores.
ninguna máquina, incluida una computadora, es completamente eficiente; Esta ineficiencia inherente se agrava en las computadoras multiprocesador. Una computadora con dieciséis procesadores,Por ejemplo, podría tener uno de sus procesadores inactivos en todo momento porque los datos no se pueden distribuir tan rápido como sea necesario. En algún momento, la ineficiencia compuesta significa que ya no es útil expandir el número de procesadores en una computadora. Agregar mil procesadores a un sistema es inútil, ya que la velocidad de los datos es limitada y la mayoría de los procesadores redundantes estarían atascados en el bloqueo de software constante.
El bloqueo de software se puede minimizar utilizando un sistema operativo que está específicamente diseñado para múltiples procesadores. El software especializado puede dividir una fuente de datos en muchas piezas diferentes y distribuir estas porciones a los procesadores. Este enfoque reduce la necesidad de bloquear los procesadores, ya que cada unidad puede procesar un pequeño componente de los datos originales. Esencialmente, el software multiprocesador se asegura de que cada unidad de procesamiento siempre tenga una tarea y mantenga los datos que fluyen de una manera más distribuida y dispersa.