851 Semana02 - Clase02y03

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 88

Siempre parece imposible

hasta que se hace


Nelson Mandela
Introducción a Sistemas de
Archivos
Oscar F. D’Cuire Galeano
Objetivos
• Resumir las principales características de
los diferentes tipos de Sistemas de
Archivos.
• Identificar las principales características
de los sistemas de archivos mas
recientes.
Contenido
• Repaso
• Cálculos en disco
• Sistema de Archivos
• Estructura de i nodos
• Primer Proyecto Parcial
• Algunos Sistemas de Archivos
Repaso
• Hoja de Trabajo (liveworksheets)

• https://www.liveworksheets.com/c?a=s&g=851&s=EDD2
&t=neesrqrpzj&mn=uf&d=uxfuzuczzz&h=uxfuusnxzz&m
=d&sr=n&ms=uz&l=fl&i=dstxc&r=il&db=2&f=dzddzcdx&c
d=plrrpstshgqxenleanpzmkoa5ngnngknmxmexgxkgggx
mexxplmggxg
Ejercicios
# 1: ¿Cuál sería la capacidad de
almacenamiento de un disco duro con las
siguientes características:
-16 Cabezas Lectoras/ Escritoras
-50 Sectores/Pista
-2500 Cilindros
-250 Bytes/Sector?
Ejercicios
# 1: ¿Cuál sería la capacidad de almacenamiento de un disco duro con las siguientes características:
-16 Cabezas Lectoras/ Escritoras → 16 superficies o caras
-50 Sectores/Pista
-2500 Cilindros → 2500 pistas
-250 Bytes/Sector?
Ejercicios
# 1: ¿Cuál sería la capacidad de almacenamiento de un disco duro con las siguientes características:
-16 Cabezas Lectoras/ Escritoras → 16 superficies o caras
-50 Sectores/Pista
-2500 Cilindros → 2500 pistas
-250 Bytes/Sector?

16 𝑐𝑎𝑟𝑎𝑠 2500 𝑝𝑖𝑠𝑡𝑎𝑠 50 𝑠𝑒𝑐𝑡𝑜𝑟𝑒𝑠 250 𝑏𝑦𝑡𝑒


𝐸𝑠𝑝𝑎𝑐𝑖𝑜 𝑒𝑛 𝐷𝑖𝑠𝑐𝑜 = ∗ ∗ ∗
1 𝑑𝑖𝑠𝑐𝑜 1 𝑐𝑎𝑟𝑎 1 𝑝𝑖𝑠𝑡𝑎 1 𝑠𝑒𝑐𝑡𝑜𝑟

500 000 000 𝑏𝑦𝑡𝑒𝑠


