Sistemas de Archivos

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Sistemas de Archivos por Mind Map: Sistemas de Archivos

1. Implementación de Sistemas de Archivos

1.1. Distribución del sistema de archivos

1.1.1. Los sistemas de archivos se almacenan en discos. La mayoría de los discos se pueden dividir en una o más particiones, con sistemas de archivos independientes en cada partición.

1.2. Implementación de archivos

1.2.1. Asignación contigua

1.2.1.1. El esquema de asignación más simple es almacenar cada archivo como una serie contigua de bloques de disco.

1.2.2. Asignación de lista enlazada (ligada)

1.2.2.1. En este método se puede utilizar cada bloque del disco. No se pierde espacio debido a la fragmentación del disco.

1.2.3. Asignación de lista enlazada utilizando una tabla en memoria

1.2.3.1. Utilizando esta organización, el bloque completo está disponible para los datos. Además, el acceso aleatorio es mucho más sencillo. Aunque aún se debe seguir la cadena para encontrar un desplazamiento dado dentro del archivo, la cadena está completamente en memoria y se puede seguir sin necesidad de hacer referencias al disco.

1.3. Implementación de directorios

1.3.1. Esta entrada provee la información necesaria para encontrar los bloques de disco.

1.4. Archivos compartidos

1.5. Sistemas de archivos estructurados por registro

1.6. Sistemas de archivos por bitácora

1.6.1. La idea básica aquí es mantener un registro de lo que va a realizar el sistema de archivos antes de hacerlo, por lo que si el sistema falla antes de poder realizar su trabajo planeado, al momento de re-arrancar el sistema puede buscar en el registro para ver lo que estaba ocurriendo al momento de la falla y terminar el trabajo.

1.6.1.1. 1. Quitar el archivo de su directorio.

1.6.1.2. 2. Liberar el nodo-i y pasarlo a la reserva de nodos-i libres.

1.6.1.3. 3. Devolver todos los bloques de disco a la reserva de bloques de disco libres.

1.7. Sistemas de archivos virtuales

2. Todas las aplicaciones de computadora requieren almacenar y recuperar información. Mientras un proceso está en ejecución, puede almacenar una cantidad limitada de información dentro de su propio espacio de direcciones.

2.1. En consecuencia, tenemos tres requerimientos esenciales para el almacenamiento de información a largo plazo:

2.1.1. 1. Debe ser posible almacenar una cantidad muy grande de información.

2.1.2. 2. La información debe sobrevivir a la terminación del proceso que la utilice.

2.1.3. 3. Múltiples procesos deben ser capaces de acceder a la información concurrente mente.

2.2. Durante muchos años se han utilizado discos magnéticos para este almacenamiento de largo plazo, así como cintas y discos ópticos, aunque con un rendimiento mucho menor.

2.2.1. Los archivos son unidades lógicas de información creada por los procesos. En general, un disco contiene miles o incluso millones de archivos independientes. De hecho, si concibe a cada archivo como un tipo de espacio de direcciones, no estará tan alejado de la verdad, excepto porque se utilizan para modelar el disco en vez de modelar la RAM.

3. Archivos

3.1. Estructura de archivos

3.1.1. Secuencia de bytes

3.1.2. Secuencia de registros

3.1.3. Árbol

3.2. Operaciones de archivos

3.2.1. Los archivos existen para almacenar información y permitir que se recupere posteriormente. Distintos sistemas proveen diferentes operaciones para permitir el almacenamiento y la recuperación.

3.2.1.1. 1. Create. El archivo se crea sin datos.

3.2.1.2. 2. Delete. Cuando el archivo ya no se necesita, se tiene que eliminar para liberar espacio en el disco.

3.2.1.3. 3. Open. Antes de usar un archivo, un proceso debe abrirlo.

3.2.1.4. 4. Close. Cuando terminan todos los accesos, el archivo se debe cerrar para liberar espacio en la tabla interna.

3.2.1.5. 5. Read. Los datos se leen del archivo.

3.2.1.6. 6. Write. Los datos se escriben en el archivo otra vez, por lo general en la posición actual.

3.2.1.7. 7. Append. Esta llamada es una forma restringida de write. Sólo puede agregar datos al final del archivo.

3.2.1.8. 8. Seek. Para los archivos de acceso aleatorio, se necesita un método para especificar de dónde se van a tomar los datos.

3.2.1.9. 9. Get attributes. Cuando se llama a make, este programa examina los tiempos de modificación de todos los archivos fuente y objeto, con los que calcula el mínimo número de compilaciones requeridas para tener todo actualizado.

3.2.1.10. 10. Set attributes. Algunos de los atributos puede establecerlos el usuario y se pueden modificar después de haber creado el archivo.

3.2.1.11. 11. Rename. Cambiarle el nombre a un archivo existente.

3.3. Atributos de archivos

3.3.1. Nombre y datos

3.4. Tipos de archivos

3.4.1. Los archivos cuyos bytes o registros se pueden leer en cualquier orden se llaman archivos de acceso aleatorio.Estos son esenciales para muchas aplicaciones, como los sistemas de bases de datos.

3.4.1.1. Archivos especiales de bloques

3.4.1.1.1. Se utilizan para modelar discos.

3.4.1.2. Archivos especiales de caracteres

3.4.1.2.1. Se relacionan con la entrada/salida y se utilizan para modelar dispositivos de E/S en serie, tales como terminales, impresoras y redes.

3.5. Acceso a archivos

