Gestión de archivos

Post on 09-Jul-2015

131 views 0 download

Transcript of Gestión de archivos

CARRERA DE INGENIERIA EN SISTEMAS

Docente:

SISTEMAS OPERATIVOS

Periodo:

Ing. Freddy Patricio Ajila Z.

septiembre 2013 – febrero 2014

AREA DE LA ENERGÍA LAS INDUSTRIAS Y LOS RECURSOS NATURALES NO RENOVABLES

Email: fpajila@unl.edu.ec

Cuarta Parte:

Gestión de Archivos

OBJETIVOS 1.-Explicar la función de los Sistemas de Archivos

2.-Describir las Interfaces de los sistemas de

Archivos

3.- Analizar los métodos de acceso, la compartición

de archivos, el bloqueo de archivos y las

estructuras de directorio.

Contenido

1. Sistema de archivos

– Introducción

– Conceptos Generales

– Estructura de directorios

– Métodos de asignación

– Gestión del espacio libre

2. Sistema de entrada-salida

– Introducción

– Hardware de entrada salida

– Interfaz de E/S de la aplicaciones

– Subsistema de E/S del kernel.

1. Sistemas de Archivos

Introducción

El sistema informático debe proporcionar un

almacenamiento secundario que sirva como respaldo

de la memoria principal.

El sistema de archivos proporciona los mecanismos

para el almacenamiento en línea de los datos y

programas que residen en los discos para el acceso a

esa información.

El sistema operativo mapea los archivos sobre los

dispositivos físicos y normalmente se organizan en

directorios para facilitar su uso.

Esquema Sistema Informático

Los dispositivos de almacenamiento varian en diversidad

de aspectos como:

● Transferencia carácter a carácter o bloque de caracteres

● Acceso secuencial o aleatorio

● Transferencia síncrona y asíncrona

● Dedicados y compartidos

● Solo lectura o lectura-escritura

● Velocidad (+ lento de los componentes princ del

computador)

● Subsistema de E/S (interfaz simple y optimiza op E/S)

● Sistema de Archivos: colección de archivos y estructura

de directorios.

CONCEPTOS GENERALES

-Un archivo es la colección de información relacionada, con

un nombre, que se graba en dispositivos de

almacenamiento secundario (Discos magneticos y opticos)

-El sistema hace una abstracción de las propiedades físicas

de sus dispositivos de almacenamiento para definir una

unidad lógica de almacenamiento: el archivo

- Para escribir datos en un dipositivo de almacenamiento es

necesario que los datos se encuentren dentro de un

archivo.

- Un archivo es una secuencia de bits, bytes o registros

definidos por el creador.

- En un archivo se puede almacenar distintos tipos de

información: programas fuente, programas objeto,

programas ejecutables, datos numéricos, texto, registros de

nómina, imágenes, video, sonido, etc.

Atributos de un archivo

Varian de un S.O a otro pero tipicamente son los siguientes:

Nombre: El nombre símbolo del archivo es la información que se mantiene en forma legible para los humanos.

Identificador: Es una etiqueta unívoca dentro del sistema de archivos (versión de nombre no legible por las personas)

Tipo: Esta información es necesaria para aquellos sistemas que se soportan diferentes tipos de archivos.

Ubicación: Es un apuntador a un dispositivo y la ubicación del archivo dentro del dispositivo.

Tamaño: Expresa el tamaño actual del archivo (bytes, palabras, etc.) y posiblemente el tamaño máximo permitido.

Fecha, hora e identificador del usuario: Esta información puede mantenerse para la creación, última modificación y último uso del archivo. Estos datos son útiles para la protección, seguridad y control de acceso

● La información acerca de los archivos se almacena en la estructura de directorios que tambien reside en memoria secundaria.

● Tipicamente una entrada de directorio esta compuesta por: el nombre del archivo y su identificador unívoco. El identificador permite localizar el resto de atributos del archivo.Los archivos se cargan en memoria por partes según sea necesario.

Operaciones de archivos

El S.O realiza llamadas al sistema para:

