Closed gpanduro closed 6 years ago
Buenas!
Vayamos por partes? Porqué líneas de 128 ? A que viene ese número? Por otro lado, los segmentos tienen tamaños diferentes, solo recordá, que la unidad de asignación no es el byte, sino es una línea de tamaño fijo 🙂 El como implementarlo, fijense ustedes, dado a que es una decisión más personal del grupo el como estructurar su metadata. Solo tengan en cuenta que el "storage" siempre va a ser un bloque de tamaño contínuo individible.
Tom
Buenas. Aprovecho este issue para sacarme una duda sobre: Vayamos por partes? Porqué líneas de 128 ? A que viene ese número? El enunciado habla de que una línea tiene un tamaño dado por archivo de configuracion (por default de ejemplo está el '128'), sabiendo que la unidad que maneja la memoria no es de 'bytes' sino de 'lineas', no me queda claro qué representa ese tamaño máximo ('128' por ej) en una línea. Saludos
Ok, partamos de ahí! 128 es un número completamente arbitrario, no tiene default.
Lo que pasa es que, cuando uno habla de una unidad de asignación, habla de una unidad discreta de un tamaño conocido, sobre el que uno puede trabajar.
Usar una unidad de asignación en bits (o en bytes="8 bits") es algo representable a un estado de la memoria física que mantiene esa misma dinámica.
El problema que te aparece cuando cambias la unidad, es que necesitás, eventualmente, mappearla a "bit", porque es la unidad que por default, la memoria posta tiene. Ahora, como mappearías una línea cualquiera, de tamaño N, a algo que responda a M bits?. Ahí es donde entra tu tamaño máximo de línea. Es lo que te define el tamaño fijo que siempre va a tener tu unidad de asignación 🙂
La pregunta que sale de ahi es: Si las líneas tienen tamaño variable, como harías para llevarlas a ese tamaño fijo de M bytes (o bits, pero la config usa bytes)?
Me quedó más claro, gracias. Por último, puede darse el caso de que la línea supera el tamaño máximo de línea? terminaría ocupando dos líneas?
Podríamos decir que es un comportamiento no tipificado, puede pasar lo que ustedes quieran. Por parte de las pruebas, no va a existir ese escenario, justamente para respetar el nombre tamaño maximo y simplificar el tema 🙂
@gpanduro se resolvió tu duda? Como venís con eso?
Una duda que me surgio a mi es que segmentacion (segun la teoria) no tiene fragmentacion interna. Pero yo entendi que hay que guardar de a lineas por lo que si el tamaño maximo es 32 y yo guardo una linea de tamaño 5 (Ej, "Hola") estaria perdiendo 27 bytes ahí. Esto lo ignoramos o hay que implementar como dijeron arriba de poner todas las lineas juntas e ir separando por un '/n' Eso lo solucionaria aunque en si no se si conceptualmente es lo que buscan
@FranciscoII en la memoria si vas a tener fragmentación interna, justamente por como está diseñada. No es un problema que queramos atacar, porque ganamos simplicidad. Ahora, lo que si no vas a tener es fragmentación interna en el MDJ, que sería la implementación que indicás.
Cierro el issue por inactividad. Cualquier cosa lo reabrimos o generamos otro issue 😉 .
buenas tardes, tenemos unas de dudas sobre FM9, si alguno le surgió o nos orienta un poco:
Gracias,