Programación en sistemas multiprocesador

En un sistema de un solo procesador, las hebras se ejecutan una tras otra de forma temporal. Esto contrasta con un sistema multiprocesador, donde varias hebras se ejecutan al mismo tiempo, una en cada procesador disponible. El rendimiento global se puede mejorar ejecutando distintas hebras de proceso en distintos procesadores. Sin embargo, un programa individual no puede aprovechar el multiproceso, a menos que tenga varias hebras.

El multiproceso no es aparente para la mayoría de los usuarios porque lo maneja completamente el sistema operativo y los programas que ejecuta. Los usuarios pueden vincular sus procesos (forzarlos a que se ejecuten en un determinado procesador); sin embargo, esto no es necesario, ni recomendado para un uso ordinario. Incluso para la mayoría de los programadores, aprovechar el multiproceso simplemente equivale a utilizar varios hilos. Por otro lado, los programadores del kernel tienen que lidiar con varios problemas al portar o crear código para sistemas multiprocesador.