jueves, 23 de junio de 2011

Gestión de archivos

Gestión de archivos (Resumen)
Un sistema de gestión de archivos es el Software que proporciona a los usuarios y aplicaciones servicios para el uso, acceso y control de accesos, tanto de archivos como a directorios.
Conceptos iniciales
  • El sistema de manejo de ficheros es considerado parte del Sistema operativo.
  • El input de las aplicaciones son muchas veces archivos.
  • El output de las aplicaciones se graba en ficheros para almacenarlos por un periodo muy largo.
  • El programador no necesita desarrollar un sistema de manejo de ficheros
Términos usados
  • Campo: Elemento básico de información, contiene un valor, tiene un tipo de dato y una longitud.
  • Registro: Colección de campos relacionados; se trata como una unidad.
  • Archivo informático: Colección de registros relacionados; se trata como una unidad; tiene un nombre único; se puede restringir su acceso.
  • Base de datos. Colección de datos relacionados.
Objetivos
  • Garantizar que la información del archivo sea valida
  • Optimizar el acceso a los archivos
  • Proveer soporte E/S a gran variedad de dispositivos de almacenamiento.
  • Entregar los datos que el usuario pide.
  • Minimizar o eliminar una potencial perdida de datos.
  • Proveer un conjunto estándar de rutinas E/S.
  • Proveer soporte de E/S a múltiples usuarios.
Requerimientos básicos
  • Los usuarios deben poder crear, leer, borrar y cambiar ficheros.
  • Los usuarios pueden tener el control de los ficheros de otros usuarios.
  • Los usuarios controlan que tipo de acceso otorgan a otros usuarios.
  • Los usuarios pueden ordenar sus ficheros de acuerdo a su problema (directorios)
  • Los usuarios pueden mover información entre ficheros.
  • Los usuarios deben ser capaces de realizar una copia de respaldo y restaurarla en caso de un desastre.
  • Los usuarios pueden acceder a los ficheros con nombres simbólicos (en Windows accesos directos)

Drivers de dispositivos
  • Son rutinas de bajo nivel.
  • Se comunican directamente con el periférico.
  • Es el responsable de iniciar las operaciones E/S con el dispositivo.
  • También procesa el fin de las operaciones E/S.
Sistema Básico de Archivos
  • Realiza E/S físico
  • Realiza intercambio de bloques de datos.
  • Realiza la colocación de bloques de datos.
  • Realiza buffering de bloques con la memoria principal.
Funciones de la gestión de archivos.
  • Identificar y localizar un archivo.
  • Usa un directorio (como un directorio telefónico) para describir la ubicación y atributos de un archivo.
  • Controla el acceso de varios usuarios a los archivos.
  • Bloquea el uso de archivos.
  • Ubica archivos en bloques libres.
  • Administra el espacio libre.
Organización de directorios
  • Se tiene un Directorio maestro con directorios del usuario dentro del directorio maestro.
  • Cada directorio del usuario puede contener subdirectorios y archivos.
  • Los archivos pueden ser localizados siguiendo la ruta de directorios desde el directorio maestro (root).
  • La ruta de directorios se conoce como path.
  • Se pueden tener varios archivos con el mismo nombre ubicados en diferentes rutas.
  • El directorio donde se encuentra el usuario es el directorio de trabajo.
  • Los archivos se referencian respecto al directorio de trabajo falta de texto.
File Management o Gestión de archivo (Desarrollo)
Objetivos
Tratar las estructuras y principales características de los sistemas de archivos.
Files
1.     Field (campo)
2.     Record (registro)
3.     Field (archivo)
4.     Database ( Base de Datos)
1.     Un campo (Field) es el elemento de datos básico. Un campo individual contiene un valor único. Esta caracterizado por su longitud y por el tipo de datos. Dependiendo del diseño del archivo, los campos pueden ser de tamaño fijo o variable. Un campo pueden contener un subcampo.

