En los sistemas operativos tradicionales, cada proceso tiene su propio espacio de direcciones y un único flujo (hilo) de control. Sin embargo, hay situaciones en las que es deseable contar con múltiples hilos de control (threads) en el mismo espacio de direcciones ejecutándose quasi-paralelamente, como si fueran procesos separados.
El Modelo de los Threads
Se basa en dos conceptos: el agrupamiento de los recursos y la ejecución secuencial de un programa.
Una forma de ver un proceso es que es una manera de agrupar juntos recursos relacionados.
Un proceso tiene un espacio de direcciones conteniendo código y datos del programa, así como otros recursos. Poniendo juntos todos esos recursos en la forma de un proceso, es posible gestionarlos más fácilmente.
El otro concepto que incluye un proceso es el de hilo de ejecución (thread). Aunque un thread debe ejecutarse en algún proceso, el thread y su proceso son conceptos diferentes y pueden tratarse de forma separada. Los procesos se utilizan para agrupar recursos juntos; los threads son las entidades planificadas para su ejecución en la CPU.





