Closed GonTurri closed 5 months ago
lo pense un poquito mas y lo unico que se llega a ocurrir es que en la etapa de fetch el cpu se quede esperando a la memoria con un recv. Si no es eso no se la verdad
Buenas! Te respondo en 2 partes:
En primer lugar, el sistema en sí tiene que estar "levantado" por completo antes de iniciar un proceso, mínimamente tener los módulos Memoria (esperando mensajes de CPU y Kernel), CPU (conectado a Memoria y esperando mensajes de Kernel) y por último el Kernel (conectado a CPU y Memoria).
Con esto en mente y como bien decís, el comando "INICIAR_PROCESO" es el punto de entrada al sistema:
Una vez la CPU tiene los datos necesarios, le pedirá lo que necesite a la Memoria para poder ejecutarlo (por lo pronto, las instrucciones en la etapa "fetch")
Te aclara las dudas? Saludos! Lean
Entonces seria que la cpu espera al kernel, ya sea controlando si tiene las estructuras seteadas o mediante alguna otra forma. Pero antes de hacer un fetch necesita que el kernel le mande las cosas? Ya esto y no te molesto mas
Exactamente, por eso es importante "definir el protocolo de comunicación".
La función recv()
es bloqueante, por lo tanto, mientras no tenga nada para hacer la CPU debería solamente estar "esperando" (bloqueado) a que el Kernel le mande algo para ejecutar.
Buenas! no termino de entender como es que arranca la bola en el sistema. Arrancaria la primera vez que pongo INICIAR_PROCESO en el kernel? entonces si es asi la cpu cuando arranca se tendria que quedar esperando a que le asginen un proceso, quizas es que no estoy entendiendo bien el enunciado pero si no como seria? puede el kernel arrancar a planificar por si solo? o la cpu arrancar por si sola sin nigun input nuestro?
Desde ya muchas gracias