De bloques y marcos

By | 10 junio, 2019

Buenas buenas!

Después del agitado checkpoint del sábado, encontramos que aparecieron algunas discrepancias en el momento que hablamos de paginas y marcos vs bloques del FS. Con lo cual antes de que las cosas terminen mal y que tengan que salir a hacer un fix grande, vamos a atajar el tema y vamos a empezar como el TP, hablando del FS y los bloques.

En los bloques del LFS, uds van a terminar teniendo un registro debajo del otro, con lo cual si pudiéramos ver un bloque al lado del otro, lo que veríamos seria algo similar a lo siguiente:

Ahora si nos pasamos a la memoria, vamos a ver que primero, tienen que tener una segmentación paginada, lo cual, rápidamente podría tener las siguientes estructuras:

Ahora el tema es que hasta acá hablamos de tablas (o listas que bien pueden ser las que están en las commons), pero que pasa cuándo vamos a nuestro gran malloc, que tenemos finalmente en los marcos? Bueno, lo que tenemos es algo similar a lo siguiente:

Como bien se lee OJO que el tamaño del value puede cambiar (tengan en cuenta que viene dado por el tamaño value que esta en el config del LFS), con lo cual, va a ser bueno que se tomen 5 minutos y piensen la forma correcta de administrar eso (SPOILER: un puntero a char* no es la solución salvadora ya que les sacaría de su gran mallos los datos del value)