multithreading y multiprocesamiento son términos asociados con la velocidad con que se ejecutan los programas de ordenador . Ambos son métodos que requieren un matrimonio de conocimientos de programación y desarrollo de hardware con el fin de ser utilizados correctamente. Los dos términos no siempre son mutuamente excluyentes, sino que se utilizan en tándem para aumentar la eficiencia de un ordenador . Diferencias Hardware
multiprocesamiento requiere , como su nombre lo indica, múltiples núcleos de procesamiento físicos. Anteriormente, varias placas de procesador viene con varias ranuras separadas a unidades centrales de procesamiento ( CPU de entrada ) . Hoy en día, las tecnologías más recientes de fabricantes como AMD e Intel permiten múltiples núcleos de procesamiento que se construirá en una sola CPU "chip ". Multithreading no es del todo sin su propio hardware, pero sólo requiere motherboards que admiten las instrucciones de código multihilo . La mayoría de las placas base modernas incluyen esta capacidad.
Programa Individual Versus Sistema
Programadores Operativos utilizar la herramienta multithreading establece para permitir que los programas para llevar a cabo varias tareas en paralelo . Este procesamiento " tubería " dar la ilusión de dos funciones que ocurren simultáneamente , pero en realidad utiliza la alta cantidad de potencia de procesamiento y algoritmos eficientes para alternar rápidamente entre una función y otra . Como tal , el uso de múltiples hilos depende del código del programa en sí .
Multiprocesamiento , por el contrario , tiene un acceso más transparente a la energía de múltiples corrientes de tratamiento . Un acceso programar funciones multiprocesamiento individuales bajo los auspicios del sistema operativo, como Mac OS de Apple o Microsoft Windows . Como tal , los programas no necesitan ser especialmente optimizados con comandos multithreading para utilizar el poder de procesamiento paralelo. Multithreading en realidad se puede utilizar en conjunción con multiprocesamiento .
Independiente contra Pipeline Procesamiento
multiproceso y multihilo difieren fundamentalmente en cómo se procesan las instrucciones del programa. En multiprocesamiento , dos o más instrucciones que pueden ser ejecutadas al mismo tiempo , a través de un proceso conocido como " procesamiento en paralelo . " Multithreading , sin embargo , abre tuberías individuales para cada instrucción , y distribuye la potencia de procesamiento entre las tuberías periódicamente .
Esta diferencia es en gran medida imperceptible cuando la carga del procesador es pequeño. Sin embargo , las instrucciones de uso intensivo del procesador simultáneas comenzarán a tartamudear en un entorno multi-hilo puro. Las mismas funciones serán más inmunes a estos efectos en un entorno multiproceso .
Error Corrección
multithreading abre corrientes distintas dentro de un mismo proceso. Las corrientes se parecen a los procesos individuales , pero utilizan un espacio de direcciones compartida en la memoria del ordenador dentro del mismo proceso . Multiprocesamiento , sin embargo , abre múltiples procesos para realizar funciones simultáneas y estos procesos cada uno recibe su propia parcela de la memoria. Cuando un solo proceso falla en un entorno de multiprocesamiento , se libran de todos los otros procesos , sin embargo , los fallos en un individuo "hilos" no está aislada de otros temas , y en última instancia reducir todo el proceso . El resultado es la posibilidad de fallas mayores en condiciones multithreading .