𝐸𝑠𝑝𝑎𝑐𝑖𝑜 𝑒𝑛 𝐷𝑖𝑠𝑐𝑜 = 1 𝑑𝑖𝑠𝑐𝑜
Ejercicios
# 2: Una unidad de disco cuenta con varios
cilindros que están numerados
consecutivamente del 0 al 299; 4 cabezas
de Lectura/Escritura y 18 sectores por pista,
de 500 bytes cada uno.
• 1) ¿Cuántas pistas tiene el disco en su
totalidad? ¿Cuántos sectores?
• 2) Calcular la capacidad del Disco.
Ejercicios
# 2: Una unidad de disco cuenta con varios cilindros numerados consecutivamente del 0 al 299, 4
cabezas de Lectura/Escritura y 18 sectores por pista, de 500 bytes cada uno.
• 1) ¿Cuántas pistas tiene el disco en su totalidad? ¿Cuántos sectores?
• 2) Calcular la capacidad del Disco.
• 4 cabezas → 4 superficies
• 300 cilindros -> 300 pistas por superficie
Ejercicios
# 2: Una unidad de disco cuenta con varios cilindros numerados consecutivamente del 0 al 299, 4
cabezas de Lectura/Escritura y 18 sectores por pista, de 500 bytes cada uno.
• 1) ¿Cuántas pistas tiene el disco en su totalidad? ¿Cuántos sectores?
• 2) Calcular la capacidad del Disco.
• 4 cabezas → 4 superficies
• 300 cilindros -> 300 pistas por superficie
4 𝑐𝑎𝑟𝑎𝑠 300 𝑝𝑖𝑠𝑡𝑎𝑠
𝐶𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝑝𝑖𝑠𝑡𝑎𝑠 𝑑𝑖𝑠𝑐𝑜 = ∗
1 𝑑𝑖𝑠𝑐𝑜 1 𝑐𝑎𝑟𝑎
1200 𝑝𝑖𝑠𝑡𝑎𝑠
𝐶𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝑝𝑖𝑠𝑡𝑎𝑠 𝑑𝑖𝑠𝑐𝑜 =
1 𝑑𝑖𝑠𝑐𝑜
1200 𝑝𝑖𝑠𝑡𝑎𝑠 18 𝑠𝑒𝑐𝑡𝑜𝑟𝑒𝑠 21600 𝑠𝑒𝑐𝑡𝑜𝑟𝑒𝑠
𝐶𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝑠𝑒𝑐𝑡𝑜𝑟𝑒𝑠 = ∗ =
1 𝑑𝑖𝑠𝑐𝑜 1 𝑝𝑖𝑠𝑡𝑎 1 𝑑𝑖𝑠𝑐𝑜
21600 𝑠𝑒𝑐𝑡𝑜𝑟𝑒𝑠 500 𝑏𝑦𝑡𝑒𝑠 10,800,000 𝑏𝑦𝑡𝑒𝑠
𝐶𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝑠𝑒𝑐𝑡𝑜𝑟𝑒𝑠 = ∗ =
1 𝑑𝑖𝑠𝑐𝑜 1 𝑠𝑒𝑐𝑡𝑜𝑟 1 𝑑𝑖𝑠𝑐𝑜
Sectores
• La dirección física de un sector está constituida por
una terna (cilindro, pista, sector).
• El SO trata el disco como una tabla de bloques de disco
unidimensional, donde cada bloque es un sector.
• La traducción de un número de bloque en una dirección
física depende de la numeración del disco
– Empezar desde el cilindro exterior, superficie superior y un
sector al azar marcándolo como (0, 0, 0)
– Completar los sectores de la pista actual hasta (0, 0, s)
– Pasar a la siguiente superficie con (0, 1, 0)
– Repetir para todas las pistas del cilindro hasta (0, p, s)
– Pasar al siguiente cilindro, superficie superior (1, 0, 0)
– Completar con los cilindros interiores (cl, p, s)
Sectores
Sectores y Direcciones
• En un disco con P pistas/cilindro y S
sectores/pista:
– Para calcular el número de bloque de una
dirección física (i, j, k):
b = i*P*S + j*S + k
– Para obtener la dirección física de un bloque
b:
i = int(b/PS) r = mod(b/PS)
j = int(r/S)
k = mod(r/S)
Ejercicios
# 3: Una unidad de disco tiene 300 cilindros
numerados del 0 al 299, 4 cabezas de
Lectura/Escritura y 18 sectores por pista, de
512 bytes cada uno.
• 1) Calcular la dirección del bloque que se encuentra en
el Cilindro 20, Superficie 2 y Sector 10.
• 2)¿Cuál sería la dirección física del bloque 50410? ¿Es
un bloque válido para este disco?
Ejercicios
# 3: Una unidad de disco tiene 300 cilindros numerados del 0 al 299, 4
cabezas de Lectura/Escritura y 18 sectores por pista, de 512 bytes
cada uno.
• 1) Calcular la dirección del bloque del Cilindro 20, Superficie 2 y Sector 10.
• 2)¿Cuál sería la dirección física del bloque 50410? ¿Es un bloque válido para este
disco?
• Identifique: 2) Dirección física del bloque
– i: clindro = 20 50410
– j: superficie: 2 i = int(b/PS) = int(50410/ (300*18)) = 9
– K: sector: 10 r = mod(b/PS) = mod (50410/ (300*18)) =
1810
– p: pistas por superficie: 300
j = int(r/S) = int(1810/18) = 100
– s: sectores por pista: 18
k = mod(r/S) = mod(1810/18) = 10
• 1) b = i*P*S + j*S + k
• b = 20 * 300 * 18 + 2 * 18 + Dirección física (9, 100, 10)
10
• b = 108000 + 600 + 10 = El disco tiene 4 cabezas de lecturas,
108610 es decir 4 superficies, por lo tanto
j debe ser un valor entre 0 y 3. No
es un bloque válido.
Ejercicios
# 4: Un sector tiene la siguiente dirección
física (5, 8, 59). De características de un
disco para el cual la dirección sea válida.
Tiempos
• Al trabajar con discos hay que considerar
varios tiempos:
– Tiempo de posicionamiento (Tp): tiempo en que se tarda en posicionar una
cabeza lectora/escritora sobre una pista específica.
– Tiempo de latencia: Es el promedio de tiempo para que el disco una vez en la
pista correcta encuentre el sector deseado, es decir el tiempo que tarda el disco
en dar media vuelta.
• Depende de la velocidad del Disco (normalmente dado en RPM)
• Si un disco es de 3600 RPM, quiere decir que será de 60 revoluciones por segundo, es decir 1
revolución cada 0.016 seg., por lo que para dar media vuelta sería 0.08 seg o 80 milisegundos
– Tiempo de transferencia (Tr): Tiempo en que los datos (bits) pueden transferirse
desde el disco a la unidad central.
• Corresponde al tiempo en que un puede leerse un sector
– Tiempo para leer n sectores distribuidos aleatoriamente :
• T = ( Tp + Tr + Tl ) n
– Tiempo para leer n sectores consecutivos:
• T = Tp + Tl + Tr * n
Tiempos HDD vs Tiempos SSD
Ejercicios
# 5: Un disco posee sectores de 500 bytes
cada uno. El disco gira a 7200 rpm y el
tiempo medio de posicionamiento es de 30
milisegundos. La velocidad de transferencia
de datos es de 4 Mb/seg (Asuma 1 MB =
1000 KB = 1000000 Bytes)
1) Calcular el tiempo necesario para leer 1 sector.
2) Calcular el tiempo necesario para leer 3.540 bytes,
distribuidos aleatoriamente en el disco.
3) Calcular el tiempo necesario para leer 3,540 bytes,
distribuidos de manera continua en el disco.
Ejercicios
# 5: Un disco posee sectores de 500 bytes cada uno. El disco gira a 7200 rpm
y el tiempo medio de posicionamiento es de 30 milisegundos. La velocidad de
transferencia de datos es de 4 Mb/seg . (Asuma 1 MB = 1000 KB = 1000000 Bytes)
1) Calcular el tiempo necesario para leer 1 sector.
2) Calcular el tiempo necesario para leer 3,540 bytes, distribuidos aleatoriamente en el disco.
3) Calcular el tiempo necesario para leer 3,540 bytes, distribuidos de manera continua en el disco.

