Closed IgnacioLapko closed 1 week ago
Buenas! Cómo va?
1.- Con el espacio de usuario, efectivamente van a interactuar en el caso de READ MEM y WRITE MEM.
2.- El tamaño de los procesos es un valor arbitrario que puede ir de 0 hasta cualquier numero, no sigue ninguna regla mas que lo que dicte el corazon del que escribe la prueba, con la salvedad de que si ponen un tamaño mayor al tamaño de la memoria ese proceso va a frenar a todos los otros que vengan atras.
3.- Los archivos de pseudocódigo no les tiene que importar cuanto pesan ya que esos no van en el espacio de usuario, por lo tanto, si creo un proceso de tamaño 4 y despues le creo 1000 hilos a ese proceso, el tamaño del proceso en el espacio de usuario sigue siendo de 4 bytes.
Saludos.-
¡Clarisimo todo, muchas gracias!
🛠️ Lenguaje
Go
🖋️ Descripción
¿En que momentos el sistema debe interactuar con la memoria de usuario? ¿Únicamente cuando el CPU quiere hacer un READ MEM o WRITE MEM?
¿El tamaño de proceso que pasamos al momento de ejecutar la Syscall CREATE_PROCESS esta asociado únicamente al tamaño de los registros, o que valor tendría y de donde saldría?
Si bien los hilos no necesitas chequear si hay espacio en memoria (no tienen estado NEW) ¿El tamaño del archivo de pseudocodigo de cada hilo no "pesa"? Ej.: creo un proceso A con hilo 0 que ocupa X espacio en memoria. Si luego creo un hilo 1 del proceso A, teniendo en cuenta el enunciado, ¿el tamaño del proceso no se modificaría?
¡Muchas gracias!
📔 Citas del enunciado/videos
"READ MEM Se deberá devolver el valor correspondiente a los primeros 4 bytes a partir del byte enviado como dirección física dentro de la Memoria de Usuario. WRITE MEM Se escribirán los 4 bytes enviados a partir del byte enviado como dirección física dentro de la Memoria de Usuario y se responderá como OK."
💭 Soluciones posibles
Una solucion podria ser que en memoria de usuario solo se utilice al momento que el CPU solicite leer o escribir memoria, lo que simplificaría el analisis de la situación.
📝 Normas del foro