Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Dudas File System (final 24-07-2012)
Autor Mensaje
paocasfran Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 3
Agradecimientos dados: 6
Agradecimientos: 0 en 0 posts
Registro en: Jun 2013
Mensaje: #1
Dudas File System (final 24-07-2012) Dudas y recomendaciones Sistemas Operativos
Hola! Necesito ayuda con este ejercicio, mas que nada porque tengo dudas con el tema de inodos y file system.

Enunciado:

Suponga que se encuentra rindiendo un examen de la materia "Sistemas de Archivos Avanzados II", y se
encuentra con un enunciado que habla de un sistema de archivos de tipo unix, con inodos de 128 bytes, 257
grupos de bloques, 4 KB para cada bitmap de bloques, punteros de 4 bytes y bloques de 4KB. Provea las
respuestas, son las soluciones asociadas, de lo siguiente:
a. La cantidad de archivos creados como consecuencia de la creación de tres hard-links hacia un
mismo archivo, en distintas partes del filesystem.
b. La cantidad y tipos de punteros que debería tener un inodo para direccionar 4 GB (con un total de 40
bytes para punteros en el inodo, y sabiendo que el acceso a un archivo de hasta 48 Kib debería ser
lo más rápido posible)
c. La cantidad total de espacio disponible para datos, en bytes.


a) Al generar hard links se generan tres archivos nuevos apuntando al mismo inodo.
b) si hice bien las cuentas me da: 256 punteros por bloque. Como me dice que son 40 bytes para punteros de inodo, puedo usar como máximo 10 punteros, entonces usaria:
8 punteros directos
1 indirecto simple (direcciona hasta 262144 bytes) y me pide acceso rápido para 48kb (49.152 bytes) Con los directos no me alcanza.
1 indirecto triple direcciona hasta 16 GB (con los indirectos dobles no llegaba a 4BG como pedía el enunciado.

c) Con este punto se me generan dudas, dado que no encontré explicación sobre como calcular el tamaño del file system, encontré esta fórmula:
Tamaño máximo teórico del filesystem = 2 ^ n * TB
n: tamaño de puntero
TB: tamaño de bloque

Pero en este caso tengo el dato del bitmap, y también el del inodo. Eso me confunde. wall

Desde ya muchas gracias!
Saludos

Paola
30-01-2014 21:02
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Agus2205 Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 22
Agradecimientos dados: 14
Agradecimientos: 6 en 4 posts
Registro en: Nov 2008
Mensaje: #2
RE: Dudas File System (final 24-07-2012)
No tengo este tema demasiado fresco que digamos (2 años) pero me saltaron un par de dudas:
Cita:"b) si hice bien las cuentas me da: 256 punteros por bloque."
Los bloques son de 4Kb y los punteros son de 4 bytes. 4096/4= 1024 punteros que entran por bloque. Me estoy olvidando de tener en cuanta algun dato para eso?

Cita:1 indirecto simple (direcciona hasta 262144 bytes)
Si no recuerdo mal la cuanta era algo asi:
Cant_de_ptr * (tamaño_bloque / longitud_puntero)^nivel_indireccion * tamaño_bloque = tamaño_direccionado
1 indirecto simple seria:
1*(4096/4)^1 * 4096 = 4Mb direccionados con ese puntero ind. simple.

Cita:1 indirecto triple direcciona hasta 16 GB
1*(4096/4)^3 * 4096 = 4Tb direccionados como maximo con 1 puntero ind. triple.

Con 1 indirecto doble direccionas 4gb justo. (1*(4096/4)^2*4096= 4GB)
Entonces, lo de los 10 punteros por inodo esta bien. Y como te pide acceso lo mas rapido posible a archivos de hasta 48Kb y archivos de hasta 4gb:
1- Necesitarias 12 directos para archivos de 48Kb pero no te alcanza. DESCARTADO. Y como maximo 9 directos deberiamos usar.
2- 9 directos y uno ind simple no te da para los 4gb. DESCARTADO
3- 9 direcatos y uno ind doble. Cumplis los 4gb con el doble y necesitarias 18 accesos para leer 48kb (9 accesos directos y 9 por ind. dobles (3 por cada bloque a leer))
4- 8 directos, 1 ind. simple y 1 ind. doble. Alcanzas los 4gb con el doble y necesitarias 16 accesos para leer 48kb (8 directos y 8 por ind. simple (2 por cada bloque a leer)). ESTA SERIA LA MEJOR OPCION.

Espero estar en lo correcto y sino, espero que me puedas iluminar con tu sabiduria porque pienso ir a rendir en estas fechas! Aunque me falta taaaaanto! Jajajajaja
Del resto de las preguntas realmente no me acuerdo nada todavia.