Calcular:
- Tiempo posicionamiento: 30 ms
- Tiempo latencia:
7200 𝑟𝑒𝑣𝑜𝑙𝑢𝑐𝑖𝑜𝑛𝑒𝑠 1 𝑚𝑖𝑛𝑢𝑡𝑜 120 𝑟𝑒𝑣
𝑇𝑖𝑒𝑚𝑝𝑜 𝐿𝑎𝑡𝑒𝑛𝑐𝑖𝑎 = ∗ =
1 𝑚𝑖𝑛𝑢𝑡𝑜 60 𝑠𝑒𝑔 1 𝑠𝑒𝑔
Si 120 rev en 1 segundo, ¿Cuánto tiempo tarda en dar 0.5 revoluciones? = 0.004167 segundos
= 4.167 ms
• Tiempo de transferencia: ¿Cuánto tiempo toma en transferir los datos de un sector?
– Velocidad = 4 MB / s

4 𝑀𝐵 1 𝑠𝑒𝑔𝑢𝑛𝑑𝑜 1 𝑀𝑖𝑙𝑙𝑜𝑛 𝑏𝑦𝑡𝑒𝑠 1 𝑠𝑒𝑐𝑡𝑜𝑟


𝑇𝑖𝑒𝑚𝑝𝑜 𝑇𝑟𝑎𝑛𝑠𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎 = 1 𝑠𝑒𝑔𝑢𝑛𝑑𝑜 ∗ * ∗
1000 𝑚𝑠 1 𝑀𝐵 500 𝑏𝑦𝑡𝑒𝑠
8 𝑠𝑒𝑐𝑡𝑜𝑟
𝑇𝑖𝑒𝑚𝑝𝑜 𝑇𝑟𝑎𝑛𝑠𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎 = → 1/8 ms / sector = 0.125 ms
1 𝑚𝑠
Ejercicios
# 5: Un disco posee sectores de 500 bytes cada uno. El disco gira a 7200 rpm
y el tiempo medio de posicionamiento es de 30 milisegundos. La velocidad de
transferencia de datos es de 4 Mb/seg . (Asuma 1 MB = 1000 KB = 1000000 Bytes)
1) Calcular el tiempo necesario para leer 1 sector.
2) Calcular el tiempo necesario para leer 3,540 bytes, distribuidos aleatoriamente en el disco.
3) Calcular el tiempo necesario para leer 3,540 bytes, distribuidos de manera continua en el disco.

Calcular:
- Tiempo posicionamiento: 30 ms
- Tiempo latencia: 4.167 ms
- Tiempo transferencia: 0.125 ms

- 1) tp + tl + tr = 30 ms + 4.167 ms + 0.125 ms = 34.292 ms


- 2) 3540 / 500 bytes por sector = 8 (no pueden ser 7) → 8 (30+4.167+0.125) = 274.336 ms
- 3) Cuando los sectores son continuos el único tiempo que se repetirá por sector será el de
transferencia:
- Tp + tl + n* tr
- 30 ms + 4.167 ms + 8 * 0.125 ms = 35.167 ms
Archivos
• ¿Cuáles son las principales propiedades de un archivo?
– Tipo (archivo o directorio)
– Nombre
– Extensión
– Número
– Tamaño
Sistema de Archivos
• Son los métodos y estructuras de datos
que un sistema operativo utiliza para
seguir la pista de los archivos de un disco
o partición; es decir, es la manera en la
que se organizan los archivos en el disco.
• También hace referencia a una partición o
disco que se utiliza para almacenamiento.
Sistema de Archivos
• Conceptos al pensar en Sistemas de
Archivos
• Dos grandes componentes:
– Estructuras de datos
• Que tipo de estructuras de datos se utilizan para
almacenar los datos y los metadatos
• Arreglos, bloques, árboles, etc..
– Métodos de acceso
• Cómo se utilizan esas estructuras. Que es
necesario para ejecutar open(), read() write()
Sistema de Archivo Simple
(Very Simple File System -
VSFS)
• Sistema de archivos utilizados para
comprender la manera en que trabajen.
• Utilizado académicamente.
• Limitado físicamente.
Organización General
• Dividimos el disco en bloques
• Los bloques en este FS tienen el mismo
tamaño. (4 KB)

• Los bloques se enumeran del 0 al N-1


• ¿Qué información es la que tiene que
grabarse en el FS?
Información almacenada en FS
• Es necesario almacenar datos de usuario
• En un FS común, ocupan la mayor parte
del espacio.

• También es necesario almacenar