2.     Registro (Record) es una colección de campos relacionados que pueden tratarse como una única unidad por un programa de aplicación. Por ejemplo:, un registro de empleados va contener campos como nombre, numero de seguridad social, etc.
También dependiendo del diseño, los registros pueden ser de longitud fija o de longitud variable. Un registro va a tener una longitud variable si algunos de los campos son de tamaños variables o si el número de campos es variable. Cada campo tiene un nombre de campo.
1.     Archivo (File) es una colección de registros similares. El archivo es tratado como una entidad individual por los usuarios y las aplicaciones y puede ser referenciada por el nombre. Los archivos tienen nombres únicos y pueden crearse y borrarse. En un sistema compartido, los usuarios y los programas tienen garantizado o denegado el acceso a archivos completos. En algunos sistemas más complejos, dicho control se aplica a los registros o a los campos.
2.     Base de datos (database) es una colección de datos relacionados. El aspecto esencial de la base de datos es que la relación que existe entre los elementos de datos es explícita y la base de datos es diseñada para usarse en un número diferente de aplicaciones. Una base de datos puede contener toda la información relacionado a una organización o proyecto, corno un estudio de mercado o científico. La base de datos consiste en uno o más tipos de archivos.
Los usuarios y aplicaciones desean usar los archivos. Las operaciones típicas que deben soportarse incluyen las siguientes:
Recuperar Todo (Retrieve_all): Recuperar todos los registros de un archivo. Esto va a requerir de una aplicación que deba procesar toda la información de un archivo una vez. Esta opción es usualmente equivalente con el término de sequential proccessing, ( proceso secuencial), porque todos los registros son accedidos en secuencia.
Recuperar Uno (Retrieve_One): Esta operación requiere la recuperación de un solo un registro. Las
Soluciones interactivas orientadas a la transacción necesitan esta operación.
Recuperar siguiente (Retrieve_Next): Esta operación implica la recuperación del registro que es el siguiente, según una secuencia lógica, el recuperado hace menos tiempo. Un programa que realice búsquedas puede usar también esta operación.
Recuperar Previo (Retrieve_Previous): Es similar a Recuperar Siguiente, pero en este caso el registro que es "previo" al que se está accediendo en el momento actual.
Insertar Uno (Insert One): Inserta un nuevo registro dentro del archivo. Es necesario que el nuevo registro se ajuste a una posición particular para preservar la secuencia del archivo.
Borrar uno (Delete One): Borra un registro existente. Ciertos enlaces o otras estructuras
Puede que necesiten actualizarse para preservar la secuencia del archivo.
Actualizar Uno (Update_one): Recupera un registro o actualiza uno o más de sus campos, y rescribe la actualización en el archivo. Es necesario preservar la secuencia con esta operación. Sí el tamaño del registro esta cambiado, la operación de actualización es más difícil si el tamaño es preservado.