Creación de un archivo: Para crear un archivo hace falta ejecutar dos pasos. 1º encontrar espacio para el archivo dentro del sistema de archivos y 2º incluir en el directorio la entrada del nuevo archivo.

Escritura en un archivo: Se debe realizar una llamada a un sistemas que especifique tanto el nombre como la información que hay que escribir en el archivo.

Lectura de un archivo: Se debe realizar una llamada al sistema que especifique el nombre del archivo y dónde debe colocarse (dentro de la memoria) el siguiente bloque del archivo.

Reposicionamiento del archivo: Se explora el directorio para hallar la correspondiente entrada y se reposiciona el puntero de posición actual dentro de un archivo, asignándole un nuevo valor.

Borrado de un archivo: Exploramos el directorio en busca del archivo indicado y liberamos todo el espacio del archivo.

Truncado de un archivo: EL usuario puede querer borrar el contenido de un archivo, pero mantener sus atributos.

Existen otras operaciones no básicas como:- Adición- Renombrado- copia- Copia a otro dispositivo (impresora,pantalla)

El S.O mantiene una tabla de archivos abiertos que contiene info de todos los archivos abiertos.

Cada archivo abierto se asocia a diferentes tipos de datos

Puntero de Archivos: El sistema deberá registrar la ubicación correspondiente a la ultima lectura escritura, utilizando un puntero de posición actual dentro del archivo.

Contador de aperturas de archivo: Un mismo archivo puede haber sido abierto por varios procesos y por lo tanto el S.O debe esperar a que el ultimo de esos procesos cierre el archivo antes de eliminar la correspondiente entrada de la tabla de archivos abiertos. El contador de aperturas deberá alcanzar el cero cuando el último proceso cierre el archivo.

Ubicación de archivos dentro del disco: La mayoría de las operaciones de archivo requieren que el sistema modifique datos dentro del archivo. La información necesaria para ubicar el archivo en el disco se almacena en la memoria, para que el sistema no tenga que leer de nuevo esa información desde el disco en cada operación.

Derechos de acceso: Cada proceso abre un determinado archivo en un cierto modo de acceso. Esta información se almacena en la tabla correspondiente a cada proceso para que el sistema operativo pueda autorizar o denegar las siguientes solicitudes de E/S.

Los bloqueos de archivos permiten que un proceso bloquee un archivo e impida que otros procesos pueda acceder al mismo. Esto es útil para aquellos archivos que son compartidos por varios procesos.

● Bloqueo Compartido: Aquel en el que varios procesos pueden adquirir dichos bloqueos concurrentemente.

● Bloqueo exclusivo: se comporta como un bloqueo escritor, es decir solo puede adquirir dicho tipo de bloqueo un proceso a la vez

Tipos de archivos

Acceso Secuencial: El acceso secuencial es la lectura

o escritura de datos enforma secuencial, un registro

después de otro, es el método más común. Es

soportado por dispositivos de acceso secuencial (Cintas

magnéticas) como aleatorio (disco duro).

Métodos de Acceso

Acceso Aleatorio o Directo: El proceso puede leer el registro en

cualquier orden, permitiendo leer o escribir bloques arbitrariamente.

Estos son útiles para un acceso inmediato en grandes cantidades de información. Ejm: BD

El metodo de acceso directo se basa en un modelo de archivos que se corresponde con los dispositivos de disco, ya que los discos permiten el acceso aleatorio a cualquier bloque de un archivo.

En ocasiones es deseable colocar múltiples sistemas de archivos en un mismo disco o utilizar parte de un disco para un sistema de archivos, como por ejemplo: espacio de intercambio. Estas partes se conocen con diversos nombres como particiones, franjas o minidiscos.

De la misma manera podemos querer unir varios discos o partes para tener un estructura de mayor tamaño a esto se lo conoce como volúmenes y también se pueden montar sistemas de archivos en dichos volúmenes.

Cada volumen que contenga un sistema de archivos debe también contener información acerca de los archivos almacenados en el sistema. Esta información se almacena como entradas en un directorio de dispositivo o tabla de contenidos del volumen. Este directorio almacena información de todos los archivos: nombre, ubicación, tamaño y tipo.

Estructura de directorios