información clave
– Metatadatos
• Datos sobre datos
• Describen contenido, calidad, condición, otras características de los datos.
Inodos
• La metadata de los archivos se almacenan en
estructuras especiales, llamadas inodos.
• Los inodos se encuentran dentro de la tabla de
inodos
• Para almacenar los inodos se reserva una parte
del FS.

• Los inodos son estructuras pequeñas


(128 – 256 bytes)
Inodos
• Si los bloques de memoria que definimos
para el archivo miden 4 KB,
– ¿Cuantos inodos pueden almacenarse en
cada bloque si cada inodo mide 128 bytes?
– ¿Cuantos inodos pueden almacenarse en
cada bloque si cada inodo mide 256 bytes?
• 32 / 16 inodos por bloque
– ¿Cuantos inodos de 256 bytes permite
almacenar nuestra estructura actual?
• 16 * 5 = 80
Inodos
• ¿Que nos ayuda a determinar la cantidad
de inodos posibles dentro de la tabla de
inodos?
– Cantidad máxima de archivos que pueden
definirse dentro del FS.
• Si el mismo FS se asocia a un espacio de
disco mas grande, se podrán alojar mas
inodos y por ende mas archivos.
• ¿Cuántos archivos pueden almacenarse
en nuestro sistema de archivos?
Estructuras de Colocación
• Permiten determinar la disponibilidad o no
de un espacio en disco.
• Ejm.
– Lista de disponibles: a través de punteros nos
permite conocer el siguiente espacio
disponible.
– Bitmap
• Bitmap de datos
• Bitmap de inodos
Estructuras de colocación
• Un bitmap es una estructura simple que
determina si el objeto o bloque en
cuestión se encuentra:
– Libre (0)
– Ocupado (1)
• A cuantos objetos podría hacerse
referencia en un FS que utilice bloques de
4 KB de memoria.
– 4 * 1024 * 8 (bits/byte) = 32,768
Estructuras de colocación

• ¿Cual debería ser el tamaño óptimo para


el bitmap de inodos y para el bitmap de
datos?
– 80/ 8 = 10 bytes para el bm de inodos
– 56 / 8 = 7 bytes para el bm de datos
Superbloque
• Finalmente se reserva información en un nodo para
almacenar información del FS
• Este bloque es conocido como superbloque
• Contiene información como ser:
– Cantidad de inodos
– Cantidad de bloques de datos de usuario
– Donde se aloja la tabla de inodos
• Al montar un FS el Sistema Operativo leerá primero el
superbloque e inicializará varios parámetros.
Organización de archivos
• En un FS los archivos se organizan en un
inodo o estructura parecida.
• Inodo hace referencia a los arreglos
utilizados en UNIX para determinar las
posiciones en disco de un archivo.
• Cada inodo hace referencia a un numero
(inumero) → nombre de bajo nivel del
archivo
Organización de Archivos
Organización de archivos
• En cualquier FS debe ser posible calcular
en que sector del disco se ubican los
datos correspondientes a cada inodo.
• Para ello basado en la ilustración de los
primeros bloques del FS determine:
– Donde inicia el superbloque
– Donde inicia la tabla de inodos
– Cuánto espacio se asigna a los primeros bloques (superbloque
mas bitmaps)
Organización de Archivos
• Para determinar el sector del disco en el
cual se encuentra la información de un
inodo especifico:
inumero ∗ tamaño (inodo) + dirección de inicio de tabla inodos
– Bloque =
𝑡𝑎𝑚𝑎𝑛𝑜 𝑑𝑒𝑙 𝑏𝑙𝑜𝑞𝑢𝑒

bloque ∗𝑡𝑎𝑚𝑎𝑛𝑜 𝑑𝑒 𝑏𝑙𝑜𝑞𝑢𝑒


– Sector Disco = 𝑡𝑎𝑚𝑎𝑛𝑜 𝑑𝑒𝑙 𝑠𝑒𝑐𝑡𝑜𝑟