Recuperar Varios (Retrieve_ Few): Recupero un número de registros.
La naturaleza de las operaciones que comúnmente se ejecutan. Sobre un archivo va a influenciar sobre el modo en que se va a organizar el mismo.
1.3) Sistemas de Gestión de Archivos (File Management Sytems)
Un sistema de gestión de archivos es aquel sistema software que provee servicios a los usuarios y aplicaciones en el uso de archivos. El único camino que tiene el usuario o la aplicación tiene para acceder a los archivos es a través de un sistema de gestión de archivos. Esto revela para el usuario o programador la necesidad de desarrollar software de propósito especial para cada aplicación y provee al sistema un medio de controlar su ventaja más importante.
Estos son los objetivos de un sistema de gestión de archivos:
1.     Cumplir con las necesidades de gestión de datos y con los requisitos del usuario, que incluye el almacenamiento de, datos y la capacidad de ejecutar las operaciones en la lista precedente.
2.     Garantizar, en la medida de lo posible, que el dato en el archivo es válido.
3.     Optimizar el rendimiento, ambos desde el punto de vista del sistema en términos de productividad global, y como punto de vista del usuario en tiempos de respuesta.
4.     Para proveer soporte de E/S para una variedad de tipos de dispositivos de almacenamiento.
5.     Para minimizar o eliminar la posibilidad de pérdida o destrucción de datos.
6.     Para proveer un conjunto estándar de rutinas de E/S.
7.     Para proveer soporte de E/S para múltiples usuarios, en caso de sistemas multiusuarios.
1.4) Arquitectura de los sistemas de Archivos
(File System Architecture)
Un camino para hacerse una idea del alcance de la gestión de archivos es de mirar una representación típica de la organización del software, como se muestra en la figura de abajo:
Diferentes sistemas van a tener diferente organizaciones pero estas organizaciones son razonablemente representativas. A un nivel más bajo los manejadores de dispositivos (device drivers) se comunican directamente con los dispositivos de periféricos o con sus canales o controladores. Un controlador de
Dispositivos es responsable de iniciar las operaciones de E/S en un dispositivo y procesar la terminación de una petición de E/S. Para operaciones de archivos, el controlador típico de dispositivos son discos y unidades de cinta. Los manejadores de los dispositivos son usualmente considerados como parte del sistema operativo.
El próximo nivel está referido con el nombre de sistema de archivos básicos (basic file system), o nivel de E/S física (physical I/O). Esta es la interface primaria con el ambiente fuera del sistema de la computadora. Este nivel trata con bloques de datos que son intercambiados con sistemas de disco o cinta. De este modo. Se preocupa de ubicar dichos bloques en el dispositivo de almacenamiento secundario y del almacenamiento intermedio de los mismos en memoria principal. Este nivel no comprenderá el contenido de los datos o la estructura de los archivos implicados. El sistema de archivos básicos es usualmente considerado como parte del sistema operativo.
El supervisor básico de E/S (Basic I/O supervisor) es el responsable de la iniciación y terminación de todas las E/S con archivos. En este nivel, hay unas estructuras de control que se encargan de la entrada y de salida con los dispositivos la planificación y el estado de los archivos. El supervisor básico de E/S se encarga de seleccionar el dispositivo donde se va a realizar la E/S con los archivos dependiendo del archivo seleccionado. También se encarga de la planificación de los accesos a disco y cinta para optimizar el rendimiento. En este nivel se asignan los buffers de E/S y se reserva la memoria secundaria. El supervisor básico de E/S es parte del sistema operativo.
La E/S lógica habilita a los usuarios y aplicaciones de acceder a registros. Así mientras el sistema de archivos básico trabaja con bloques de datos. el modulo lógico de E/S trabaja con el archivo de registros. La E/S lógica provee una capacidad de E/S de registro de propósito general y mantiene los datos básicos acerca de los archivos.
El nivel del sistema de archivo más cercano de usuario es usualmente el método de acceso (access method). Provee una interface estándar entre aplicaciones y los archivos del sistema a dispositivos que guarden datos. Los diferentes métodos de acceso reflejan las diferentes estructuras de datos y diferentes maneras de acceder y procesar el dato.
 Funciones de la gestión de archivos (File management Functions)