Me puse a pensar el punto C. (De nuevo, esta parte teorica no la refresque todavia asi que puedo estar flasheando pero se me ocurrio lo siguiente)
Pide el tamaño disponible para DATOS con lo cual yo haria TAMAÑO DEL DISCO - TAMAÑO DEL FILE SYSTEM (inodos + bitmaps). Mi duda es si deberia tener en cuenta los posibles bloques ocupados para la indireccion segun la respuesta de la b) pero bueno... sigo...
Te dice que usa grupos de bloques y para cada grupo usa 4Kb de BITMAP. 4kb = 4096 bytes = 32768 bits (osea esa cantidad de bloques por grupo).
32768 * 257 grupos = 8421376 bloques de 4Kb c/u => 33685504 Kb = 34493956096 bytes = TAMAÑO DEL DISCO

Despues tendriamos que restarle 257 * 4Kb que corresponden a todos los bitmaps y 128bytes*cant_inodos, pero no te dicen cuantos tiene y sinceramente no recuerdo si hay alguna forma de calcularlos o algo asi.

(Este mensaje fue modificado por última vez en: 06-02-2014 16:41 por Agus2205.)
05-02-2014 16:36
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Agus2205 recibio 2 Gracias por este post
paocasfran (05-02-2014), CarooLina (16-06-2015)
paocasfran Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 3
Agradecimientos dados: 6
Agradecimientos: 0 en 0 posts
Registro en: Jun 2013
Mensaje: #3
RE: Dudas File System (final 24-07-2012)
(05-02-2014 16:36)Agus2205 escribió:  No tengo este tema demasiado fresco que digamos (2 años) pero me saltaron un par de dudas:
Cita:"b) si hice bien las cuentas me da: 256 punteros por bloque."
Los bloques son de 4Kb y los punteros son de 4 bytes. 4096/4= 1024 punteros que entran por bloque. Me estoy olvidando de tener en cuanta algun dato para eso?

Está ok, yo tomé bloques de 1kb, cualquiera de ahí el error GRACIAS!!!!


Cita:1 indirecto simple (direcciona hasta 262144 bytes)
Si no recuerdo mal la cuanta era algo asi:
Cant_de_ptr * (tamaño_bloque / longitud_puntero)^nivel_indireccion * tamaño_bloque = tamaño_direccionado
1 indirecto simple seria:
1*(4096/4)^1 * 4096 = 4Mb direccionados con ese puntero ind. simple.

Cita:1 indirecto triple direcciona hasta 16 GB
1*(4096/4)^3 * 4096 = 4Tb direccionados como maximo con 1 puntero ind. triple.

Con 1 indirecto doble direccionas 4gb justo. (1*(4096/4)^2*4096= 4GB)
Entonces, lo de los 10 punteros por inodo esta bien. Y como te pide acceso lo mas rapido posible a archivos de hasta 48Kb y archivos de hasta 4gb:
1- Necesitarias 12 directos para archivos de 48Kb pero no te alcanza. DESCARTADO. Y como maximo 9 directos deberiamos usar.
2- 9 directos y uno ind simple no te da para los 4gb. DESCARTADO
3- 9 direcatos y uno ind doble. Cumplis los 4gb con el doble y necesitarias 18 accesos para leer 48kb (9 accesos directos y 9 por ind. dobles (3 por cada bloque a leer))
4- 8 directos, 1 ind. simple y 1 ind. doble. Alcanzas los 4gb con el doble y necesitarias 16 accesos para leer 48kb (8 directos y 8 por ind. simple (2 por cada bloque a leer)). ESTA SERIA LA MEJOR OPCION.

Espero estar en lo correcto y sino, espero que me puedas iluminar con tu sabiduria porque pienso ir a rendir en estas fechas! Aunque me falta taaaaanto! Jajajajaja
Del resto de las preguntas realmente no me acuerdo nada todavia.

Bueno bien parece que te acordás bastante, estoy de acuerdo también con este punto.

Me puse a pensar el punto C. (De nuevo, esta parte teorica no la refresque todavia asi que puedo estar flasheando pero se me ocurrio lo siguiente)
Pide el tamaño disponible para DATOS con lo cual yo haria TAMAÑO DEL DISCO - TAMAÑO DEL FILE SYSTEM (inodos + bitmaps). Mi duda es si deberia tener en cuenta los posibles bloques ocupados para la indireccion segun la respuesta de la b) pero bueno... sigo...
Te dice que usa grupos de bloques y para cada grupo usa 4Kb de BITMAP. 4kb = 4096 bytes = 32768 bits (osea esa cantidad de bloques por grupo).
32768 * 257 grupos = 8421376 bloques de 4Kb c/u => 33685504 Kb = 34493956096 bytes = TAMAÑO DEL DISCO

Despues tendriamos que restarle 257 * 4Kb que corresponden a todos los bitmaps y 128bytes*cant_inodos, pero no te dicen cuantos tiene y sinceramente no recuerdo si hay alguna forma de calcularlos o algo asi.