Esquema de volumnes de disco ( Hardware )

RAID (conjunto redundante de discos independientes)

Esquema de volumnes de disco (Software)

Esquema estructura de directorios

Búsquedas de un archivo: Permite explorar la estructura de directorio para encontrar la entrada o archivo correspondiente. Permite tambien la busqueda de archivos que se correspondan con un patrón concreto (nombre, extensión).

Crear un archivo: Permite crear un archivo en un directorio.

Borrar un archivo : Eliminar el archivo de un directorio

Listar un directorio: Listar todos los archivos de un directorio

Renombrar un archivo: Permite cambiar el nombre del archivo ya que para el usuario debe existir una relacion entre el contenido y el nombre del archivo

Recorrer el sistema de archivos: Permite navegar entre archivos y directorios

Operaciones sobre un directorio

Es la estructura de directorio mas simple ya que todos los archivos están contenidos en un mismo directorio y resulta fácil de mantener y comprender.

Tiene limitaciones significativas como:- cuando el número de archivos se incrementa- cuando el sistema tiene más de un usuario.

Estructura de directorios de un único nivel

Una solución al problema de los directorios de un solo nivel es crear un directorio por cada usuario (directorio de archivos de usuario, UFD)

Si un usuario quiere acceder a un archivo de otro usuario deberá especificar toda la ruta del archivo.

Se puede tener archivos con nombres similares pero que pertenezcan a diferentes usuarios.

Estructura de directorios de dos niveles

Es esta estructura donde cada usuario puede tener varios directorios y dentro de estos, tantos subdiretorios o archivos como se quiera. Al incrementarse la cantidad de niveles, brinda capacidad de agrupamiento y búsqueda eficiente. Las rutas pueden ser absolutas o relativas

Directorios con estructuras de árboles

Permiten a los usuarios compartir subdirectorios y archivos, pero complican las tareas de búsqueda y borrado. Podría manejarse un contador de referencias al archivo cuando el contador sea cero podría eliminarse el archivo.

Directorios con estructura de grafo acíclico

Permiten a los usuarios compartir subdirectorios y archivos me diante enlaces, pero complican las tareas de búsqueda y borrado. Podría manejarse un contador de referencias al archivo cuando el contador sea cero podría eliminarse el archivo.

Directorios con estructura de grafo acíclico

Uno de los problema del grafo acíclico es garantizar que no existan ciclos ya que el sistema entraría en un bucle infinito.

Una solución a esto consiste en limitar arbitrariamente el número de directorio a la se accederá durante una búsqueda.

Otra solución son algoritmos que detecten la existencia de un ciclo, pero estos tiene un costo muy alto desde el punto de vista computacional

Directorios en formato de grafo general

Los sistemas operativos windows descubren automaticamente todos los dispositivos y montan todos los sistemas de archivos localizados en el momento de inicializar el sistema.

En los sistemas operativos GNU un determinado fichero “fstab” de configuración del sistema contiene una lista de los dispositivos y puntos de montaje para realizar el montaje automático en el momento de inicializar el sistema. GNU utiliza el sistema de ficheros por omisión El sistema de ficheros por omisión de FreeBSD es ufs.

dispositivo /punto-de-montaje tipo de ficheros opciones passnoSda1 /dev ufs rw/ro/noauto 0/1/2/3

Montaje de sistema de archivos

Estructura de direcctorios GNU

( / ) es la base de toda la estructura de directorios y las ramas (directorios y archivos) surgen o cuelgan de dicha base.

Estructura de direcctorios GNU

Estructura estandar en un sistema GNU/Linux

Multiples Usuarios: Un sistema multiusuario debe permitir compartir los archivos a nivel:

Propietario: El usuario propietario tiene todo el control sobre el archivo y deside que operaciones pueden realizarse sobre el archivo en un grupo compartido.

Grupo de usuario: Son quienes tienen derecho a realizar solo las operaciones que han sido autorizadas por el usuario propietario

En GNU por cada archivo o fichero se almacena el identificador del propietario y del grupo junto con otros atributos que son únicos del archivo.

Compartición de archivos

