¿Qué es un bloqueo de software?
Un bloqueo de software es un problema informático que puede ocurrir en sistemas multiprocesador. Este bloqueo puede hacer que el rendimiento de una computadora disminuya drásticamente y evitar el uso de capacidad de procesador adicional. En las computadoras multiprocesador modernas, se debe utilizar un software de sistema operativo especial para evitar el mal funcionamiento del bloqueo del software.
La ocurrencia del bloqueo del software fue descrita por primera vez por el científico de IBM ™ Stuart Madnick en 1968. En esta etapa temprana 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 seguirían limitándose a aproximadamente las mismas velocidades de transferencia de datos. Esta predicción demostró ser mayormente correcta, y la potencia útil de las computadoras a menudo se incrementa simplemente agregando procesadores adicionales.
La causa principal del bloqueo del software no es un error per se, sino una característica. En una computadora con varios procesadores unidos, no hay ninguna ventaja en tener múltiples procesadores 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 varias unidades abran la misma información, solo se permite el acceso a un procesador, mientras que los componentes de procesamiento restantes están "bloqueados" del archivo.
Este método de bloqueo es efectivo para 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 de software limita severamente la escalabilidad y la efectividad de agregar múltiples procesadores a las computadoras, porque hay límites a la rapidez con que se pueden distribuir los datos 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 inactivo en todo momento porque los datos no pueden distribuirse 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 atrapados en un bloqueo constante del software.
El bloqueo del software se puede minimizar mediante el uso de un sistema operativo diseñado específicamente para múltiples procesadores. El software especializado puede dividir una fuente de datos en muchas partes 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 mantiene el flujo de datos de una manera más distribuida y uniformemente dispersa.