sisoputnfrba / foro

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

Consulta enunciado Segmentacion Paginada. #1258

Closed FranciscoII closed 5 years ago

FranciscoII commented 5 years ago

馃憢 隆Hola! Tenia una duda con respecto al enunciado del FM9, m谩s concretamente en segmentacion paginada. Segun el TP: "El concepto de segmentaci贸n paginada funcionar谩 como visto en la teor铆a. De esta manera dicho proceso m铆nimamente dispondr谩 de las siguientes estructuras administrativas: Tabla de Procesos Tabla de Segmentos Tabla de P谩ginas Storage - Memoria Real " El problema radica en que seg煤n Stallings, no hay ninguna tabla de procesos en la segmentacion paginada(pag 358). Adem谩s en la ilustraci贸n del enunciado, la direcci贸n l贸gica que nos manda el CPU es Segmento|Offset y no termino de entender como implementar una "Tabla de Procesos" si solo me fijo en esos dos par谩metros. Por ahora lo pude implementar pero solo usando una tabla de segmentos y una tabla de paginas por segmento tal cual lo indica el Stallings. 馃檱 Gracias por leerme y saludos

tferraro commented 5 years ago

Buenas!

La idea atr谩s de la segmentaci贸n paginada, es que la segmentaci贸n es un poco agn贸stica de la paginaci贸n que se hace m谩s abajo, por lo que el proceso es el mismo hubiera o no paginaci贸n.

Si solo con el Segmento+Offset no te alcanza, de donde podr铆as sacar la informaci贸n restante?

FranciscoII commented 5 years ago

Hola Tom, gracias por responder. Perd贸n pero no entiendo a lo que te referis. Para la paginaci贸n tambi茅n el cpu le pasa el PID del DTB, tambi茅n se lo podria pasar a segmentacion paginada pero, no entiendo la necesidad en el contexto que lo arme yo (los segmentos del DTB se los identifica con un n煤mero que es buscado en la tabla de Segmentos, y siendo ese n煤mero 煤nico para cada escriptorio/archivo, por ejemplo, un DTB podr铆a tener en memoria los segmentos 1,2 y 5 y otro DTB el 3 y 4).

tferraro commented 5 years ago

Buenas 馃憢

Ten茅 en cuenta que la denominaci贸n de cada segmento es local a cada proceso. Esto ocurre porque las "direcciones" de los segmentos son l贸gicas y no est谩n asociadas a la posici贸n de memoria en s铆 de forma directa. Esa traducci贸n hace necesario que para entender de que segmento est谩s hablando, tengas que tener una "tabla de procesos" para saber a que tabla de segmentos apuntar.

tferraro commented 5 years ago

Buenas! Como viene esto @FranciscoII? Sigue estando la duda? Se resolvi贸 con mi comentario? A que conclusi贸n llegaste?

FranciscoII commented 5 years ago

Hola, perd贸n me colgu茅 en contestarte. Si me sirvi贸 para entender y adem谩s que cuando me puse a hacer el "dump" me di cuenta que lo necesitaba. Esta mal si en el caso de segmentacion agrego a la tabla de segmentos el PID? Lo hago as铆 para evitar manejar mas tablas porque estoy teniendo problemas liber谩ndolas y no entiendo muy bien porque (estoy usando las funciones de las commons). De andar, anda igual pero no se si esta bien conceptual-mente para ustedes. Desde ya muchas gracias por la ayuda :)

tferraro commented 5 years ago

Buenas!

No cambia mucho esa implementaci贸n a la te贸rica pura. Solo ten茅 en cuenta que no vas a poder indexar por "segmento" o "pid" para poder acceder y vas a tener que filtrar la lista para ver cual cumple con esa condici贸n :P

Saludos! Tom

tferraro commented 5 years ago

@FranciscoII como va todo? Te sirvi贸 mi respuesta? Si es as铆, podr铆as decirnos a que conclusi贸n llegaste y cerrar el issue :)?

FranciscoII commented 5 years ago

Hola Tom, todo pillo por ahora. Al final lo deje como lo tenia en el que en la tabla de segmentos se guarda el PID del DTB correspondiente. Para acceder a memoria el CPU le pasa el nro de segmento y el offset y la memoria busca en la tabla de segmentos el marco correspondiente. El campo de PID es utilizado solamente para el "dump" para mostrar todos los segmentos que tiene ese DTB abiertos en memoria y su contenido. Lo 煤nico que difiere un poco de la teor铆a es que la asignaci贸n de numero de segmento es global, por lo que un DTB puede tener asociados el segmento 1, 2 y 5 y otro el 3, 4 y 6. La 煤nica justificaci贸n que tengo para eso es que fue lo mas practico y adem谩s es parte del funcionamiento interno de la memoria. Si esto ultimo esta bien entonces ya podr铆amos cerrar el issue.

tferraro commented 5 years ago

Buenas!

A estas alturas del cuatrimestre, que la asignaci贸n del nro de segmento sea global, no se que tanto me preocupar铆a si fuera vos, veo que hay cosas m谩s importantes para atacar que algo que es m谩s un detalle 馃槢.

FranciscoII commented 5 years ago

Dale, muchas gracias Tom. Cierro el issue ;)