• Ejercicio
– Determinar en que bloque del FS se encuentran los registros de inodos
con inúmeros 32 y 8. Asuma un tamaño de sector de 512 bytes.
Organización de Archivos
• Dentro de cada inodo se encuentra
información importante sobre el archivo
Organización de Archivos
• Un punto importante dentro de la
estructura de inodos es determinar la
manera en que se accederán a bloques
de datos:
– Bloques directos (apuntan directamente a
direcciones especificas de memoria)
– Bloques indirectos (apuntan a apuntadores,
los cuales a su vez pueden apuntar a otros
bloques indirectos o a bloques directos)
Organización de Archivos
• Otra información que debe almacenarse
en cada inodo es :
– La manera en que hace referencia a la
ubicación de los bloques.
• Puede hacerse mediante diferentes
métodos:
– Punteros directos / indirectos
– Extensiones
– Links
Organización de Archivos
• Apuntadores directos / indirectos
– Directos:
• Apuntan a bloques directos que pertenecen al
archivo.
• Es un enfoque limitado, ya que no se podría tener
mas bloques que la cantidad de apuntadores para
cada inodo.
– Indirectos
• Tener un apuntador especial que apunta a otros
apuntadores.
Organización de Archivos
• Apuntadores
– Indirectos
• Puede ramificarse hasta un
segundo nivel (doble bl. In.)
• ¿Cuál es el tamaño máximo
de archivo en un FS que permite 12 bloques directos de 4 KB, 1 bloque
indirecto con direcciones de bloques de 4 bytes?
- Bloques directos: 12 * 4 KB = 48 KB
- Bloques indirectos: 4 KB/ 4 Bytes = 1024 * 4 KB = 4096 KB
- Total = 48 KB + 4096 KB = 4144 KB
• ¿Cuál es el tamaño máximo de archivo en un FS que permite 12 bloques
directos de 4 KB, y un bloque indirecto con doble bloques indirectos con
direcciones de 4 bytes?
- Bloques directos: 12 * 4 = 48 KB
- Bloques indirectos: 1024 * 1024 * 4 KB = 4194304 KB
- Total = 48 KB + 4194304 KB = 4194352 KB =4096. MB
Organización de Archivos
• Extensiones (Extents)
– Apuntador a bloque directo
– Incluye la longitud (en bloques)
– Pueden tenerse varias extensiones, ya que
es poco probable que siempre se tengan
direcciones contiguas de disco.
– Este enfoque es mas compacto que la
utilización de apuntadores, pero mas limitado
por el espacio
Organización de Archivos
• Links
– Un apuntador a un bloque de datos
– Al final de bloque se encuentra un apuntador
hacia otro bloque
– Tiende a ser un poco lento para manejar
archivos grandes
– Para facilitar el trabajo se utiliza una tabla
donde para cada dirección se almacena la
dirección del siguiente bloque disponible.
– Es la base de FAT
Organización de Archivos
• Estructura de iNodo
Organización de Directorios
• En el vsfs, el contenido de los directorios
se basan en la dupla:
– Nombre
– iNumero
• Los directorios se almacenan como tipos
especiales de archivos, con algún campo dentro
del iNodo indicando que es un “directorio”
• Los bloques de datos de un directorio contienen
la información del directorio, no datos.
Proyecto de Clase

• Disponible en Semana 1 Recursos


• Participar en Foro para asignación de un caso / escenario
– Foro Desarrollo Proyecto
• A partir del caso deberá desarrollar
– Interacción con archivo de datos ( Leer, escribir, eliminar, compactar)
– Interacción con archivo índice (Escribir, eliminar)
– Interacción con lista de disponibles (Escribir)
• Entrega de proyecto
– Domingo 15 de mayo 2022 17h00
• Lenguaje Libre
• Documentación.
– Descripción del código
– Caso a resolver
– Descripción de archivo
– Lenguaje de programación
– Video youtube
Proyecto de Clase

Datos

Lista de
Disponibles
Índice
Organización de Directorios
• En el vsfs, el contenido de los directorios
se basan en la dupla:
– Nombre
– iNumero
• Los directorios se almacenan como tipos
especiales de archivos, con algún campo dentro
del iNodo indicando que es un “directorio”
• Los bloques de datos de un directorio contienen
la información del directorio, no datos.
Organización de los Sistemas de
Archivos
En sistemas de archivos de discos, estos deben considerar la estructura básica: particiones o
volúmenes.
Disco entero

MBR Partición 1 Partición 2 Partición 3 Partición 4

Tabla de particiones

Cada partición debe contener la información de todos los archivos (y directorios si corresponde) que
alberga. Esta información es almacenada en sectores al inicio del volumen, cuya estructura varía
considerablemente entre sistemas de archivos, aunque conceptualmente se puede graficar como sigue.

Bloque de arranque Metadatos Archivos y Directorios

El sector de metadatos
iNumero que identifica contiene la información
sistema de archivos que respecto de donde y como
contiene la partición
están almacenados los
archivos en la partición.
Asignación de Espacio a archivos
Asignación Contigua
Se entrega espacio continuo en el disco a los archivos. Su ventaja es la implementación simple y
el buen desempeño en lectura. La desventaja es la fragmentación excesiva y compleja dado que
se DEBE escribir cada archivo como un todo cada vez. Si se elimina un archivo se requiere otro
de igual tamaño para no desperdiciar lugar, o reubicar los archivos para hacer espacio a un
archivo más grande.
Arch. A Arch. B Arch. C Arch.D Arch. A Arch. C Arch.D

Asignación por Lista Enlazada


Los archivos se mantienen como una lista enlazada de bloques en el disco. Permite que un archivo no
deba estar contiguo en el disco y elimina la fragmentación del disco dado que se pueden utilizar todos
los bloques. Su mayor problema es el acceso aleatorio, pues el S.O. debe ir buscando nodo por nodo la
dirección del siguiente, hasta llegar al que necesita. Por otra parte ahora la cantidad de datos
almacenada en un bloque ya no es potencia de 2, complicando el panorama para la implementación de
página, por ejemplo.

Bloque 0 Bloque 1 Bloque 2 Bloque 3

Bloque 7 en disco Bloque 1 en disco Bloque 5 en disco Bloque 2 en disco