Los usuarios y las aplicaciones interactúan con el sistema de archivos mediante comandos para crear y borrar archivos y realizar operaciones sobre los archivos. Antes de ejecutar alguna operación, los archivos del sistema deben identificar y localizar el archivo seleccionado. Esto requiere el uso de alguna clase de directorio que es reservado para describir la localización de todos los archivos, más sus atributos. Además, la mayoría de los sistemas compartidos aplican algún control de acceso a los usuarios: solamente los usuarios autorizados están permitidos para acceder a archivos particulares en determinados lugares. Las operaciones básicas que el usuario o el programa puede ejecutar sobre un archivo se puede realizar a nivel de registro. El usuario o la aplicación ven el archivo con una estructura
Que organiza los registros, como una estructura secuencial. De este modo, para traducir las órdenes del usuario a órdenes específicas de manipulación de archivos., debe emplearse el método de acceso apropiado para esta estructura de archivo.
2) Organización y acceso a archivos (File organizittion and access)
En esta parte vamos a usar el término organización de archivos para referirnos a la estructura lógica de los registros determinada por la manera en que se accede a ellos. La organización física del archivo en almacenamiento secundario depende de la estrategia de agrupación y de la estrategia de asignación de archivos.
Para seleccionar una organización de archivos hay diversos criterios que son importantes:
1.     Acceso Rápido para recuperar la información
2.     Fácil actualización
3.     Economía de almacenamiento
4.     Mantenimiento simple.
5.     Fiabilidad para asegurar la confianza de los datos.
La prioridad relativa de estos criterios va a depender de las aplicaciones que va a usar el archivo.
El número de alternativas de organización de archivos que se han implementado o propuesto es inmanejable,
Incluso para un libro dedicado a los sistemas de archivos.
La mayor parte de las estructuras empleadas en los sistemas reales se encuadran en una de estas categorías o
Puede implementarse como una combinación de estas:
1.     Pilas (The pile)
2.     Archivos secuenciales (sequential file)
3.     Archivos Secuenciales indexados. (indexed sequential file)
4.     Archivos indexados.(indexed file)
5.     Archivos directos o de dispersión (direct, or hashed, file).
2.1) Pilas
La forma menos complicada de organización de archivos puede denominarse la pila. Los datos se recolectan en el orden en que llegan. Cada registro consiste en una ráfaga de datos. El propósito de la pila es simplemente acumular la masa de datos y guardarlo.
Como no hay estructura para el archivo de la pila. el acceso a registro es por búsqueda exhaustiva. Si se quiere todos los registros que contienen un campo particular o que tienen un valor determinado para ese campo, debe buscarse en el archivo entero.
Los archivos de pilas se aplican cuando los datos se recogen y almacenan antes de procesarlos o cuando no son fáciles de organizar. Este tipo de archivo usa bien el espacio cuando los datos almacenados varían en tamaño y en estructuras. Este tipo de archivos no se adapta a la mayoría de las aplicaciones.
2.2) Archivos Secuenciales
La forma más común de estructura de archivo es el archivo secuencial. En este tipo de archivo, un formato fijo es usado para los registros. Todos los registros tienen el mismo tamaño, constan del mismo número de campos de tamaño fijo en un orden particular. Como se conocen la longitud y la posición de cada campo, solamente los valores de los campos se necesitan almacenarse; el nombre del campo y longitud de cada campo son atributos de la estructura de archivos.
Un campo particular, generalmente el primero de cada registro se conoce como el campo clave. El campo clave identifica unívocamente al registro. Así, los valores de la clave para registros diferentes son siempre diferentes.
Los archivos secuenciales son típicamente utilizados en aplicaciones de proceso de lotes Y son óptimos para dichas aplicaciones si se procesan todos los registros. La organización secuencias de archivos es la única que es fácil de usar tanto en disco como en cinta.
Para las aplicaciones interactivas que incluyen peticione s o actualizaciones de registros individuales, los archivos secuenciales ofrecen un rendimiento pobre.
Normalmente un archivo secuencial se almacena en bloques, en un orden secuencial simple de los registros. La organización física del archivo en una cinta o disco se corresponde exactamente con la ubicación lógica del archivo. En este caso, el procedimiento para ubicar los nuevos registros en un archivo de pila separado, llamado archivo de registro (log file) o archivo de transacciones. Periódicamente, se realiza una actualización por lotes que mezcla el archivo de registro con el archivo maestro para producir un nuevo archivo en secuencia correcta de claves.
2.3) Archivos Secuenciales indexados
Un método popular para superar las desventajas de los archivos secuenciales es el del archivo secuencias indexado. El archivo secuencial indexado mantiene las características básicas de los archivos secuenciales: los registros están organizados en una secuencia basada en un campo. Dos características se añaden: un índice del archivo para soportar los accesos aleatorios y un archivo de desbordamiento (overflow). El índice provee una capacidad de búsqueda para llegar rápidamente a las proximidades de un registro deseado. El archivo de desbordamiento (overflow) es similar al archivo de registro usado en un archivo secuencial, pero esta integrado de forma que los registros del archivo de desbordamiento se ubican en la dirección de un puntero desde si registró precedente. En la estructura secuencial indexada más simple, se usa un solo nivel de indexación. El índice, en este caso, es un archivo secuencial simple. Cada registro del archivo índice tiene dos campos: un campo clave, que es el mismo que el campo clave del archivo principal y un puntero al archivo principal. Para encontrar un campo específico se busca en el índice hasta encontrar el valor mayor de la clave que es igual o precede al valor deseado de la clave. La búsqueda continúa en el archivo principal a partir de la posición indicada por el puntero.
2.4) Archivos Indexados
Los archivos secuenciales indexados retienen la limitación del archivo secuencial: la eficacia en el procesamiento se limita al basado en un único campo del archivo. Cuando es necesario buscar un registro basándose en algún otro atributo distinto del campo clave ambas formas de archivo secuencial no son adecuadas. En algunas aplicaciones esta flexibilidad es deseable.
Para alcanzar esta flexibilidad, se necesita una estructura que utilice múltiples índices, uno para cada tipo de campo que pueda ser objeto de la búsqueda.
Se suelen utilizar dos tipos de índices. Uno índice exhaustivo contiene una entrada para cada registro del archivo principal. Otro índice parcial contendrá entradas a los registros donde este el campo de
interés. Con registros de longitud variable, algunos registros no contendrán todos los campos.
Los archivos indexados son muy utilizados en aplicaciones donde es crítica la oportunidad de la información y donde los datos son rara vez procesados de forma exhaustiva.
Archivos Directos o de Dispersión
Los archivos directos explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección conocida. Como en los archivos secuenciales y secuenciales indexados, se requiere un campo clave en cada registro. Sin embargo, aquí no hay concepto de ordenamiento secuencial.


