sisoputnfrba / foro

Foro de consultas para el trabajo práctico
148 stars 7 forks source link

Duda sobre planificacion #3723

Closed Elias318 closed 4 months ago

Elias318 commented 4 months ago

Buenas, quería consultar si la idea que tenemos para el tema de planificación es correcta y si interpretamos bien el enunciado.

La idea que tenemos una vez que le mandamos el PCB a memoria y este modulo lee las instrucciones, es que memoria va a enviarle a kernel la PCB con las instrucciones leídas para cambiarle el estado a "Listo" y cuando el planificador lo decida, cambio el estado nuevamente a "Ejecución" para mandárselo a CPU mediante el dispatch y cuando se interrumpa por algún motivo le mando el interrupt para desalojar el proceso.

Para la parte de PLANIFICACION: La idea que manejamos es: Crear una lista de "Listo" que esta armada con un struct que contiene el PCB recibido de memoria y un puntero al siguiente en la cola. Esto se repetiria para "Bloqueado"

¿Para saber cuando mandarle el PCB a CPU y cuando desalojarlo, como lo deberíamos encarar?

Un saludo !

📔 Citas del enunciado/videos

💭 Soluciones posibles

f-and commented 4 months ago

Buenas Elias, para la parte de las listas esta correcto lo que decis, seguramente tengan que hacer mas listas, como por ejemplo una para los procesos recien llegados que quedan afuera por el grado de multi-programación, pero en si la idea de listas con los PCBs esta bien. Por el lado enviarle procesos al CPU o desalojarlos fijate dos cosas: Para mandarlos solamente hay que tener el proceso al principio de la lista de "Listo" (considerando que lo ordenen FIFO), y para desalojarlos fijate la parte del enunciado Check Interrupt del ciclo de instrucción del CPU, basicamente van a chequear por cada instrucción si el Kernel solicitó que se interrumpa el proceso.

Elias318 commented 4 months ago

Muchas gracias, ahi me quedo mas claro. Te hago una consulta mas con respecto a esto, el dispatch y el interrupt son funciones que tenemos que hacer nosotros no ? no es que vienen en las commons por que las busque y no las vi pero por las dudas pregunto.

f-and commented 4 months ago

Bah, funciones no serian, son mas como funcionalidades o hasta servidores que tenes que plantear, vos vas a tener los puertos de escucha de Dispatch y Interrupt, el primero va a recibir lo que tiene que ver con la ejecución de los procesos (recibir/enviar el contexto), y el segundo va a tener que ver con la pata del paso Check Interrupt, donde se fija si hubo una interrupción.

[...] el Contexto de Ejecución del proceso que se deberá enviar a la CPU a través de la conexión de dispatch al momento de poner a ejecutar un proceso

En caso de que el proceso se encuentre ejecutando en CPU, se deberá enviar una señal de interrupción a través de la conexión de interrupt con el mismo y aguardar a que éste retorne el Contexto de Ejecución antes de iniciar la liberación de recursos.

iago64 commented 4 months ago

Buenas!

Las commons solo les resuelven las cosas aburridas y repetitivas de algoritmos como crear colas, listas, diccionarios, bitarrays, etc.

Todo lo demas como bien dice Fede, como son funcionalidades del TP las tienen que hacer uds.

Saludos.-

Elias318 commented 4 months ago

Gracias!