Closed BenjaPrograma closed 4 years ago
Hola @BenjaPrograma!
En la ayudantía se aclaro que no se debe disminuir el valor de una ráfaga sin que haya pasado una unidad de tiempo. Al inicio del tiempo uno PROCESS2_RICHI
pasa a estado READY
e inmediatamente una CPU lo acepta y pasa a estado RUNNING
, luego, para el tick 2, el proceso ha estado RUNNING
por un tick por lo cual se disminuye en uno la ráfaga.
Éxito!
Me pasa que encuentro que es un detalle de implementación tan pequeño y que sin embargo repercute en el resultado final, es decir, uno podría implementar toda la tarea correctamente para que solo por este detalle (que sigo sin entender exactamente como quieren que se implemente, pero que no tiene dificultad alguna cambiar) el output sea incorrecto.
El enunciado es explicito en ese hecho. Además, es algo que se habló en sumo detalle en la ayudantía, te recomiendo ver la grabación y te debiése aclarar cualquier duda que tengas!
Éxito!
Si vi la ayudantía y aún asi siento que no esta claro, no hay resultados con los que comparar.
No en todos los proyectos, tareas y trabajos a los que te enfrentes en esta universidad tendrás una guía clara frente a la cual compararte. Para esta tarea en específica consideramos como ayudantes que les estaríamos haciendo más daño que bien dándoles resultados fijos, ya que una de las partes que queremos evaluar es que puedan programar el scheduler pedido considerando los posibles casos borde, por lo cual estimamos que para ese objetivo darles resultados sería contraproducente.
Espero se entienda.
Lo que me molesta es que entonces se evalue comparando contra un input, cuando uno pudo haber tomado decisiones respecto a ciertos casos bordes de los que su resolución quedó mas o menos a interpretación de cada uno. Yo te podría justificar el porque tome que tal tick sea capaz de hacer tales cosas, pero no vale de nada si no entrega el resultado que ustedes esperan. Por otro lado el enunciado no ha sido modificado ni aclarado con estos detalles, sino que fue algo que se menciono en la ayudantia pero sin un enunciado o aclaración especial, o con algunos ejemplos. Encuentro que el detalle ha sido vago y me estresa que de ello dependa tanto mi nota.
Entiendo tu frustración (me ha pasado en otros ramos), pero me encuentro un poco perdido respecto a porque encuentras que este es el caso. El enunciado es claro en decir que no debe suceder lo que describes (Que un proceso cambie de estado y ejecute su ráfaga en un solo tick) y en la misma ayudantía (que es la instancia oficial para la explicación del enunciado) tu duda (como es de esperarse) estuvo presente y fue explicada varias veces de distintas formas.
Ahora claro, si bien es algo que esta en el enunciado y también se explicó en la ayudantía, es normal tener dudas de todas formas y para eso esta este foro, pero debo aclararte que este tema no es un detalle de implementación, es uno de los funcionamientos base del scheduler.
Con esto dicho, si es que mi explicación te parece insuficiente, no tengo ningún problema con dar una explicación diferente, o más detallada.
Éxito!
Hola!
Usando este mismo ejemplo, en el "tick" que el CPU burst llega a 0 puede pasar al tiro al estado waiting o ese es otro tick también?
Me refiero si es: t=0 no pasa nada t=1 process richi pasa a ready e inmediatamente a running t=2 cpu burts -1 (quedan 13) t=3 cpu burst -1 (queda 12) ... t=15 cpu burst -1 (quedan 0), pasa a estado waiting. t=16 i/o burst -1...
O si es así: t=0 no pasa nada t=1 process richi pasa a ready e inmediatamente a running t=2 cpu burts -1 (quedan 13) t=3 cpu burst -1 (queda 12) ... t=15 cpu burst -1 (quedan 0) t=16 pasa a estado waiting t=17 i/o burst -1...
Gracias!
Hola gracias por tus respuestas, si me queda claro su punto de vista. todavia tengo dudas al respecto, pero cuando tengamos todo el resto listo las resolveremos. Te podría contactar por telegram? Saludos
Hola @trinigomez!
Cuando un proceso se le acaba una ráfaga CPU pasa inmediatamente a estado WAITING
.
@BenjaPrograma, preferiría que hicieras una issue.
Éxito!
@KnowYourselves Gracias!
Hola! Me aparecio la siguiente duda PROCESS1_RAUL 21 2 120 5 10 4 30 3 40 2 50 1 10 PROCESS2_RICHI 13 1 60 3 14 3 6 3 12 PROCESS3_ZEZIMA 5 3 200 4 14 3 6 3 12 3 18
Digamos que partimos con un tick == 0. Al pasar al tick 1 ¿Que operaciones debo realizar sobre el process richi? Porque me parece que es posible solo poner a richi en estado ready para el siguiente clock, y la otra posibilidad es que entre a estado ready, y como no hay ningun CPU, pase directo a running y desde el tick 1 ya descontarle 1 a su deadline.