FAT:

Lo que actualmente conocemos por FAT es realmente FAT16. Es el sistema de archivos introducido por Microsoft en 1.987 para dar soporte a los archivos de 16bits, no soportados por versiones anteriores de FAT (FAT12).

Este sistema de archivos tiene una serie muy importante de limitaciones, entre las que destacan el límite máximo de la partición en 2Gb (pero es capaz de gestionar archivos de hasta 4Gb
¿?), el utilizar cluster de 32Kb o de 64Kb (con el enorme desperdicio de espacio que esto supone) y el no admitir nombres largos de archivos, estando estos limitados al formato 8+3 (ocho dígitos de nombre + tres de extensión).

FAT32:

En 1.996, junto con la salida al mercado del Windows 95 OSR2, se introduce el sistema de archivos FAT32, para solucionar en buena parte las deficiencias que presentaba FAT16, pero manteniendo la compatibilidad en modo real con MS-DOS.

Entre estas se encuentra la de superar el límite de 2Gb en las particiones, si bien se mantiene el tamaño máximo de archivo, que es de 4Gb.

Para solucionar este problema, FAT32 utiliza un direccionamiento de cluster de 32bits, lo que en teoría podría permitir manejar particiones cercanas a los 2 Tib (Terabytes), pero en la práctica Microsoft limitó estas en un primer momento a unos 124Gb, fijando posteriormente el tamaño máximo de una partición en FAT32 en 32Gb. Esto se debe más que nada al una serie de limitaciones del Scandisk de Microsoft, ya que FAT32 puede manejar particiones mayores creadas con programas de otros fabricantes. Un claro ejemplo de esto lo tenemos en los discos externos multimedia, que están formateados en FAT32 a pesar de ser particiones de bastante tamaño (en muchos casos más de 300Gb).

El tamaño del cluster utilizado sigue siendo de 32Kb, lo que sigue significando un importante desperdicio de disco, ya que un archivo de 1Kb (que los hay, y muchos además) está ocupando en realidad 32Kb de disco.

El paso de FAT16 a FAT32 se tenía que realizar en un principio formateando el disco, situación que se mantuvo hasta la salida de Windows 98, que incorporaba una herramienta para pasar de FAT16 a FAT32 sin necesidad de formatear el disco.

Estos dos formatos, a pesar de sus inconvenientes, tienen una gran ventaja, y es que son accesibles (cuando menos para lectura) por una gran cantidad de sistemas operativos, entre los que destacan Unix, Linux, Mac OS...
Esta compatibilidad es aun mayor en FAT16 que en FAT32.

Por poner un ejemplo, los disquetes y los pendrive se siguen formateando en FAT16.

NTFS:

