Multihilo

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

Las unidades centrales de procesamiento con capacidad para multihilo (multithreading en inglés) tienen soporte en hardware para ejecutar eficientemente múltiples hilos de ejecución.

El paradigma de multihilo ha llegado a ser más popular a medida que los esfuerzos para llevar más adelante el paralelismo a nivel de instrucción se han atascado desde finales de los años 1990. Esto permitió que reemergiera a una posición destacada el concepto del computación de rendimiento a partir del más especializado campo del procesamiento transaccional:

  • Aunque es muy difícil acelerar un solo hilo o un solo programa, la mayoría de los sistemas de computadores son realmente multitarea entre múltiples hilos o programas.
  • Las técnicas que permitirían acelerar el rendimiento total del procesamiento del sistema en todas las tareas (tasks) darían como resultado un aumento significativo del rendimiento.

Las dos principales técnicas para computación de rendimiento son el multiproceso y el multihilo.

Una cierta crítica del multihilo incluye:

  • Los múltiples hilos pueden interferir uno con el otro al compartir recursos de hardware como cachés o Translation Lookaside Buffer (TLB).
  • Los tiempos de ejecución de un solo hilo no son mejorados, sino por el contrario, pueden ser degradados.
  • El soporte de hardware para multihilo es más visible al software que el multiprocesamiento, por lo tanto requiriendo más cambios tanto a las aplicaciones como el sistema operativo.

Las técnicas de hardware usadas para soportar multihilo a menudo paralelizan las técnicas de software usadas para la multitarea de los programas de computadora.