Threads

Threads

de Silvia Natali Alvarez Diaz -
Número de respuestas: 2

Buenas,

Tenemos duda sobre los distintos hilos.

Cuando es M*1 entendemos que los hilos se ejecutan secuencialmente debido a que el SO los reconoce como un solo proceso, y cuando un hilo del mismo proceso se bloquea los demas quedan bloqueados. En 1*1 los hilos se pueden ejecutar concurrentemente ya que el SO reconoce c/u como un proceso diferente  y al bloquearse uno los demas no se bloquean y pueden seguir ejecutandose. Esto es correcto?

En cuanto a M*N , podrian comentarnos cual es su comportamiento?

Gracias.

En respuesta a Silvia Natali Alvarez Diaz

Re: Threads

de Diego Esmir Gonzalez Morales -

En M*1 es cierto que el SO reconoce todos los hilos como un solo proceso, pero éstos no se ejecutan secuencialmente, sino que lo harán concurrentemente. Esto es debido al planificador de usuario, que podrá conmutar entre las ejecuciones de hilos a nivel de usuario. Pero sí es cierto que si se bloquea un hilo, lo harán todos los demás debido a que se bloquea el proceso entero, ya que ese proceso es en realidad un solo hilo a nivel de sistema, que es lo que importa a la hora del bloqueo.

En 1*1, el SO no reconoce cada hilo como un proceso diferente, sino que son un hilo diferente: la unidad de ejecución de la CPU no son procesos, son hilos; lo que decís está bien, pero su justificación no es técnicamente correcta.


En M*N se tiene que la cantidad de hilos reconocidos por el sistema es independiente a los creados a nivel de usuario, y por tanto, podés pensar que hay dos niveles de planificación (y bloqueos): uno a nivel de usuario y otro a nivel de sistema. A efectos prácticos desde el punto de vista de la CPU, lo que importa es lo que reconozca el sistema, y los bloqueos en ese sentido se harán a nivel de hilos de sistema (aunque claro, de la perspectiva del proceso de usuario, se sucederán a un conjunto de hilos a nivel de usuario, y vaya uno a saber cuáles, ya que serán aquellos que el sistema haya considerado para "confeccionar" un hilo a nivel de sistema).

Espero que no haya quedado muy entreverado :P

¡Saludos!