UTNianos

Versión completa: [Aporte] [Sistemas operativos] Final 15/02/2022
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas!
Dejo el final que se tomo en el primer llamado de febrero del 2022. Tambien dejo en el .txt las respuestas de lo que figura en los ejercicios como mal (solo practica)

La modalidad es como se viene tomando, donde es todo por el campus, si tenes la mayor parte de la teoria bien y la practica tambien, aprobas de una y ya estas. Si estas al borde vas a "coloquio de revision" tengo entendido, pero se mantiene igual a como se venia tomando en si la modalidad.

Exitoss
Buenas. Gracias por el aporte, Te hago unas consultas:

¿Cual era la condición de aprobación?

¿2 horas es el tiempo total del examen?

¿Piden cámara, microfono, etc?

Gracias y saludos
Buenas! Paso a responder

Mininamente son 3 de los 5 ejercicios teoricos y 1 practico bien. En el practico en mi caso erre un poquito de ambas partes e igual me aprobaron de una, asi que asumo que ahi tambien hace como un balanceo (si erras muchos puntos de cada practico quiza te va mal, si estas al borde podes llegar ir a coloquio y un largo etc.). EN GENERAL depende de cada caso, no creo poder darte todas las situaciones posibles (?

En este final una profe nos comento que "en base a experiencias anteriores" nos iban dar mas tiempo, asi que nos dieron 1h 45m para hacer todo el examen. Hasta diciembre 2021 entiendo que era de 1h 15m, pero esta vez fue mas

Solamente tenes que hacer una acreditacion via google meet (el enlace te lo dejan en el campus) y despues de esa acreditacion te habilitan el final. No es necesario quedarse asi que es totalmente libre, sin camara, mic nada nada. Lo que hacen es dejarte un canal de discord por si surge alguna duda/aclaracion de profes sobre el final.
Muchas gracias por la data.

Saludos
Buenas!

Antes que nada, gracias por el aporte!
Te queria consultar, de donde recomendas estudiar la parte de memoria??
Buenas!
Nose si te referis a tanto la parte teorica como practica pero supongo que de ambas te referis
En mi caso la parte teorica la estudie mas que nada de apuntes que fui encontrando aca + clases grabadas (que tambien andan dando vuelta por aca). La parte practica tambien en las clases grabadas, y ademas, lo mechaba con ejercicios de final y/o parciales virtuales de cursadas anteriores.
Buenas!

Muchas gracias por subir el final!

Estuve intentando hacer el ejercicio 7, que es el práctico de memoria virtual y no estoy pudiendo entender como llegar a las direcciones fisicas.
Entiendo la parte del offset, pero no la primer parte que entiendo que es el marco.

Lo que saqué como conclusion es que para el offset necesito 22 bits, porque cada marco es de 4MB. Y 4MB = 2^2 * 2^20 =2^22.
Para llegar a los 4MB lo que hice fue tomar la memoria real y dividirla por los 32 marcos que existen. Se que son 32 porque en la tabla de paginas invertida hay 32 entradas.

Para la DL 01922435 lo que hice fue pasarla a binario y lo primero que me sale es quedarme con los ultimos 22 bits que son para el offset.
Luego, no estoy segura si en la DL que nos dan los bits restantes (los primeros 10) son todos para indicar la pagina, si fuera asi me da que la pagina es la 6, que esta cargada en el marco 11 segun la tabla de pag invertida. Entonces no entiendo como en la traduccion a la direccion fisica se llega a 2D22435. No entiendo el 2D del principio, el offset lo entiendo.
La direccion en binario me habia quedado asi: 0000 0001 1001 0010 0010 0100 0011 0101.
Y como comentaba antes, me estaba quedando para el offset con los ultimos 22: 01 0010 0010 0100 0011 0101

Alguien me podrida dar una mano por favor?
Estoy muy perdida?
Desde ya muchas gracias!
(28-02-2022 16:01)OrnellaSnm escribió: [ -> ]Buenas!

Muchas gracias por subir el final!

Estuve intentando hacer el ejercicio 7, que es el práctico de memoria virtual y no estoy pudiendo entender como llegar a las direcciones fisicas.
Entiendo la parte del offset, pero no la primer parte que entiendo que es el marco.

Lo que saqué como conclusion es que para el offset necesito 22 bits, porque cada marco es de 4MB. Y 4MB = 2^2 * 2^20 =2^22.
Para llegar a los 4MB lo que hice fue tomar la memoria real y dividirla por los 32 marcos que existen. Se que son 32 porque en la tabla de paginas invertida hay 32 entradas.

Para la DL 01922435 lo que hice fue pasarla a binario y lo primero que me sale es quedarme con los ultimos 22 bits que son para el offset.
Luego, no estoy segura si en la DL que nos dan los bits restantes (los primeros 10) son todos para indicar la pagina, si fuera asi me da que la pagina es la 6, que esta cargada en el marco 11 segun la tabla de pag invertida. Entonces no entiendo como en la traduccion a la direccion fisica se llega a 2D22435. No entiendo el 2D del principio, el offset lo entiendo.
La direccion en binario me habia quedado asi: 0000 0001 1001 0010 0010 0100 0011 0101.
Y como comentaba antes, me estaba quedando para el offset con los ultimos 22: 01 0010 0010 0100 0011 0101

Alguien me podrida dar una mano por favor?
Estoy muy perdida?
Desde ya muchas gracias!

Efectivamente la dirección lógica está compuesta por 22bits para el offset y 5 bits para la página y le corresponde la pág6, frame 11, entonces la DL es frame+offset = 1011 | 01 0010 0010 0100 0011 0101 => 2D22435h.
Espero se entienda!
Mil gracias Walter!!! Me salvaste! Me estaba volviendo loca jaja.

Aprovecho y dejo la otra dirección por si le sirve a alguien el paso a paso:

Paso 1) Tomamos la direccion y la pasamos a binario
000100ABh = 0000 0000 0000 0001 0000 0000 1010 1011 en binario.

