Ir al contenido principal

Sistemas de Archivos

 Un sistema de archivo es el encargado de la gestión de la memoria secundaria.
Se encuentra en los niveles más externos del sistema  operativo ( más próximos al usuario ). Este nivel suministra al usuario el concepto de archivo (una de las abstracciones fundamentales que genera un sistema  operativo).

El sistema de archivos es el subsistema que suministra los medios para la organización y el acceso a los datos almacenados en dispositivos de memoria secundario (disco). Un archivo se podría definir de la siguiente manera: Agrupación de datos que el usuario ve como una entidad, por ejemplo: programa, conjunto de rutinas, resultados de un cálculo... etc. Es la unidad que almacena y manipula el  sistema de archivos.

Funciones del sistema de archivos:

* Crear y borrar archivos
* Permitir el acceso a los archivos para que sean leídos o escritos
* Automatizar la gestión de la memoria secundaria
* Permitir referenciar un archivo por su nombre simbólico
* Proteger los archivos frente a fallos del sistema
* Permitir el uso compartido de archivos a usuarios autorizados

Organización de los archivos

 Los usuarios pueden definir objetos con nombre llamados archivos y que están constituidos por una secuencia de bits, bytes, líneas o registros. Se refieren mediante su nombre.

El sistema operativo suministra una serie de operaciones especiales (llamadas al sistema) para la manipulación de los archivos:

* Como unidad: Apertura, cierre, creación, borrado, copia...
* Accediendo al contenido: Lectura y escritura, actualización, inserción..

Las organizaciones comunes de archivos (escritura de archivos) varían de un sistema operativo a otro. Por ejemplo, en UNIX los archivos son secuencia de bytes y la interpretación de esos bytes no la hace el S.O.

Los tipos de archivos que podemos encontrar en UNIX son:

* Regulares: contienen datos. Se dividen en diferentes tipos según su uso ( normalmente se identifican por la extensión).
* Directorios: contienen información sobre los archivos contenidos en el mismo.
* Especiales: dan nombres a los dispositivos de entrada y salida.

Organización del directorio

En el directorio se deben poder insertar entradas, eliminar entradas, buscar una entrada concreta y listar todas las entradas. Por tanto, se pueden utilizar las siguientes estructuras de datos para la organización del directorio:

* Lista lineal de entradas:
         * Se requiere una búsqueda lineal para localizar una entrada particular.
       
         * Creación de un archivo:
            1- Se busca en la lista para ver si hay otro archivo con el mismo nombre.
            2- Se añade una nueva entrada al final del directorio.
       
         * Eliminación de una archivo:
            1- Se busca en la lista hasta encontrar la entrada y se libera el espacio que tenía asignado.
            2- Reutilización de la entrada:
                * Marcarla como no usada
                * Colocarla en una lista de entradas de directorio libres.

* Lista ordenada de entradas:
      * Búsqueda binaria para encontrar un archivo (algoritmo más complejo de programar).
      * La lista debe estar ordenada.
      * Tabla "hash":
          * Mejora el tiempo de búsqueda.
          * Inconvenientes: tamaño fijo de la tabla hash.

Fuentes:
pdf sobre sistemas de archivos


Comentarios

Entradas populares de este blog

Árbol Binario

Representación gráfica de un árbol binario  Un árbol binario es un árbol nulo o un árbol cuyos nodos tienen a lo sumo dos hijos. Los hijos de un árbol binario se pueden denotar como hijo izquierdo e hijo derecho. No pueden tener más de dos hijos (de ahí el nombre "binario"). Si algún hijo tiene como referencia a null, es decir que no almacena ningún dato, entonces este es llamado a un nodo externo. En el caso contrario el hijo es llamado un nodo interno. Usos comunes de los árboles binarios son los árboles binarios de búsquedas, los montículos binarios y Codificación de Huffman. Un árbol binario es un árbol en el que ningún nodo puede tener cero, uno o dos hijos (subárboles). Se conoce el nodo de la izquierda como hijo izquierdo y el nodo de la derecha como hijo derecho. Existen tipos de árboles binarios que suelen usarse para fines específicos, como: Árbol binario de búsqueda y Árbol de Fibonnacci. Complejidad: árboles completos Deduciremos, de manera indu...

Abstracción de datos

¿Qué entendemos por abstracción? Pues bien, básicamente es un medio fundamental usado por el ser humano para enfrentarse a la complejidad del mundo. Consiste en básicamente describir o especificar aspectos esenciales e importantes de un fenómeno o entidad, al mismo tiempo que se desechan características irrelevantes según el interés de quien realiza la abstracción, un claro ejemplo sería la imagen que tenemos arriba, en donde se presenta un gato y dos personas con visión diferente con respecto a la mascota, la anciana de la izquierda observa a la criatura de una manera que se le pueda dar amor o cariño, por otra parte, la señora de la derecha, observa al animal de una manera más científica, es decir, se centra más en la cualidades o partes internas del gato. La abstracción de datos en la programación nos ayuda muchas veces a entender los problemas y atacarlos de una manera más sencilla y que la situación que se haya presentado se entienda más fácil, es decir, desechar lo que no oc...

Búsquedas en Listas: Búsqueda Secuencial y Binaria

Procedimiento de las búsquedas Con mucha frecuencia los programadores trabajan con grandes cantidades de datos almacenados en arrays y registros, y por ello será necesario determinar si un array contiene un valor que coincida con un cierto valor clave. El proceso de encontrar un elemento específico de un array se denomina "búsqueda". En esta sección se examinarán dos técnicas de búsquedas: búsqueda lineal o secuencial, la técnica más sencilla, y búsqueda binaria o dicotómica, la técnica más eficiente. Búsqueda Secuencial La búsqueda secuencial busca un elemento de una lista utilizando un valor destino llamado clave. En una búsqueda secuencial (a veces búsqueda lineal), los elementos de una lista o vector se exploran (se examinan) en secuencia, uno después de otro, La búsqueda secuencial es necesaria, por ejemplo, si se desea encontrar la persona cuyo número de teléfono es 958-220000 en un directorio o listado telefónico de su ciudad. Los directorios de teléfono están o...