UTNianos

Versión completa: [Sistemas Operativos] Final 19-02-2013
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2 3
tengo entendido que si, igual el tiempo paso, asique estaría bueno que alguien mas te lo confirme

yo la parte de inodos la habia sacado de algunos resueltos + el libro porque cuando la curse no le di mucha bola (y pasaron 2 años entre cursada + rendir)
(16-02-2014 20:39)eltipito escribió: [ -> ]
(04-03-2013 00:23)gonnza escribió: [ -> ]el 2 me quedó asi:

sabiendo que un bloque tiene 512 bytes, y los punteros 32 bits = 4 bytes, cada bloque de indireccion puede tener \[\frac{512}{4}=128\] entradas.

maxima capacidad de archivo:

5 x 512 bytes + 2 x 128 x 512 bytes + 2 x \[128^{2}\] x 512 bytes + 1 x \[128^{3}\] x 512 bytes = 1090652672 bytess, que son aproximadamente 1 GB 16 MB 130 KB


sobre el b, si tnego qe acceder al byte 16911366, y cada bloque son 512 bytes, entonces, dividiendo puedo obtener el numero de bloques que ocupa \[\frac{16911366}{512} = 33030.011..\]
entonces leyendo el bloque numero 33031 obtengo, ademas de otros, el byte que quiero leer.

de los 33031 punteros que necesito:
Los directos son 5, entonces quedan 33031 - 5 = 33026 punteros

los indirectos, tengo 128 punteros por cada indirecto, son 2, asique 33026 - 2 x 128 = 32770

Los doblemente indirectos, son 2, y cada uno tiene \[128^{2}\] punteros

entonces 32770 - 2 x \[128^{2}\] = 2

quedan 2 bloques por leer, asique con 2 punteros a datos quedan.. claramente estaran en el primer indirecto triple, en el primer bloque de indireccion de cada nivel..

Como el inodo ya esta en memoria, solo tengo que leer:

- el unico puntero indirecto triple
- el primer nivel de indirección
- el segundo nivel de indirección
- el tercer nivel de indirección
- el dato


son entonces 5 lecturas



sobre el c, esta respondido en la pagina anterior, tiene que ver en que si no colocas los atributos de seguridad (permisos) en el inodo, la otra opcion es en la entrada de directorio. Supongamos que es asi, que las colocamos ahi, con un hard link tenes otra entrada (distinta, con distinto nombre) en el directorio que apunta al mismo inodo, entonces basicamente podes abrir el archivo sin leer dichos atributos.
Con un soft link, como es un archivo nuevo, totalmente distinto (con su propio inodo) cuyo contenido es la entrada de directorio original, ahi no hay problema, porque igual leerias la entrada ahi y tendrias los atributos


espero sirva, y que este bien jajaj

Cuando uno hace tiene que contar el acceso a disco de un determinado bloque
Cuenta el acceso al puntero Directo??

Yo lo había hecho igual, pero no sumo el acceso al ptr directo. (Me da 4 accesos)

Accesos: 0 acceso ptr directo + 1 acceso ptr indirecto + 1 acceso ptr doblemente indirecto + 1 acceso ptr triplem indirecto + 1(Acceso al dato) = 4

Se cuenta el acceso al puntero directo?

Para mi también son 4 accesos. Porque el enunciado aclara "que el inodo correspondiente al archivo ya se lo conoce". Por esta aclaración no se cuenta el acceso al puntero triple-indirecto. Por lo tanto serían 4 accesos para leer el byte que me piden según entiendo.
(04-03-2013 00:23)gonnza escribió: [ -> ]el 2 me quedó asi:

sabiendo que un bloque tiene 512 bytes, y los punteros 32 bits = 4 bytes, cada bloque de indireccion puede tener \[\frac{512}{4}=128\] entradas.

maxima capacidad de archivo:

5 x 512 bytes + 2 x 128 x 512 bytes + 2 x \[128^{2}\] x 512 bytes + 1 x \[128^{3}\] x 512 bytes = 1090652672 bytess, que son aproximadamente 1 GB 16 MB 130 KB