3.6. Archivos regulares

3.6.1. Contienen información del usuario.

3.7. Nomenclatura de archivos

3.7.1. Cuando un proceso crea un archivo le proporciona un nombre. Cuando el proceso termina, el archivo continúa existiendo y puede ser utilizado por otros procesos mediante su nombre.

4. Directorios

4.1. Nombres de rutas

4.1.1. Cuando el sistema de archivos está organizado como un árbol de directorios, se necesita cierta forma de especificar los nombres de los archivos.

4.2. Sistemas de directorios jerárquicos

4.2.1. La capacidad de los usuarios para crear un número arbitrario de subdirectorios provee una poderosa herramienta de estructuración para que los usuarios organicen su trabajo.

4.3. Sistemas de directorios de un solo nivel

4.3.1. Las ventajas de este esquema son su simpleza y la habilidad de localizar archivos con rapidez. A menudo se utiliza en dispositivos incrustados simples como teléfonos, cámaras digitales y algunos reproductores de música portátiles.

4.4. Operaciones de directorios

4.4.1. 1. Create.

4.4.2. 2. Delete.

4.4.3. 3. Opendir.

4.4.4. 4. Closedir.

4.4.5. 5. Readdir.

4.4.6. 6. Rename.

4.4.7. 7. Link.

4.4.8. 8. Unlink.

5. Administración y optimzación de sistemas de Archivos

5.1. Rendimiento del sistema de archivos

5.1.1. Uso de caché

5.1.2. Lectura adelantada de bloque

5.1.3. Reducción del movimiento del brazo del disco

5.2. Consistencia del sistema de archivos

5.2.1. Muchos sistemas de archivos leen bloques, los modifican y los escriben posteriormente. Si el sistema falla antes de escribir todos los bloques modificados, el sistema de archivos puede quedar en un estado inconsistente.

5.3. Cuotas de disco

5.3.1. Para evitar que los usuarios ocupen demasiado espacio en disco, los sistemas operativos multiusuario proporcionan un mecanismo para imponer las cuotas de disco.

5.4. Respaldos del sistema de archivos

5.5. Administración del espacio en disco

5.6. Tamaño del bloque

5.6.1. Dada la forma en que están organizados los discos, el sector, la pista y el cilindro son candidatos obvios para la unidad de asignación (aunque todos ellos son dependientes del dispositivo, lo cual es una desventaja). En un sistema de paginación, el tamaño de la página también es uno de los principales contendientes.

5.7. Registro de bloques libres

5.7.1. El primero método consiste en utilizar una lista enlazada de bloques de disco, donde cada bloque contiene tantos números de bloques de disco libres como pueda

5.7.2. La otra técnica de administración del espacio libre es el mapa de bits. Un disco con n bloques requiere un mapa de bits con n bits. Los bloques libres se representan mediante 1s en el mapa, los bloques asignados mediante 0s (o viceversa).

5.8. Desfragmentación de discos

5.8.1. La desfragmentación es el proceso conveniente mediante el cual se acomodan los archivos en un disco para que no se aprecien fragmentos de cada uno de ellos, de tal manera que quede contiguo el archivo y sin espacios dentro del mismo.

6. Ejemplos de Sistemas de Archivos

6.1. Sistemas de archivos de CD-ROM

6.1.1. El sistema de archivos ISO 9660

6.1.1.1. Casi cualquier CD-ROM que se encuentra actualmente en el mercado es compatible con este estándar, algunas veces con las extensiones que analizaremos a continuación. Uno de los objetivos de este estándar era hacer que cada CD-ROM se pudiera leer en todas las computadoras, independientemente del orden de bytes utilizado y del sistema operativo que se emplee.

6.1.2. Extensiones Rock Ridge

6.1.2.1. Como hemos visto, ISO 9660 es altamente restrictivo en varias formas. Poco después de que salió al mercado, las personas en la comunidad UNIX empezaron a trabajar en una extensión para que fuera posible representar los sistemas de archivos de UNIX en un CD-ROM.

6.1.2.1.1. Las extensiones se dividen en los siguientes campos: 1. PX – Atributos POSIX. 2. PN – Números de dispositivos mayores y menores. 3. SL – Vínculo simbólico. 4. NM – Nombre alternativo. 5. CL – Ubicación del hijo. 6. PL – Ubicación del padre. 7. RE – Reubicación. 8. TF – Estampado de tiempo.

6.1.3. Extensiones Joliet

6.1.3.1. La comunidad de UNIX no fue el único grupo que quería una manera de extender ISO 9660. A Microsoft también le pareció demasiado restrictivo (aunque fue el propio MS-DOS de Microsoft quien causó la mayor parte de las restricciones en primer lugar). Por lo tanto, Microsoft inventó ciertas extensiones, a las cuales llamó Joliet.

6.1.3.1.1. Las principales extensiones que proporciona Joliet son: 1. Nombres de archivos largos. 2. Conjunto de caracteres Unicode. 3. Más de ocho niveles de anidamiento de directorios. 4. Nombres de directorios con extensiones.

6.2. 4.5.2 El sistema de archivos MS-DOS

6.2.1. El sistema de archivos MS-DOS es uno de los primeros sistemas que se incluyeron con la IBM PC.

6.3. El sistema de archivos V7 de UNIX

6.3.1. El sistema de archivos está en la forma de un árbol que empieza en el directorio raíz, con la adición de vínculos para formar un gráfico acíclico dirigido.