Sistema de Archivos
Asignación de Espacio a archivos
Bloque Físico Sgte Bloque Asignación por Lista Enlazada empleando tabla
0 en la memoria
1 5 Toma el apuntador que antes estaba dentro del
2 -1 bloque en disco, y lo traslada a una tabla
3 exclusivamente para ese efecto. De esta forma el
4 bloque se llena de datos y poder acceder
Término del 5 2 aleatoriamente al archivo es más simple pues no
archivo
6 requiere de accesos a disco dado que todos los
7 1 datos están juntos en memoria
Inicio del
archivo A esto se le conoce como FAT, File Allocation
Table.
i-Nodos
Consiste en asociar a cada archivo una estructura
Atributos del archivo
de datos llamada “i-nodo” (nodo índice).
Bloque de disco Dirección del bloque 0 Esta estructura contiene las direcciones de los
Dirección del bloque 1 bloques en disco que componen al archivo.
Dirección del bloque 2 La mayor ventaja es que solo es necesario tener
Dirección del bloque 3 en memoria las estructuras de los archivos
Dirección del bloque 4 abiertos, pues estas son las únicas que se
Dirección del bloque 5 necesitan para el acceso aleatorio. Para
Dirección del bloque 6 solucionar el problema de que la cantidad de
Dirección del bloque 7 bloques de un archivo no queda en un solo i-
Dirección bloque con más direcc. node, se agrega al final de este la posibilidad de
enlazar en la última posición a un bloque que
contenga más direcciones (solo direcciones)
Control de Bloques Libres
Uno de los problema importantes que debe tratar el sistema de archivos, es la administración de
los bloques libres. Sin importar cual método se emplee, se suelen usar bloques libres del disco
para colocar la estructura que los maneja.

Listas Enlazadas Libres 387 321 12


Se utiliza una lista enlazada de bloques de disco que 123 3 987
contienen números de bloques libres. Se almacenan 32 54 976
tantos números como se pueda en cada bloque. Para 33 55 765
agilizar el proceso de búsqueda de un bloque libre, se 433 56 433
mantiene uno o más bloques en memoria, dejando el resto 766 57 654
en disco. La desventaja es que cuando el bloque esta por 7 77 543
llenarse puede provocar muchas operaciones de I/O al 56 9 21
buscar otro bloque, producto de una varias operaciones
continuas de creación y eliminación de archivos y
directorios. Mapas de bits
Se crea un mapa donde se representa a cada bloque
01000 00011010101
disponible con 1 bit. Es muy eficiente en espacio dado que
01000 11000100010 utiliza 1 bit en lugar de 1 palabra, excepto cuando el disco
00001 01001101010 esta lleno, caso en el cual la lista es más pequeña. Al igual
00001 00011010011 que la lista, se puede dejar solo una porción del mapa en
memoria y el resto en disco; teniendo una ventaja
01000 10011010000
adicional, puesto que las asignaciones realizadas con el
0110100100010001
bloque en memoria serán a bloques cercanos, reduciendo
Sistema de Archivos el overhead de acceso a disco.
Trabajo en Grupo
1 2
HPFS FAT16
FAT12 ZFS
• Fecha, año importante
3 4
exFAT FAT32 • SO / compatibilidad
BTRFS Ext4 • Característica

5 6
Ext2 Ext3
GoogleFS NTFS
7
APFS
REFS
FAT12 FAT16 FAT32 exFAT

HPFS ZFS Ext2 Ext3

Ext4 NTFS REFS BTRFS

GoogleFS APFS
FAT
• FAT: File Allocation Table (Tabla de
Asignación de Archivos)
• Desarrollado originalmente para MS-DOS
• Diseñado para almacenar discos
pequeños y estructura de carpetas
sencillas.
• La tabla de asignación se encuentra al
inicio del archivo.
FAT
Sistema FAT Cantidad de Clusters
manejados
FAT 12 < 4087
FAT 16 4087 – 65,526
FAT 32 65,526 – 268,435,456

Organización de un volumen (unidad) utilizando FAT