Atributos de un archivo o fichero en GNU-LINUX (comando ls -l)

Sistemas de archivos remotos Por medio de las redes de datos se pueden compartir una serie de recursos, pero el recurso más importante es la información que es compartida por medio archivos de datos.

Sistemas Cliente – Servidor: Trabajan con redes de datos donde la maquina que contiene los archivos compartidos es el servidor, mientras que la maquina que trata de acceder a los archivos es el cliente.

Puesto que los archivos son el principal mecanismo de almacenamiento de información es necesario proporcionar mecanismos de protección de los archivos.

En un S.O la principal protección sobre un archivo o directorio son los permisos de control de accesso que pueden ser de lectura, escritura, ejecución.

La protección de los archivos o directorios puede proporcionarse tambien por medio contraseñas, listas de accesso o mediante otras técnicas.

Protección

3. Discos duros y Sistemas de Archivos

Los discos tienen dos características que los convierten en un medio conveniente para almacenamiento:

1.El bloque puede ser reescrito de manera directa, (leer, modificar, y volverlo a escribir en el mismo lugar)2.Se puede acceder a cualquier archivo de forma secuencial aleatoria

Se puede leer varios bloques, cada bloque contiene uno o mas sectores. Estos sectores varián de tamaño (32 bytes, 4096 byte; siendo usualmente de 512 bytes)

Implementación de Sistemas de Archivos

Estructura de Sistemas de Archivos

Un sistema de archivos posee dos problemas de diseño diferentes:

1. Definir cómo debe ver el usuario el sistema de archivos– definir un archivo y sus atributos– definir las operaciones permitidas sobre un archivo– definir la estructura de directorios

2. Definir los algoritmos y estructuras de datos que deben crearse para establecer la correspondencia entre el sistema de archivos lógico y los dispositivos físicos donde se almacenan

Sistema de archivo en niveles

Asignación Contigua:

- Cada archivo ocupa un conjunto de bloques contiguos en el disco.

VENTAJAS- Simple-Solo se requiere la ubicación inicial (nro de bloque) y la longitud (nro de bloques).- Buenos tanto el acceso secuencial como el directo

DESVENTAJAS- Existirá fragmentación externa

- Los archivos pueden crecer.

Métodos de asignación

Métodos de asignación no contiguo: Enlazado o Encadenado:

- El mecanismo de asignación enlazada resuelve todos los problemas de la asignación contigua.

- Cada archivo es una lista enlazada de bloques de disco: los bloques pueden estar dispersos en cualquier parte del disco.

- El directotrio mantine un puntero al primer y al ultimo bloque de cada archivo.

- En lo que respecta a la administración del espacio libre, no hay desperdicio de espacio.

No hay acceso aleatorio.

No hay fragmentación externa.

Asignación enlazada del espacio de disco

Por ejemplo: un archivo de 5 bloques podría comenzar en el bloque 9 y continuar en el bloque 16, luego en el 1, despues en el bloque 10 y finalmente en el bloque 25

Ventajas:

- Evita la fragmentación externa- El archivo puede crecer dinámicamente cuando hay bloquesde disco libres, no es necesario compactar- Basta con almacenar el puntero al primer bloque del archivo

Desventajas:

- Espacio requerido para los punteros de enlace. Solución: agrupaciones de bloques (clusters)

- Posible pérdida de punteros. Solución: lista doblemente enlazada (overhead)

Tabla de asignación de archivos FAT.

- Es una variante del método de asignación enlazada (Windows y OS/2).

- Reserva una sección del disco al comienzo de la partición para la FAT

- Contiene una entrada por cada bloque del disco y está indexada por número de bloque de disco

- Para localizar un bloque solo se necesita leer en la FAT à se optimiza el acceso directo

- Problema: pérdida de punteros (solución: doble copia de la FAT)

Asignación enlazada del espacio de disco

Métodos de asignación no contiguo: Indexado

- Todos los punteros a los bloques están juntos en una localización concreta: bloque índice.

- El directorio tiene la localización a este bloque índice y cada archivo tiene asociado su propio bloque índice.

- Para leer el i-ésimo bloque buscamos el puntero en la i-ésima entrada del bloque índice