Paso 2) Tomamos los ultimos 22 bits que representan al offset. Y nos quedan para la pagina los primeros 10 bits: 0000000000.
Por lo tanto, la página es la 0.

Paso 3) Como vemos en la tabla invertida, esta pagina no está cargada. PERO, sabemos que queda el frame 20 libre. Por lo cual ahora sabemos que la pag 0 se carga en el frame 20.

Paso 4) Volvemos a la direccion física.
La direccion física estará conformada por el frame 20 + offset. El offset ya lo tenemos, es el mismo de la dir logica. Y ya lo tenemos en binario.
Entonces pasamos el frame 20 a decimal: 10100.
Lo concatenamos al offset: 10100 00 0001 0000 0000 1010 1011.
Lo obtenido lo pasamos a hexa, agarrando de a 4 bits de derecha a izquierda. Que esto es lo que yo estaba haciendo mal en mi anterior pregunta, por eso lo aclaro bien por las dudas.
Y finalmente nos queda que la direccion física es: 50100AB.

En cuanto al punto 3, La TLB queda solamente cargada con esta entrada. Es la pagina 0 y el frame es el 20. Pero nos lo piden en hexa. El numero 20 en hexa es 14.

Saludos =)
Buenas, estamos resolviendo el punto 7.4 con otro compañero y queriamos compartir lo que pensamos a ver si está bien.

La primer pregunta que tenemos es si hay un 1 de más en el archivo " Rtas correctas - practica.txt" que esta adjunto en este thread, ya que nos dio que la cantidad de bloques a leer es 4113. Y no 41113.

Así lo pensamos:

1) Nos estan diciendo que el objetivo es escribir 1 pagina entera en memoria. Entonces la 1er pregunta es: Cuantos bloques van a entrar en esa pagina?

Cada pagina son 4MB. Esto lo sabemos porque existen en total 32 marcos y la memoria real es de 128MB. 128MB/32=4MB
Cada bloque 1KB.
Entonces: 4MB/1KB = 4096 bloques entran en cada pagina.