FAT 12 – Sector de Arranque
FAT
• Para cada carpeta en un FS FAT se
podrá observar:
– Nombre
– Atributos
– Fechas creación / modificación
–…
– Cluster inicial en la FAT
FAT
• Para cada archivo en la FAT se observa´:
– Estado del cluster
• Libre
• Usado por algún archivo
– Cluster erróneo
– Si es el último cluster de un archivo
FAT 32
• Mejora a FAT 12
• FAT32 fue la respuesta para superar el límite de tamaño
de FAT16 al mismo tiempo que se mantenía la
compatibilidad con MS-DOS. Microsoft decidió
implementar una nueva generación de FAT utilizando
direcciones de cluster de 32 bits (aunque sólo 28 de
esos bits se utilizaban realmente).
• FAT32 apareció por primera vez en Windows 95 R2. Era
necesario reformatear para usar las ventajas de FAT32.
FAT 32
• Aumentan
– Cantidad máxima de archivo (hasta 4 GB
(232−1 bytes).
– Tamaño del cluster
FAT 32
FAT 12
FAT 32
• ¿El problema?
– A medida que incrementaba el tamaño del
disco, se incrementaba el tamaño de la FAT y
por ende se alargaba el tiempo para calcular
el espacio libre por parte del SO.
NTFS
• NTFS: New Technology File System
• Fue introducido en Windows NT y es el FS por defecto que soporta particiones de
mas de 32GB.
• Fue diseñado desde cero, pensado para reemplazar a la familia de FAT eliminando
todas las limitaciones de este, y pensando en poder extenderlo fácilmente en el
futuro.
• Conceptualmente NTFS ve todo en el sistema como un archivo, incluyendo a los
metadatos. El corazón de tal esquema es la MFT (Master File Table) que contiene la
información de donde están los archivos y sus atributos. Aunque esta respaldada en
un %, si se daña los datos de todo el volumen se perderán.
• Utiliza bitmaps para determinar los bloques (clusters) libres en el disco, e indexa los
directorios a través de árboles B+.
• Maneja nuevos elementos:
– Encriptación
– Permisos
– LOG que permite recuperación y manejar la integridad de datos
• Se hace a través del Log File Service (LFS)
NTFS
Tamaño máximo de volumen 16EB (Exibibyte – 1060)
Tamaño máximo de archivo Teórico 16EB
Tamaño máximo de archivo 16TB (Tebibye – 1040)
implementación actual

Número máximo de archivo 232 – 1


Largo nombre de archivo 255 caracteres
Fechas 01/01/1601 – 28/05/60056
Compresión de datos LZ77 (zip) desde WinNT 3.51
Encriptación de datos XDES (Win2000), 3DES (WinXP), AES
(Win2003)
NTFS
• Cada archivo tiene un descriptor en la tabla MFT
(Master File Table) en la cual se detalla toda la
información del archivo:
– Tamaño, ubicación, nombre, etc…
• Son considerados archivos:
– Las tablas
– La misma tabla MFT
• Se reservan el primer y último sector para
especificaciones de configuraciones
Organización de una unidad utilizando
NTFS
NTFS
MFT
• Los archivos se
describen en términos
de atributos.
• Cada archivo se
representa como un
registro en la MFT.
• Si los datos no caben
en el espacio
reservado (1Kbyte)
un atributo extiende el
espacio
NTFS
• En la MFT:
– NTFS reserva los 16 primeros registros de la
tabla para información especial:
• Primer registro: describe la MFT
• Segundo registro: copia de la MFT
– Los archivos y directorios pequeños alojan
sus datos (<=512 bytes) dentro de la MFT, lo
que hace que su búsqueda y acceso sean
mas rápido.
NTFS
• En la MFT:
– Para los archivos y directorios grandes (> 512
bytes) solo se almacenan apuntadores a
clusters externos donde se almacena la
información.

Descripción de un registro de la MFT


REFS
Resilient File System / Sistema de Archivos
Resistente a Errores
• Introducido para Windows Server 2012
• Permite una verificación y autocorrección de datos
• Garantiza la disponibilidad aunque hayan corrupciones
parciales de sectores en disco
• Mas orientado a servidores donde se almacenen
grandes cantidades de datos
• Copy on write
– Se acceden desde varios lugares al mismo dato (uso de
punteros), solamente se cambia el dato cuando hay una
modificación en el dato original.
FS en Linux
FS en Linux
• No hay unidades físicas, mas bien archivos que
hacen referencia a ellas.
• Para cada unas de las particiones o secciones,
el SO asigna un número de Bloques de
Memoria (el equivalente a los Clusters)
FS en Linux
• El sistema de archivos ext2, utilizados como estándar en los sistemas
Linux, derivan del sistema de archivos de Minix. Se crea para poder
solucionar las limitaciones que presentaba el sistema de archivos Minix:
– Tamaño máx. FS: 64Mib
– Tamaño máx. Archivo: 64Mib
– Nombre de archivo: 16 caracteres

• Tamaño máx. FS: 64Mib Tamaño máx. Archivo: 64Mib


Nombre de archivo: 16 caracteres

• El funcionamiento aun así, es en su esencia idéntico. Utiliza inodos para


mantener los metadatos del archivo, mapas de bits para mantener los
bloques de datos e inodos libres.
• Ext3 no es más que una extensión de Ext2 para proveer journaling y otras
funcionalidades al FS.
FS en Linux
ext2 ext3
Tamaño máx. de volumen 16TB (Tebibye – 1040) Tamaño máx. de volumen 2 - 32TB (Tebibye – 1040)

Tamaño máx. de archivo 2TB (Tebibye – 1040) Tamaño máx. de archivo 16GB – 2TB

Número máx. de archivos 218 Número máx. de archivos variable


Fechas 14/12/1901 – 18/01/2038 Fechas 14/12/1901 – 18/01/2038
Compresión de datos Con parche e2compr Compresión de datos No
(bzip, gzip, lz)
Encriptación de datos No Encriptación de datos No
FS en Linux
• Un FS en Linux consta de las siguientes partes:
– Bloque de carga
• Almacena un programa que administra el FS
– Superbloque
• Contiene información del FS
• Es la estructura que contiene la información sobre la partición misma, y esta replicado en cada
grupo de bloques para protegerlo contra fallos en el sistema de archivos.
• Este contiene la cantidad de bloques por grupo y nodos-i por grupo (datos más importantes) entre
otros.
– inodos
• Información de cada archivo
• Es el centro de los FS de Linux
• Cada inodo guarda el dueño del archivo, el modo linux del archivo, el tamaño en bytes, el tiempo
del último acceso, tiempo de la última modificación tanto para el inodo como para los datos.
• El punto más importante del inodo, son los punteros a los bloques de datos que compondrán el
archivo o directorio.

– Área de Datos
Arquitectura de un inodo en
ext2
ext2
• Fue introducido en 1993 y fue desarrollado por Rémy
Card.
• Su propósito original era sobrepasar la limitante del ext
FS original.
• ext2 significa “segundo sistema de archivos extendido”.
• Los archivos se almacenan en bloques de datos, todos
del mismo tamaño
• El sistema ext2 se recomienda en flash drives y usb
drives, ya que no conlleva la sobrecarga del journaling.
• En el sistema ext2, el tamaño máximo de un archivo es
de 2 TiB.
• El tamaño máximo de una partición en el sistema de
archivos ext2 es de32 TiB.

ext3
ext3 es el tercer sistema extendido de archivos.
• Fue introducido en 2001 y fue desarrollado por Stephen
Tweedie.
• Estuvo disponible a partir del Linux Kernel v2.4.15.
• El principal beneficio de ext3 es que permite “journaling”
(diario)
• “Journaling” tiene un área dedica en un file system
donde se rastrean todo los cambios que hay en éste.
Así, cuando el sistema se cae, la posibilidad de
corrupción del file system es menor.
• En el sistema ext3, el tamaño máximo de un archivo es
de 2 TB.
• El tamaño máximo de una partición en el sistema de
archivos ext2 es de32 TB.
ext3
• Journaling
• Consisten en llevar un registro diario en el que se almacena la
información necesaria para restablecer los datos del sistema afectados
por un cambio, en caso de que falle.
• Se obtiene una gran reducción del tiempo necesario para recuperar un
sistema de ficheros después de una caída. Por tanto, podemos decir que
sus principales objetivos son la disponibilidad y confiabilidad.
• Se distinguen 3 tipos de Journaling:
• Journal: se almacenan los metadatos y el contenido
• Ordenado: Solo se almacena metadatos, esto se hace cada vez que
se escribe contenido en el disco.
• Writeback: Solo se almacena metadatos, esto puede hacerse antes
o después de cada escritura en disco.
ext4
• ext4 es la cuarta versión de ext file system.
• Introducido en 2008.
• ext4 estuvo disponible a partir del kernel v2.6.19.
• Es posible desactivar la opción de journaling
• Tamaño máximo de un archivo: hasta 16 TiB.
• Tamaño máximo de una partición: hasta 1 EB
(exabyte). 1 EB = 1024 PB (petabyte). 1 PB =
1024 TB (terabyte).
• El sistema de directorios soporta hasta 64,000
subdirectorios (contrario a los 32,000 en ext3)..
ext4
• Extensiones: Se mejora la eficiencia de los descriptores de disco, reduciendo
los tiempos de borrado de ficheros largos, además de otras ventajas.

• Checksums: ext4 añade dígitos de control (checksum) a los datos, que


mejora la fiabilidad y el rendimiento.
Conclusiones
• Revisamos algunos elementos importantes
utilizados en la organización de archivos y de
directorios.
• Este tipo de modelo de organización de archivos
nos enseña como se usa el espacio en disco.
• Las estructuras iNodo son bloques ordenados
para el manejo de estructuras de sistemas de
archivos en Linux.
Conclusiones
• Con el fin de familiarizarnos con un Sistema de Archivo
introdujimos un pequeño FS llamado Very Simple File
System, para el cual identificamos algunos de sus
elementos:

– S: Superbloque
– i: bitmap de inodos
– d: bitmap de datos
– I: Tabla de inodos
– D: Bloques de datos
Conclusiones
• El almacenamiento puede clasificarse por:
– Volatilidad
– Jerarquía (implicaciones en costo, velocidad y
capacidad)
• Al momento de seleccionar un dispositivo de
almacenamiento secundario deben considerarse:
– Capacidad, fiabilidad, recuperabilidad, disponibilidad
• Conocimos los componentes básicos de un disco:
Sector → pista → cilindro → cara → plato
Conclusiones
• Algunas características de nuestro vsfs:
– Cantidad de bloques
• 64: 56 dedicados para grabar datos
– Espacio por bloque
• 4 KB
– inodos : 256 bytes
• Cantidad máximo de archivos que pueda utilizar el Sistema Operativo
• Para cada inodo hay una entrada de la tabla en la fecha correspondiente
• Cada archivo tiene un número (iNumero) asociado
• Sistema de Archivo: Son los métodos y estructuras de datos que un
sistema operativo utiliza para seguir la pista de los archivos de un
disco o partición; es decir, es la manera en la que se organizan los
archivos en el disco.
• 2 de mayo
– Tarea # 1
• 9 de mayo
Actividades
Pendientes – Actividad Inicial de Periodo
• 19 de mayo
– Tarea Formativa 1 / Wiki
• Proyecto I Parcial
– Participar en Foro antes del 2 de
mayo
– Entrega 22 de mayo
• Esta semana
– Revisar Foro Proyecto
– Revisar Foro Glosario
– Participación en Foro de
Proyecto

También podría gustarte