sobre el b, si tnego qe acceder al byte 16911366, y cada bloque son 512 bytes, entonces, dividiendo puedo obtener el numero de bloques que ocupa \[\frac{16911366}{512} = 33030.011..\]
entonces leyendo el bloque numero 33031 obtengo, ademas de otros, el byte que quiero leer.

de los 33031 punteros que necesito:
Los directos son 5, entonces quedan 33031 - 5 = 33026 punteros

los indirectos, tengo 128 punteros por cada indirecto, son 2, asique 33026 - 2 x 128 = 32770

Los doblemente indirectos, son 2, y cada uno tiene \[128^{2}\] punteros

entonces 32770 - 2 x \[128^{2}\] = 2

quedan 2 bloques por leer, asique con 2 punteros a datos quedan.. claramente estaran en el primer indirecto triple, en el primer bloque de indireccion de cada nivel..

Como el inodo ya esta en memoria, solo tengo que leer:

- el unico puntero indirecto triple
- el primer nivel de indirección
- el segundo nivel de indirección
- el tercer nivel de indirección
- el dato


son entonces 5 lecturas



sobre el c, esta respondido en la pagina anterior, tiene que ver en que si no colocas los atributos de seguridad (permisos) en el inodo, la otra opcion es en la entrada de directorio. Supongamos que es asi, que las colocamos ahi, con un hard link tenes otra entrada (distinta, con distinto nombre) en el directorio que apunta al mismo inodo, entonces basicamente podes abrir el archivo sin leer dichos atributos.
Con un soft link, como es un archivo nuevo, totalmente distinto (con su propio inodo) cuyo contenido es la entrada de directorio original, ahi no hay problema, porque igual leerias la entrada ahi y tendrias los atributos


espero sirva, y que este bien jajaj

2)
a) concuerdo
b)
Este ejercicio es casi igual que el 8 de la guia de 2012 de FS.
Te pide leer el byte numero tal o sea que hay que ver en que indireccion cae.
Como cae en al indireccion triple PARA MI
tenes
-un acceso al indirecto triple
-un acceso al doble DE ESE TRIPLE
-un acceso al simple DE ESE DOBLE DEL TRIPLE
-un acceso al dato byte 16911366

Son 4 accesos.
Ahora bien si te pidiera del byte 0 al byte 16911366 ahi si tenes que leer bastantes bloques y tenes un acceso por cada bloque MAS la indireccion.
Estoy bastante seguro que es asi y sino me rompen el paradigma ajajja
(20-02-2013 17:58)Adriano escribió: [ -> ]Direcciones lógicas de 32 bits
Tamaño de página de 1 Kbyte = 2^10 bytes → se necesitan 10 bits para el desplazamiento
El número máximo de páginas será de 2 (32 -10)= 2^22 páginas
La tabla de páginas ocupa 2^22 .4 bytes = 16Mbytes
En total haría falta 16Mbytes/1Kbyte=16.2^10 páginas o marcos

Buenas!!

No estoy entendiendo. Llegué hasta 2 a la 22.

Lo que entiendo es lo siguiente: Si tengo 32 bits para direccionar, voy a tener 22 bits para el número de página (este es el dato que me sirve) y 10 bits para el offset.

Usando el dato de 22 bits, yo obtengo la cantidad total de marcos que puedo direccionar con 32 bits. Por otra parte, si cada entrada de la tabla de páginas es de 32 bit (es de 4bytes por dato), llego a la conclusión de que el número que calculo haciendo 2 a la 22 es el número que estoy buscando.

Tengo un error, pero no puedo detectar cual, mirando la cuenta entiendo y está bien. Pero no entiendo en mi razonamiento cual es la parte que está mal, está claro que está mal porque la cuenta da distinta, pero no me logro dar cuenta de lo que estoy razonando en qué me estoy equivocando.

Gracias!!
Páginas: 1 2 3
URLs de referencia