El sistema de archivos NTFS, o New Technology File System fue introducido a mediados de 1.993 en Windows NT 3.1, y utilizado por Microsoft solo en sus sistemas profesionales hasta la salida de Windows XP, que fue el primer sistema operativo de uso doméstico que lo incorporó.
Este sistema de archivos tiene una gran serie de ventajas, incluida la de soportar compresión nativa de ficheros y cifrado (a partir de Windows 2000).
También permite por fin gestionar archivos de más de 4Gb, fijándose el tamaño máximo de estos en unos 16Tb.
En cuanto a las particiones, permite un tamaño de hasta 256Tb.

Utiliza cluster de 4Kb (aunque se pueden definir de hasta 512bytes, es decir, 1 sector por cluster). Esto permite un aprovechamiento del disco mucho mayor que en FAT16 o en FAT32, ya que, siguiendo el ejemplo anterior de in fichero de 1Kb, si el tamaño del cluster es de 4Kb estaríamos desperdiciando solo 3Kb, y si el tamaño del cluster fuera de 512bytes, pues utilizaría dos cluster, no existiendo en ese caso ningún desperdicio de espacio (hay que considerar que el FAT32 se desperdiciarían 31Kb por cada archivo de 1Kb que tengamos).
Pero tiene un inconveniente, y es el de que en ese caso se necesita un espacio del disco bastante grande para guardar la información del formato. Hay que pensar que con este sistema, a igualdad de espacio (32Kb), para una partición NTFS basada en cluster de 4Kb tendremos ocho cluster en vez de uno solo. Esto en la practica quiere decir que para un archivo de 32Kb hay que guardar 8 direcciones en vez de una sola, pero un simple vistazo a nuestro disco duro nos permite darnos cuenta de que, a pesar de esta pérdida inicial de espacio, en la práctica tenemos una muy superior capacidad de almacenamiento, ya que el espacio desperdiciado es muchísimo menos.

Las particiones formateadas en NTFS no son accesibles desde MS-DOS, Windows 95, Windows 98 ni por otros sistemas operativos instalados en discos bajo sistemas FAT16 o FAT32.
Linux tiene soporte parcial de escritura y total de lectura para particiones NTFS.

En realidad, lo que muchos llaman MS-DOS en Windows XP es tan solo un editor de comandos, con un emulador de MS-DOS para poder ejecutar algunos programas basados en DOS (no todos), eso si, de 16bits, ya que NTFS no tiene soporte para programas de 8bits.

Se puede pasar muy fácilmente una partición FAT32 a NTFS sin pérdida de datos, mediante comandos de consola (ver el documento Convertir una partición FAT32 a NTFS).

Tenemos que tener presente que Mi Pc en versiones anteriores de Windows, incluido XP (o Equipo en Windows Vista) no va a reconocer un disco duro mientras este no tenga alguna partición.

Hay que dejar bien claro un tema: NO es posible pasar de un formato de nivel superior a uno de nivel inferior sin eliminar la partición y volver a crearla.

Podemos pasar mediante software de FAT16 a FAT32 y de este a NTFS sin pérdida de información ni de nada (teniendo en cuenta siempre los riesgos que un cambio de formato de partición implican), pero no a la inversa.




3 comentarios:

  1. laura maria gonzalez rosa 2006-513

    Gestor de archivos

    Los archivos se pueden definir como colección de datos relacionado, definido por su creadores esto almacenan programas en código fuente o objetivo, y datos tales como imágenes, texto, información de base de datos, sonidos etc.
    El gestor de archivo es responsable de crear y eliminar archivo y directorios, establecer correspondencia entre archivos y directorio con las unidades de almacenamiento.

    Existen diferente sistema de archivos lo cuales están incorporando el sistema operativo entre ellos están:

    Fax tabla de localización de archivos
    Fax 32
    Stop
    NTFS

    ResponderEliminar
  2. la gestión de archivo tiene una importancia fundamental para el procesamiento de datos y el manejo de información dentro del sistema operativo, es por esto que los sistemas operativos manejan directamente los formatos de archivos donde podemos almacenar datos y compilarlo en formatos con ntfs, fax32. ect... la gestión de estos archivo son básicamente una tarea fundamental de los sistemas operativos

    ResponderEliminar