Entiendo lo que comentás pero creo que no hay forma de saber cantidad de inodos en este caso. Y me está faltando sustento teórico en este tema de bitmaps y grupos de bloques. MAÑANA HAY CLASE DE CONSULTA EN MEDRANO A LAS 19.00 HS TE CUENTO.

Igual ese "PUNTEROS DE 4 BYTES" es cualquiera. Con 4 bytes direccionas 16 bloques (64Kb de disco) y segun tu cuenta de punteros por bloque tomaste punteros de 16 bytes (65536 bloques posibles a direccionar = 256mb de disco).
Es muy raro... o se cagaron en ese detalle. ??? El puntero es de 4bytes yo me equivoqué en las cuentas. =(


Con respecto al punto a) de hardlinks, mi rta fue cualquiera. La respuesta correcta es que no se pueden generar hardlinks en distintas partes del file system, tienen que ser en una misma unidad.

Diferencias entre hard links y softlinks
Existen dos tipos de enlaces, los enlaces simbólicos (softlink) y los enlaces duros (hardlink)



Cuando creamos un enlace simbólico significa que creamos un puntero a dicho fichero o directorio. Si borrases dicho fichero o directorio el enlace quedaría apuntando a la nada.


Por otra parte si creas un enlace duro, lo que hace es crear una copia del fichero o, la ventaja de este tipo de enlace es que si modificas alguno de los dos siempre se modificaran los dos y si borras uno el otro no se perdería.


Normalmente no se hacen enlaces duros ya que implica tener duplicada la información ocupando espacio de manera innecesaria, por esta razón solo el root tiene permisos para hacer este tipo de enlaces.


Otra desventaja de los enlaces duros es que sólo se pueden hacer entre ficheros de una misma unidad. Los hardlinks no se pueden hacer entre directorios!!!



Te dejo un link donde explican bien esta diferencia:

http://rm-rf.es/diferencias-entre-soft-s...ard-links/


Muchas gracias por tu respuesta!
Saludos!

Paola
05-02-2014 21:30
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Agro Sin conexión
Presidente del CEIT
Su marca puede estar aquí
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 6.760
Agradecimientos dados: 252
Agradecimientos: 892 en 293 posts
Registro en: Jul 2008
Facebook Twitter
Mensaje: #4
RE: Dudas File System (final 24-07-2012)
(05-02-2014 21:30)paocasfran escribió:  Diferencias entre hard links y softlinks
Existen dos tipos de enlaces, los enlaces simbólicos (softlink) y los enlaces duros (hardlink)

Cuando creamos un enlace simbólico significa que creamos un puntero a dicho fichero o directorio. Si borrases dicho fichero o directorio el enlace quedaría apuntando a la nada.

Por otra parte si creas un enlace duro, lo que hace es crear una copia del fichero o, la ventaja de este tipo de enlace es que si modificas alguno de los dos siempre se modificaran los dos y si borras uno el otro no se perdería.

Normalmente no se hacen enlaces duros ya que implica tener duplicada la información ocupando espacio de manera innecesaria, por esta razón solo el root tiene permisos para hacer este tipo de enlaces.

Otra desventaja de los enlaces duros es que sólo se pueden hacer entre ficheros de una misma unidad. Los hardlinks no se pueden hacer entre directorios!!!

Guarda paocasfran que interpretaste mal esto.
El softlink es un tipo de archivo especial (de tipo link) que guarda el path de un archivo. Si vos cambias ese archivo de lugar o lo borras, el path del softlink deja de tener sentido, por lo que se dice que "apunta a nada". Como todo archivo, tiene su inodo propio. Y como apunta a un path, ese path puede ser un directorio, un archivo de otro filesystem, etc.
Cuando creas un hardlink no haces una copia de un archivo, sino que tu entrada de directorio apunta a un inodo que ya existe. Por esto simula ser una copia, y cuando modificas el archivo, todos los que accedan lo ven modificado. El inodo, con este fin, tiene un contador de enlaces. Cuando creas un archivo se pone en 1. Cuando haces un hardlink se incrementa. A la hora de borrar el archivo, se decrementa, y si es = a 1 se "borra el archivo" (con las operaciones que implique atras, muchas veces simplemente se marcan los bloques y el inodo como libres). Como apunta a un inodo y no a un path, no podes apuntar a otro filesystem.

Exitos con eso!

[Imagen: digitalizartransparent.png]
06-02-2014 11:22
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Agro recibio 3 Gracias por este post
paocasfran (06-02-2014), carlitos_sala (14-02-2014), CarooLina (16-06-2015)
paocasfran Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 3
Agradecimientos dados: 6
Agradecimientos: 0 en 0 posts
Registro en: Jun 2013
Mensaje: #5
RE: Dudas File System (final 24-07-2012)
Comprendido! Muchas gracias por la aclaración.

