[Examen Julio 2011] Ejercicio 2

[Examen Julio 2011] Ejercicio 2

de Maria Jose Rabaza Chaves -
Número de respuestas: 2

Mi duda es en la parte iv). Cuando pide que indiquemos el estado de la memoria, ¿sería indicar la asignación de marcos en el tiempo y qué página quedó almacenada en qué marco finalmente (t11)?

Gracias y Saludos :)

En respuesta a Maria Jose Rabaza Chaves

Re: [Examen Julio 2011] Ejercicio 2

de Pedro Liber Antonio Carrasco Aguilar -

Si te referis a el estado final de f1,f2,f3,f4 en t11 de seguro la respuesta es un no. Porque por mas que sea el tf con la configuracion correcta, no va a mostrar el proceso por el cual llegaste a el.(y que entendes como funca LRU)

Lo que hice fue hacer una tablita donde en cada marco pongo que pagina tiene asignada para cada t . Como es LRU llevas un time stamp (o llevas una "cola" de 4) y siempre elegis como victima el de time stamp mas chico

El dato del ofsset no importa mucho.(el tlb no lo usa)

t,d,p,ofset,f1,f2,f3,f4,

supongo que el TLB es sin ASID y de cuatro entradas (minimo), que podes considerar como:

key(d,p) frame

f1            1

f2            2

f3            3

f4            4

Yo calculo el numero de pag como 2^(d+p) suponiendo que son todas secuenciales, y lo coodifico como la coord (d,p) para indicar ese numero (ya que es lo que hace el TLB)

En realidad hice 2 una en la que considero que la tabla de primer nivel (directorio) y las tablas del segundo nivel no se cargan a marcos del proceso, ya que cuando hay un page fault (TLB mis) se genera una interrupcion de la MMU que la atiende el kernel y supongo que es el, el que se encarga de hacer "transparente el paginado" al proceso, trayendo las dos paginas necesarias (dir y tab de pag) a sus kernel-frames, cargando SOLO la entrada de la pag en la TLB (si borro la TLB al atender la int el handler, la restaura antes de ret).

vector de pagFault (XXXVXVXVVXX)

Lo bueno de esto es que tenes mas marcos utiles por proceso y lo malo es que el kernel tiene que usar "mas memoria" o hacer mas swaping(si no le alcanzan los marcos)

Y despues hice otra en la que considero que tengo que traer a mis proces-frames el directorio y la tabla de paginas, suponiendo que el kernel al atender la page fault (TLB mis) toca mi espacio de memoria (ya que puede hacerlo) para leer el dir y la tabla, para luego cargar en uno de mis marcos la pagina requerida. SIN meter estos (frames que ocupa el dir y la tabla) en el TLB ya que mi proceso nunca los direcciona (lo hace el handler del kernel). Ademas considero que la key del TLB es d[11]-p[9] de d[11]-p[9]-ofsset[12] de mi word(32), esta key es la parte alta de la add virtual que mi proceso quiere acceder.

En esta otra codifico la pagina donde esta mi tabla de directorios como pd y las paginas donde estan mis tablas como pt1-4, pt5-8. Eso es porque cada pagina de segundo nivel contiene 4 tablas( la pt1-4 contiene de la 1 a la 4) o sea los punteros 10 ,11 y 12 del directorio van a acceder a la misma pt9-12. El time stamp de tu pd se asctualiza en cada page fault (TLB mis) y siempre tenes dos marcos ocupados (uno por cada nivel)

vector de pagFault (XXXXXXVXXXX)

La solucion del ex: se parece a la primer tabla llevando una cola de 4 y ademas tenes que redactar nomas (cosa que yo no hice) lo que te muestra la ultima (fila en mi caso) o columna en la solucion. Imagino que sin esto esta incompleto tambien :( En fin parece que la respuesta es si, pero ademas hace la tabla que muestre que sabes como funca LRU

salu2