Conclusion: vamos a traer del disco desde el bloque 4000 (esto es segun el enunciado) al bloque 8096 (4000 + 4096).

2) Necesitamos saber cuantos punteros va a haber en cada bloque
Las direcciones nos dicen que son de 32 bits y cada bloque es de 1KB.
1KB = 1024 bytes
32 bits = 4bytes
Entonces: 1024 bytes / 4 bytes = 256 punteros entran en cada bloque.

3) Necesitamos saber en donde esta el bloque número 4000 dentro del esquema de inodos.
Necesitamos saber esto para poder entender cuantos bloques vamos a tener que leer para poder acceder a esos 4096 bloques que queremos llevar a memoria.

* Los primeros 10 bloques son punteros directos.
* Luego hay un bloque de punteros indirectos simples. Ahi se va a acceder a 256 bloques de datos. Del bloque 11 al bloque 267. Sabemos que son 256 porque entran solamente 256 ptrs en un bloque.
* Luego hay un bloque de punteros indirectos dobles. Si queremos saber a cuantos bloques accedemos por aca hay que hacer: 256^2=65536 bloques.
La conclusion es que el bloque 4000 se accede a traves del esquema de inodos indirectos dobles.

Para entender cuantos punteros se iban a leer hice estas cuentas:
4000/256 = 15,625. Entonces a traves del puntero 15 que está en el 1er bloque de punteros termino accediendo al bloque 4000 (el ptr 15 accede a otro bloque de punteros y uno de esos apunta al bloque 4000).
8096/256 = 31,6. Entonces a traves del puntero 31 (que esta en el 1er bloque de punteros) termino accediendo a otro bloque de punteros que tiene el puntero que apunta al bloque 8096.

Bueno, todos los punteros entre el 15 y el 31 (incluidos) estan en el mismo bloque. Asi que ahi tenemos 1 bloque a leer.
Luego tenemos cada bloque que esta siendo apuntado por los punteros que van del 15 al 31. Asi que ahi tenemos 16 bloques más a leer.

Finalmente tenemos leidos: 4096 (estos son los bloques de datos) + 1 bloque (el primer bloque de punteros del esquema de indirectos dobles. Ojo que este bloque no es el que vive en la tabla de inodos, sino que es el primero al que la tabla de inodos apunta) + 16 bloques = 4113.

Asi llegamos a que la rta es 4113. Pero no sabemos si no nos estamos comiendo algo más.
Perdon si no quedó muy claro, es dificil de explicar todo con palabras. Adjunto un dibujo.

Si alguien más lo hizo y quiere compartir su rtado se lo re agradezco!
Saludos =)

Otra vez yo. Me di cuenta de algunos errores en esta parte:

(01-03-2022 18:28)OrnellaSnm escribió: [ -> ]Para entender cuantos punteros se iban a leer hice estas cuentas:
4000/256 = 15,625. Entonces a traves del puntero 15 que está en el 1er bloque de punteros termino accediendo al bloque 4000 (el ptr 15 accede a otro bloque de punteros y uno de esos apunta al bloque 4000).
8096/256 = 31,6. Entonces a traves del puntero 31 (que esta en el 1er bloque de punteros) termino accediendo a otro bloque de punteros que tiene el puntero que apunta al bloque 8096.

Tendria que haberle restado al 4000 los bloques que ya existen en el esquema entero de inodos. Que son los 10 directos y los 256 del inodo indirecto simple. Y a eso dividirlo por 256.
Lo mismo para los 8095.

(4000 - 10 - 256) / 256 = 14,58
(8095 - 10 - 256) / 256 = 30,58

Y del 30 al 14 hay de hecho 17 bloques de punteros que se leen, no 16 como dije antes.

Asi que la rta final seria 4114
Buenas!
Yo tambien creeeo que la respuesta del txt tiene un digito de mas pero cuando revise en el campus estaba asi la respuesta, pero quiza le erraron en la carga del cuestionario, no sabria decirte en este punto
[attachment=21574]
URLs de referencia