sisoputnfrba / foro

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

Como arranca el sistema? #3519

Closed GonTurri closed 5 months ago

GonTurri commented 5 months ago

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

GonTurri commented 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

LeandroCarbajales commented 5 months ago

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:

GonTurri commented 5 months ago

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

LeandroCarbajales commented 5 months ago

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.