Saludos
06-02-2014 16:01
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Agus2205 Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 22
Agradecimientos dados: 14
Agradecimientos: 6 en 4 posts
Registro en: Nov 2008
Mensaje: #6
RE: Dudas File System (final 24-07-2012)
Por las dudas, aclaro que mande la fruta mas grande del universo con el tema de los 4 bytes y la aclaracion final... me olvide un pequeñisimo detalle... multiplicar por 8 para la cantidad de bits y en mi cabeza hice directo 2^4 = 16 bloques == una memoria mas chica que la mier* jajajaja.
Vamos de nuevo.
4 bytes = 32 bits => direccionas 4G (2^32) bloques => Por el tamaño de bloque (4KB = 2^12 Bytes) => 2^32 * 2^12 = 2^44 = 16TB.
(Este mensaje fue modificado por última vez en: 06-02-2014 16:48 por Agus2205.)
06-02-2014 16:48
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Andre Sin conexión
Empleado de Fotocopiadora
Sin estado :(
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 26
Agradecimientos dados: 4
Agradecimientos: 6 en 2 posts
Registro en: Mar 2011
Mensaje: #7
RE: Dudas File System (final 24-07-2012)
Hola tengo la misma duda! para el pto c que pide

c. La cantidad total de espacio disponible para datos, en bytes.

es el tamaño del FS no?
yo lo calculé asi Tamaño máximo teórico del filesystem = 2 ^ n * TB y me dio 16 TB

pero no entiendo donde usar los datos de

257 grupos de bloque
inodos de 128 bytes y
4kb para cada bitmap de bloques

alguien lo entiende? gracias!
09-02-2014 23:47
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
carlitos_sala Sin conexión
Empleado de Fotocopiadora
Sin estado :(
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 33
Agradecimientos dados: 2
Agradecimientos: 0 en 0 posts
Registro en: Oct 2011
Mensaje: #8
RE: Dudas File System (final 24-07-2012)
(06-02-2014 11:22)Adriano escribió:  
(05-02-2014 21:30)paocasfran escribió:  Diferencias entre hard links y softlinks
Existen dos tipos de enlaces, los enlaces simbólicos (softlink) y los enlaces duros (hardlink)

Cuando creamos un enlace simbólico significa que creamos un puntero a dicho fichero o directorio. Si borrases dicho fichero o directorio el enlace quedaría apuntando a la nada.

Por otra parte si creas un enlace duro, lo que hace es crear una copia del fichero o, la ventaja de este tipo de enlace es que si modificas alguno de los dos siempre se modificaran los dos y si borras uno el otro no se perdería.

Normalmente no se hacen enlaces duros ya que implica tener duplicada la información ocupando espacio de manera innecesaria, por esta razón solo el root tiene permisos para hacer este tipo de enlaces.

Otra desventaja de los enlaces duros es que sólo se pueden hacer entre ficheros de una misma unidad. Los hardlinks no se pueden hacer entre directorios!!!

Guarda paocasfran que interpretaste mal esto.
El softlink es un tipo de archivo especial (de tipo link) que guarda el path de un archivo. Si vos cambias ese archivo de lugar o lo borras, el path del softlink deja de tener sentido, por lo que se dice que "apunta a nada". Como todo archivo, tiene su inodo propio. Y como apunta a un path, ese path puede ser un directorio, un archivo de otro filesystem, etc.
Cuando creas un hardlink no haces una copia de un archivo, sino que tu entrada de directorio apunta a un inodo que ya existe. Por esto simula ser una copia, y cuando modificas el archivo, todos los que accedan lo ven modificado. El inodo, con este fin, tiene un contador de enlaces. Cuando creas un archivo se pone en 1. Cuando haces un hardlink se incrementa. A la hora de borrar el archivo, se decrementa, y si es = a 1 se "borra el archivo" (con las operaciones que implique atras, muchas veces simplemente se marcan los bloques y el inodo como libres). Como apunta a un inodo y no a un path, no podes apuntar a otro filesystem.

Exitos con eso!

Perdón Adriano que te hago una consulta,
Entonces, ¿cuántos bloques ocuparía un hardlink? ¿O un hardlink simplemente implica una entrada más en el directorio que apunte al mismo inodo que la entrada en el directorio del archivo original? Ya que estamos, ¿cuántos bloques ocuparía un softlink?

Y por otra parte aprovecho para preguntar si es acertado calcular el espacio disponible para los datos como pusieron más arriba, restándole al espacio total del disco, el espacio ocupado por los vectores bitmap, y por los inodos (que no sabemos cuántos son).

Muchas gracias.
14-02-2014 18:03
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 2 invitado(s)