[Práctico 3] Ejercicio 19

[Práctico 3] Ejercicio 19

de Nicolas Tabare Tomeo Raspino -
Número de respuestas: 11

Tengo dudas con la solución planteada en la parte d dado que el ejercicio corresponde al examen de febrero 2011 (https://www.fing.edu.uy/inco/cursos/sistoper/examenes/2011/Sol2011FEB.pdf).  Dado que el sistema soporta únicamente hilos Mx1 ve al Proceso 2 como un único thread. Lo que no me queda claro es que criterio se utiliza para el despacho de los hilos, es decir por que parecería ser que primero se ejecuta el bucle de 1 unidad de tiempo de un hilo, luego este se bloquea durante 3 unidades, luego sucede lo mismo para el segundo hilo y finalmente se ejecutan 10 unidades de tiempo de ejecución de ambos hilos. Cual es la razón de este comportamiento?
Desde ya, muchas gracias.

En respuesta a Nicolas Tabare Tomeo Raspino

Re: [Práctico 3] Ejercicio 19

de Jorge Merlino -

La letra no especifica como se planifica entre los hilos para esa parte. En la solución está asumiendo que cuando un hilo se bloquea se le da la CPU al otro lo cual parece razonable.

En respuesta a Jorge Merlino

Re: [Práctico 3] Ejercicio 19

de Guillermo Hans Leopold Farina -

No me queda del todo claro, yo hubiese supuesto en la parte del proceso 2 algo asi:

Ejecuta el bucle del hilo 1 del proceso 2, se bloquea durante tres unidades, pero mientras esta bloqueado en esas tres unidades de tiempo, ya se ejecuta el primer bucle del hilo 2 del proceso 1 y dos unidades de tiempo de bloqueo del 2, ya que el quantum del proceso 1 en realidad todavia no se habia acabado.

Ahora capaz que estoy entiendo mal, cuando se bloquea, se bloquea el hilo o el proceso?

En respuesta a Guillermo Hans Leopold Farina

Re: [Práctico 3] Ejercicio 19

de Hernan Esteves Rosano -

Se bloquea todo el proceso porque mapea 2 user threads a un kernel thread (M:1); por eso no te permite paralelismo. 

En respuesta a Hernan Esteves Rosano

Re: [Práctico 3] Ejercicio 19

de Guillermo Hans Leopold Farina -
En respuesta a Guillermo Hans Leopold Farina

Re: [Práctico 3] Ejercicio 19

de Pedro Liber Antonio Carrasco Aguilar -

Yo lo hice suponiendo afinidad en la cpu (intento de conservacion de cache) Me quedo distinto al examen. ¿Es otra solucion posible o esta mal? Ya que en el examen cambian de cpu para el proc2

d)

 

Como es Many to One los hilos de usuario se mapena a un solo hilo de kernel por proceso, esto hay que tenerlo en cunta, pues cuando un hilo de usuario se bloquea por E/S se bloquean todos los del proceso (la E/S de A bloquea a Á y viceversa)

 

En definitiva el proceso A a nivel de usr tiene dos hilos A y A´ que son creados y planificados por una biblioteca que “emula hilos” y estos dos hilos se ven a nivel de quernel como un solo hilo, el del proceso que se encarga de emularlos a nivel de usuraio. El proceso B con su hilo B se mapea a un solo hilo en el kernel.

 

Suponiendo una planificación de hilos a nivel de usuario Round robin q=1

 

Cuad CPU1, 2, 3, 4  RR q=2

 

*1) Listo = L(alta) o l(baja)                                                             t)   c2)wt wtp=9/3 u

Listo |A1|K|K|K|| K||K |A1| L |a1 | l  |a1 | l  |a1 | l  |a1||                 17u  5u

Listo ||K|K|K|Á1| K||K | L |Á1|  l  |á1|  l  |á1|  l  |á1|  l |á1 |t | 18u  6u

Listo |B2|K|K|K|B2|B2|b2|b2|b2 | t |     |         |    |                             9u  0u

 

 

c1)

Uso de cpu1 4/10 global 12/18

Uso de cpu2 6/10 global 6/9

Uso de cpu3 0/10 global 0

Uso de cpu4 0/10 global 0

 

 

Uso por hilo de usuario

A                  5/10       6/11

B                 6/10       6/9

C                 4/10       6/12

En respuesta a Jorge Merlino

Re: [Práctico 3] Ejercicio 19

de Tamara Dalmar Techera Gomez -

Hola,

no entiendo en la parte D de este ejercicio por que, si el proceso 2 venia ejecutando con la CPU 2 la cambia por la CPU 1 en el tiempo t8. 

No podria seguir ejecutando con la CPU 2, independientemente de que la CPU 1 haya sido liberada por el proceso 1?

Gracias,

Slds! 

En respuesta a Nicolas Tabare Tomeo Raspino

Re: [Práctico 3] Ejercicio 19

de Matias Rodal Medina -

Otra duda del ejercicio, en la parte (b) en el tiempo 8, no se podria poner ejecutando el proceso 2 y 3 en vez del 1 y 2? Haciendo eso cambia para peor el tiempo de espera, pero por que no se podria? 

Mas general, cuando se liberan 2 procesadores al mismo tiempo y hay 2 o mas procesos que coinciden en elegibilidad, cual toma cada procesador? y si hay mas de 2 procesos, cuales son elegidos?

Gracias

En respuesta a Matias Rodal Medina

Re: [Práctico 3] Ejercicio 19

de Jorge Merlino -

Lo que corresponde en ese caso es seguir con el algoritmo round robin, o sea poner el proceso actual al final de la cola de listos y tomar el primero.

Lo que pasa es que como en ese instante el proceso 1 vuelve a la cola de listos porque se terminó su cuanto y a la vez el proceso 3 entra a la cola de listos de prioridad baja depende del orden en que pasen esas cosas en realidad.

Si asumís que primero vuelve el 1 y luego llega el 3 entonces el primero en la cola será el 1, si pensás que primero llega el 3 y luego se pone el 1 al final será al revés. Yo creo que ninguna de las dos está mal pero ahí se está asumiendo que el 1 llega primero.

En este caso no hay dos procesos que coinciden en elegibilidad, está definido cual es pero lo que pasa es que depende del orden en que pasen las cosas. Si fuera el caso de que tuvieras dos procesos iguales (por ejemplo planificando por prioridad y teniendo dos procesos de igual prioridad) depende del algoritmo de planificación la determinación de cual tomar.

 

En respuesta a Jorge Merlino

Re: [Práctico 3] Ejercicio 19

de Matias Rodal Medina -

Por que no pasan las 2 cosas al mismo tiempo? el acceso a la cola es una región crítica?

En respuesta a Matias Rodal Medina

Re: [Práctico 3] Ejercicio 19

de Jorge Merlino -

En una cola tiene que haber un orden estricto, no puede haber dos elementos en la primera posición. De alguna forma hay que resolver la inserción concurrente con alguna región critica.