IIC2333 / Foro-2020-2

4 stars 0 forks source link

Burst timer en interrupciones #66

Closed cirey1 closed 4 years ago

cirey1 commented 4 years ago

Hola,

Tengo una duda al respecto de los tiempos de bursts cuando se interrumpe un proceso. Si tengo un proceso corriendo en una CPU y tengo otro en estado "Ready" con mayor prioridad (Deadline menor). Al momento de hacer la interrupción, debo descontar del contador de tiempo del burst?

Ejemplo.

Proceso 1 (Running)

Proceso 2 (Ready)

Durante la iteración, debe reducir el número del proceso ya corriendo y quedar así?

Proceso 1 (Ready)

Proceso 2 (Running)

KnowYourselves commented 4 years ago

Hola @cirey1!

Es súper simple, al inicio de cada tick se hacen todos los cambios de estado correspondientes, al final de tick se actualizan las ráfagas. Por ejemplo, al inicio del tick t un proceso interrumpió a otro y al final del tick t (que es lo mismo que decir inicio del tick t+1) se disminuyo en uno la ráfaga del proceso por el cual se realizó la interrupción.

Éxito!

rafabusleme commented 4 years ago

Hola @cirey1!

Es súper simple, al inicio de cada tick se hacen todos los cambios de estado correspondientes, al final de tick se actualizan las ráfagas. Por ejemplo, al inicio del tick t un proceso interrumpió a otro y al final del tick t (que es lo mismo que decir inicio del tick t+1) se disminuyo en uno la ráfaga del proceso por el cual se realizó la interrupción.

Éxito!

Según lo que entendí en issues anteriores, cuando a un proceso se le acaba un CPU burst, este cambia inmediatamente de estado. Entonces, también se pueden cambiar estados al final de cada tick. Es correcto pensarlo así o habría que verificar al inicio de cada tick, qué procesos tienen CPU burst en 0 y cambiarlos al estado que corresponda?

KnowYourselves commented 4 years ago

Hola @rafabusleme!

El inicio y el final del tick son lo mismo. El inicio de t+1 es el final de t. Lo importante es que no hagas más cosas de las correspondientes en un solo tick.

Éxito!