sisoputnfrba / foro

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

Reemplazo de Marco y TLB #89

Closed emilianosoto1984 closed 9 years ago

emilianosoto1984 commented 9 years ago

Tengo una duda, en caso de tener que desalojar un marco, es posible que ese marco se encuentre en la TLB, sin embargo el algoritmo de reemplazo en la TLB es FIFO, por lo tanto si yo limpio esa entrada de la TLB y luego tengo una nueva traduccion que agregar a la TLB, debiera reemplazar el elemento por FIFO o el que quedo liberado? Sino, hasta que se asigne una entrada en esa posicion por FIFO, tendre un elemento menos en la TLB.

Muchas Gracias

tferraro commented 9 years ago

Buenas!

No te entendí mucho, te referís a que en caso de que tuvieras que obtener algo que no está en la TLB y requieras actualizarla, que pasaría con los siguientes accesos cuando hay que hacer el reemplazo?

emilianosoto1984 commented 9 years ago

Pruebo con un ejemplo. En la TLB tengo 4 entradas (en cada una esta la pagina y el marco que tiene asignado). La TLB tiene todas las entradas ocupadas. Para simplicidad las llamo E1, E2, E3, E4 y se fueron agregando en ese orden a la TLB, por lo tanto en caso de que se vaya a agregar una nueva entrada E5 segun FIFO debiera reemplazar E1. Tambien tengo todos los Marcos asignados en mi Memoria con paginas cargadas, llega una operacion de lectura con lo cual tengo que desalojar un marco. El marco que desalojo contenia la pagina 6 la cual tambien estaba en la E4 de la TLB. Entonces 1- si desalojo ese Marco de memoria, tambien tengo que limpiar la entrada correspondiente de la TLB, E4 en este caso, no? 2- Tengo que agregar una entrada en la TLB, yo reemplazo segun FIFO, con lo cual debiera reemplazar E1 por la nueva entrada, pero a la vez E4 me queda en un estado (invalido / vacio / nulo) por lo menos hasta que mi cola de FIFO llega a E4. 3- En caso de dejar en estado invalido las entradas de la TLB que referenciaban a paginas que fueron desalojadas, eso haria que solo tenga 3 entradas desperdiciando una entrada en la TLB, es correcto esto? Ahora quedo un poco mas claro?

Muchas gracias

afilgueira commented 9 years ago

Hola, los algoritmos de memoria (TLB y para marcos) son de reemplazo. Esto que nos está diciendo?

Saludos!

emilianosoto1984 commented 9 years ago

Si entiendo que uso esos algoritmos para el reemplazo de una pagina. Mi duda apunta a si el marco que estoy desalojando tiene una entrada en la TLB debo dejar esa entrada como inhabilitada ya que no necesariamente el algoritmo de reemplazo en la TLB va a reemplazar a la entrada que referenciaba a ese marco.

afilgueira commented 9 years ago

Si reemplazás una página X en un marco Y, tenés que quitar el par (X,Y) de la TLB. Esto te genera un hueco. A esto apuntaba.

Saludos!

emilianosoto1984 commented 9 years ago

Si, perfecto, ahora capte que es distinto si tengo entradas libres o si tengo que reemplazar en la tlb.

Muchas Gracias

ivours commented 9 years ago

Buenas! Perdón que reabra la issue, quería confirmar si entendí bien así podemos hacer las modificaciones adecuadas en nuestro TP si es que hace falta.

Esto es lo que interpreté:

Cuando se reemplaza un marco, y la página (a reemplazar) asociada a ese marco esta en la TLB, hay que eliminar de la TLB la entrada asociada a dicha página y poner la nueva. Por otro lado, el algoritmo FIFO se usaría cuando se reemplazan marcos cuya página asociada no se encuentra en TLB o que no tienen ninguna página asignada (y a su vez cuando la TLB esta llena.. es decir, saldría una entrada con la página vieja asociada, por FIFO, y entra la nueva).

Espero haberme explicado correctamente, cualquier cosa díganme si no se entiende y lo explico con un ejemplo.

Gracias de antemano!

ElianaLS commented 9 years ago

Me sumo a la pregunta: Cuando hago un swap in tengo que actualizar la TLB para que no me referencie un marco con contenido de otra página. ¿En este caso, aplica FIFO, también? O sea, ¿buscaría la entrada de la TLB que quedó inválida, le actualizaría la página y la dejaría como última actualizada? ¿O puede seguir con el orden que tenía de la página vieja?

afilgueira commented 9 years ago

Buenas, como dice la intro al foro: "Si la pregunta estuviera cerrada y no resuelve completamente tu duda, no escribas en esa misma pregunta: anotá el número de issue para referirlo en tu nueva pregunta."

Si ustedes comentan en un ticket cerrado, nos enteramos de pura casualidad. Suban un ticket nuevo porfa, y lo vemos ahí, así le queda al resto.

ivours commented 9 years ago

Mil disculpas, me había dado cuenta de esto recién hoy a la mañana e iba a crear una nueva issue (error mío por no leer la intro). Usamos la que creó Eliana entonces, gracias!