Ventajas

- Buen acceso directo– No produce fragmentación externa

Desventajas

- Posible desperdicio de espacio en los bloques índices

- Problema: acceso a disco necesario para recuperar la dirección del bloque para cada nivel de indexación - Solución: mantener algunos bloques índices en memoria principal

2.- Lista enlazada

Esta técnica enlaza todos los bloques libres del disco, manteniendo un puntero al primer bloque libre y almacenándolo en la memoria caché. No derrocha espacioEs ineficiente al momento se que recorre la lista de bloques libres (tiempo sustancial de E/S)

Gestión del espacio libre

GESTION DE ESPACIO

3.- Agrupamiento

Es una modificación de la lista enlazada; en el primer bloque se almacena las direcciones de los n bloques libres; y el ultimo bloque tendrá las direcciones de otros n bloques libres y así sucesivamente.

Con esta técnica se encuentra mas rápidamente un gran número de bloques libres

GESTION DE ESPACIO

4.- Cuenta

Se mantiene la dirección del primer bloque libre, seguido de un contador que me indica cuantos bloques libres continuos existen.

2. Sistema de Entrada/Salida

1. Introducción

Las dos tareas principales de una computadotra son la E/S y el procesamiento.

El rol del S.O en la E/S es la de gestionar y controlar las operaciones y dispositivos de E/S.

Para los diseñadores de SO, el control de los dispositivos conectados a la computadora es de primordial interés, debido a que cada dispositivo cambia sus funciones y velocidad por lo cual se requiere variedad de métodos para controlarlos.

Estos métodos de E/S forman el subsistema de E/S del kernel, el mismo que aísla al resto del kernel de la complejidad de la administración de los dispositivos de E/S.

La tecnología de E/S exhibe dos tendencias que están en conflicto:

•Creciente estandarización de las interfases de SW y HW con los cual se ayuda a incorporar en las computadoras y SO generaciones mejoradas de dispositivos.

Nuevos dispositivos que son tan diferentes los anteriores que se son difíciles de incorporar en las computadoras y SO; por lo que se convierte en un reto esta incorporación a través de combinación de técnicas de HW y SW.

Los detalles y peculiaridades de los diferentes dispositivos se encapsulan en módulos de manejadores de dispositivos; el kernel del S.O se estructura y de desarrolla interfaces uniformes para estos dispositivos.

2. Hardware de E/S

El hardware de entrada y salida se puede dividir en :

Un BusUna controladora (chips harware)Un puerto de E/S y sus registros (bufer temp)Protocolo (Procedimiento de negociación )Memoria de acceso directo (DMA)

El dispositivo se comunica con la máquina mediante un punto de conexión llamado puerto.

Si uno o más dispositivos utilizan un conjunto de cables o hilos, la conexión se denomina bus. Los buses junto a un protocolo definen los mensajes(voltajes) que se transmiten por estos hilos

