[Primer Parcial 2015] [Problema 2] Tiempos de ejecución con semáforos

[Primer Parcial 2015] [Problema 2] Tiempos de ejecución con semáforos

de Nadia Recarey Monzillo -
Número de respuestas: 1

Hola, qué tal? buenas tardes

En el problema 2 de este parcial, se plantea un problema con 3 procedimientos y un procesador con algoritmo de planificación Shortest Job First.

Si tenemos una sentencia P(s), siendo s un semáforo, y luego por ejemplo tenemos "Ejecuta 10 ms", el tiempo de ejecución total contra otros procesos se suma? Es decir el tiempo del P(s), 5 ms, mas 10 ms? asi resultando en 15 contra los demas.

Por ejemplo, supongamos que en un momento dado, el scheduler debe elegir entre dos procesos para asignarle el CPU:

Proceso 1          |       Proceso 2
P(s)                         Ejecuta 10 ms
Ejecuta 10 ms

Si se tomara todo junto P(s) (son 5 ms por letra), a pesar de que no se sabe si puede llegar a bloquearse luego de esto,  y los otros 10ms serian 15 ms, por lo que se elegiria al proceso 2, de lo contrario se elegiria el proceso 1 para ejecutar solo 5 ms del P(s).

Espero que se entienda!

Muchas gracias

Saludos,
Nadia
En respuesta a Nadia Recarey Monzillo

Re: [Primer Parcial 2015] [Problema 2] Tiempos de ejecución con semáforos

de Jorge Merlino -

Para que SJF funcione siempre se tiene que saber el tiempo de la siguiente ráfaga de CPU de cada programa. En ese ejemplo que ponés el planificador debe saber si el programa se va a bloquear o no (mirando el valor del semáforo) para poder decidir a quien le da la CPU.

De todas formas es importante que quede claro que ese algoritmo no se usa en la práctica dado que es muy difícil saber previamente el tiempo de la ráfaga de CPU de cada proceso (el ejemplo ese muestra una de las posibles dificultades)