Buenas, tenia una pregunta sobre las prioridades a nivel del so al principio. El P1 tendria prioridad 25? ya que seria suma el proximo cpu-burst de cada hilo, o seria 10 o 15 tomandolo por separado? Otra pregunta, cuando se ejecuta dos veces el mismo P, no se vuelve a calcular el proximo cpu burst para la prioridad no? Nomas se le sumaria 5?
Hola,
en las clases de esta semana vamos a explicar en detalle ese tipo de situaciones. En ese ejercicio la prioridad es definida por el próximo CPU burst del proceso. Si haces el diagrama de ejecución asumiendo que P1 ejecuta primero, ejecuta 25 ms? o bloquea antes? el tiempo que ejecute va a ser el CPU burst del proceso P1
Saludos
en las clases de esta semana vamos a explicar en detalle ese tipo de situaciones. En ese ejercicio la prioridad es definida por el próximo CPU burst del proceso. Si haces el diagrama de ejecución asumiendo que P1 ejecuta primero, ejecuta 25 ms? o bloquea antes? el tiempo que ejecute va a ser el CPU burst del proceso P1
Saludos
Hola Nicolás,
Al ser un modelo de hilos Mx1, el sistema operativo solo reconoce un hilo a nivel de kernel para los M (en este caso, 2) hilos de usuario. El SO le dará la CPU al hilo de kernel de P1 y luego se ejecutará el planificador a nivel de usuario para asignarle la CPU a los hilos.
Suponiendo que de los dos hilos de P1 empieza a ejecutar P1A, por el RR de quantum 5 ejecuta 5 ms P1A, 5 ms P1B, 5 ms P1A y luego P1A se bloquea. Al ser Mx1 el hilo de kernel (el único reconocido por el sistema operativo) se bloquea. Por lo tanto a nivel de proceso el CPU burst inicial de P1 es 15 ms, porque el sistema operativo lo que "ve" es que P1 ejecuta 15 ms y se bloquea.
Al ser un modelo de hilos Mx1, el sistema operativo solo reconoce un hilo a nivel de kernel para los M (en este caso, 2) hilos de usuario. El SO le dará la CPU al hilo de kernel de P1 y luego se ejecutará el planificador a nivel de usuario para asignarle la CPU a los hilos.
Suponiendo que de los dos hilos de P1 empieza a ejecutar P1A, por el RR de quantum 5 ejecuta 5 ms P1A, 5 ms P1B, 5 ms P1A y luego P1A se bloquea. Al ser Mx1 el hilo de kernel (el único reconocido por el sistema operativo) se bloquea. Por lo tanto a nivel de proceso el CPU burst inicial de P1 es 15 ms, porque el sistema operativo lo que "ve" es que P1 ejecuta 15 ms y se bloquea.
Respecto a la segunda pregunta, si un proceso ejecuta durante 10 unidades de tiempo ininterrumpidamente, no se cambiará su prioridad mientras ejecute, ya que en ese tiempo el proceso no está ni ingresa a la cola de listos.
Espero que haya quedado claro, cualquier otra duda volvé a escribir.
Saludos,
Santiago.
Buenas, no me queda muy claro cuando actualizar el CPU-burst, es el tiempo que ejecutan los hilos hasta que alguno se bloquea? Cómo consideramos aqui que otro proceso le puede quitar el procesador a P1? eso cambiaria el CPU-burst? porque no sabria como calcularlo, ya que no sé de antemano si a medida que ejecuta, el otro proceso le quita la CPU antes de que algun hilo se bloquee. Gracias!
Hola, si lo podes saber de antemano, pues el ejercicio te da toda la información: modelo de hilos, ambos planificadores y el modelo de ejecución del proceso. Cuando tengas que calcular el CPU burts basta con que asumas que el proceso tiene CPU y ver cuanto puede ejecutar sin bloquearse.
Saludos
Saludos