BUS PCI (conecta los subsistemas procesador-memoria con los dispositivos de alta velocidad y un bus de expansión que conecta dispositivos lentos

Un controlador es un conjunto de componentes electrónicos(CHIPs) que pueden operar un puerto, un bus o un dispositivo.

Los controladores pueden ser sencillos (controlador de puerto serial) o complejos (controlador de bus SCSI). El controlador posee registros para los datos y las señales de control que le permiten comunicarse con el procesador a través de estos (leyendo y escribiendo bits en dichos registros).

La CPU pose instrucciones de E/S para controlar algunos dispositivos; y E/S mapeada en memoria (conjunto de direcciones que especifican las ubicaciones de los dispositivos de E/S), en la figura se muestran algunos ejemplos de las mismas:

Ubicaciones de los puertos de E/S de los dispositivos de una PC

El proceso de negociación:

Durante este proceso se verifica si el dispositivo se encuentra ocupado, libre. Esto se reliza a traves de bits (1 ocupado, 0 libre) y esta información se encuentra en la tabla de control de dispositivos

La controladora del dispositivo que notifica a la CPU, cuando el dispositivo está listo por medio de una interrupción.

ACCESO DIRECTO A MEMORIA (DMA).-La controladora DMA se encarga de operar el bus de memoria directamente, colocando las direcciones en el bus para realizar las transferencias sin ayuda de la CPU.

INTERFAZ DE E/S DE LAS APLICACIONES.- Se debe tener en cuenta las interfaz que debe proporcionar el S.O. a las aplicaciones ofreciendo una interfáz estandar y uniforme a los dispositivos de E/S; este debe ser independiente del hardware; de tal manera que al diseñarse nuevos dispositivos; sean compatibles con la interfaz de la controladora existe. Una estructura de estas interfaces de E/S se muestra en la figura.

3. Subsistema de E/S del kernel

El subsistema de E/S del kernel proporciona muchos servicios, entre estos podemos citar:

- La planificación de E/S- El almacenamiento en buffer- El almacenamiento en caché- La gestión de colas y reserva de dispositivos- Tratamiento de errores

Este subsistema realiza un trabajo coordinado con el Hardware y los controladores de dispositivo.

La planificación de E/S.

El subsistema de E/S se encarga de planificar las diferentes solicitudes de e/s que solicitan los procesos y comparte el acceso a los dispositivos de manera equitativa.

Por ejemplo: un brazo de disco situado al inicio del disco y tres procesos solicitando acseso de lectura a disco:Proceso 1: solicita bloque al final del discoProceso 2: solicita bloque al pricipio del discoProseso 3: solicita bloque intermedio de discoSolución: servir a procesos en orden 2 3 y 1.

La planificación de E/S.

Las solicitudes se colocan en la cola correspondiente al dispositivo solicitado.

Cuando el kernel soporta mecanismos de e/s asíncrona puede antender multiples solicitudes de e/s al mismo tiempo.

El S.O asocia la cola de espera con la tabla de estado del dispositivo

Cada entrada de la tabla indica el tipo, direció y estado del dispositivo.

La planificación de E/S.

Las solicitudes se colocan en la cola correspondiente al dispositivo solicitado.

Cuando el kernel soporta mecanismos de e/s asíncrona puede antender multiples solicitudes de e/s al mismo tiempo.

El S.O asocia la cola de espera con la tabla de estado del dispositivo

Cada entrada de la tabla indica el tipo, direció y estado del dispositivo.

Almacenamiento en búfer.

Es una área en memoria que almacena datos a transferir entre dispositivos o entre dispositivos y aplicaciones. El almacenamiento en búfer se realiza por tres razones:

1. Adaptar velocidades entre emisor y receptor.Ej: Transmisión de un archivo vía moden a disco.

2. Adaptar dispositivos con diferentes tamaños de transferencia de datosEJ: transferencias de datos por red (receptor une pequeños paquetes en búfer y recompone mensaje original).

3. Soportar la semántica de copia en la E/S de las aplicaciones: Ej: proceso almacena en búfer datos para pasar disco (bufer se descarga el el bufer del kernel y se pasa a disco mientras bufer pude ser modificado)

Almacenamiento en caché.

Se trata de la unidad de almacenamiento temporal que tienen los dispositivos y que permite una mayor velocidad de tranferencia de los datos hacia la parte física del dispositivo.

Gestión de colas y reserva de dispositivos:

El subsistema de E/S del kernel es el encaragdo de administrar las diferentes colas de los dispositvos asegurando que todo proceso que solicita una operación de e/s tenga el acceso al dispositivo.

Tratamiento de errores

Los dispositivos y las transferencias de e/s debido a razones transitorias (sobrecarga en la red) o permanetes (falla de controladora de disco). Por ejemplo si fallara la operacion read() de disco provoca que se reintente la misma operación read().

Protección de E/S:

Para llevar a cabo una operación de e/s el programa de usuario ejecuta una llamada al sistema para solicitar que el S.O realice la operación de e/s y no se permite que el programa de usuario lo realice directamente.

4. Trasformación de la solicitudes

de E/S en operaciones de

hardware

El S.O envia la solicitud al controlador software del dispositivo y este a su vez envia dicha solicitud a la tarjeta controladora del dispositivo (circuitería física)

Fin de la unidad

Gracias.