Sistemas de Archivos Interfaz Módulo 10 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia “San Juan Bosco” Module 10: Sistema de Archivos: Interfaz Concepto de archivos Métodos de Acceso Estructura de Directorio Montaje de Sistemas de Archivos Archivos Compartidos Protección JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Objetivos Explicar la función del sistema de archivos Describir las interfaces al sistema de archivos Discutir los compromisos en el diseño de sistemas de archivos, incluyendo métodos de acceso, archivos compartidos, locking de archivos y estructuras de directorios Explorar la protección en los sistemas de archivos Sistemas Operativos – Sistemas de Archivos: Interfaces JRA © 2010 Concepto de Archivo Espacio de direcciones lógicas contiguas Tipos: Datos numérico caracter binario Programa JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Estructura de Archivo Ninguna – secuencia de palabras, bytes Estructura de registros simple Líneas Longitud fija Longitud variable Estructuras Complejas Documento con formato Archivo de carga reubicable Se pueden simular estos dos últimos puntos con el primer método por la inserción de caracteres de control apropriados. Lo decide: El sistema operativo El programa JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Atributos de Archivo Nombre – mantiene información en forma legible. Tipo – necesario para sistemas que soportan diferentes tipos. Locación – puntero a la locación del archivo en el dispositivo. Tamaño – tamaño corriente del archivo. Protección – controla quien puede leer, escribir, ejecutar. Tiempo, fecha, e identificación de usuario – datos para protección, seguridad, visualización de uso. La información sobre los archivos es mantenida en la estructura de directorio, la que es mantenida en el disco. JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Operaciones sobre Archivos creación escritura lectura reposición puntero corriente borrado truncado open(Fi) – busca la estructura de directorio en el disco para la entrada Fi, y mueve el contenido de la entrada a la memoria. close (Fi) – mueve el contenido de la entrada Fi en la memoria a la estructura del directorio en el disco. JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Archivos Abiertos Son necesarios varios datos para administrar los archivos abiertos: Puntero corriente del archivo: punteros a la última locación read/write, hay un puntero por proceso que tiene el archivo abierto. Cuenta de archivo abierto: cuenta el número de veces que el archivo es abierto, permite remover datos de la tabla de archivos abiertos cuando el último proceso lo cierra. Locación en el disco del archivo: información de acceso a datos en el caché. Derechos de acceso: información del modo de acceso por proceso. JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Locking de Archivos Abiertos Provisto por algunos sistemas operativos y sistemas de archivos Media en el acceso al archivo Mandatorio flexible: Mandatorio – el acceso es rechazado dependiendo de los locks que se tienen y requeridos Flexible – los procesos verifican el estado de los locks y decide que hacer JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Tipos de Archivo – nombre, extension Tipo de Archivo Extensión usual Función Ejecutable exe, com, bin o ninguno Objeto obj, o Código fuente c, p, pas, l77,asm, a Lote bat, sh programa leng. máquina listo para correr compilado, leng máquina, no enlazado código fuente en varios lenguajes comandos al intérprete de comandos Texto txt, doc doc con datos textuales Procesa. palabra wp, tex, rtf , doc, .... formatos de proc de palab Librería lib, a librerías de rutinas Imp o vista ps, dvi, gif ASCII o archivos binarios Archivo arc, zip, tar Multimedia mpeg, mov, rm, avi, mp3 JRA © 2010 arch relacionados agrupados en un solo archivo arch binarios conteniendo audio o info A/V Sistemas Operativos – Sistemas de Archivos: Interfaces Métodos de Accesos Acceso Secuencial read next write next reset no read after last write (rewrite) Acceso Directo read n write n position to n read next write next rewrite n n = número relativo de bloque Sistemas Operativos – Sistemas de Archivos: Interfaces JRA © 2010 Archivo de Acceso Secuencial comienzo posición corriente rebobinar read o write JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces fin Simulación del Acceso Secuencial en un Archivo de Acceso Directo acceso secuencial implementación por acceso directo Sistemas Operativos – Sistemas de Archivos: Interfaces JRA © 2010 Ejemplo de Archivo Indexado y Relativo último nombre número de registro lógico archivo índice JRA © 2010 archivo relativo Sistemas Operativos – Sistemas de Archivos: Interfaces Estructura de Directorio Una colección de nodos conteniendo información sobre todos los archivos. Directorio Archivos F1 F2 F3 F4 Fn La estructura de directorio y los archivos residen en el disco. El respaldo de estas dos estructuras se mantienen en cintas. JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Una Organización Típica de un sistema de Archivos JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Información en un Directorio de Dispositivo Nombre Tipo Dirección Longitud corriente Máxima longitud Fecha del último acceso Fecha de la última actualización (para vuelco) ID del dueño Información de protección JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Operaciones sobre un Directorio Búsqueda de un archivo Creación de un archivo Borrado de un archivo Listado de un directorio Renombrado de un archivo Atravesar un sistema de archivos JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Organice el Directorio (Logicamente) para Obtener: Eficiencia – localizar un archivo rapidamente. Nombres – conveniente para los usuarios. Dos usuarios pueden tener el mismo nombre para diferentes archivos. El mismo archivo puede tener varios nombres diferentes. Agrupamiento – agrupamiento lógico de archivos por propiedades, (p.e., todos los programas Pascal, todos los juegos, …) JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Estructura Arbórea de Directorios /X/Y/cat X Y cat JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Estructura Arbórea de Directorios (Cont.) Búsqueda eficiente Capacidad de agrupamiento Directorio corriente (directorio de trabajo) cd /spell/mail/prog type list JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Estructura Arbórea de Directorios (Cont.) Camino de nombres absoluto o relativo La creación de un nuevo archivo se hace en el directorio corriente. Borrado de un archivo rm <nombre-arch> La creación de un nuevo subdirectorio se hace en el directorio corriente. mkdir <nombre-dir> Ejemplo: si el directorio corriente es /spell/mail mkdir count ⇒ /spell/mail/count Borrar “mail” ⇒ borrar el subárbol entero cuya raíz es “mail”. mail prog copy prt exp count JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Grafo Acíclico de Directorios Puede compartir subdirectorios y archivos. Sistemas Operativos – Sistemas de Archivos: Interfaces JRA © 2010 Grafo Acíclico de Directorios (Cont.) Dos nombres diferentes (alias) Si dict borra list ⇒ quedan punteros solitarios. Soluciones: Punteros hacia atrás, así se pueden borrar todos los punteros. Los registros de tamaño variable son un problema. Punteros hacia atrás usando una organización “cadena margarita”. Contador de entradas al archivo. Nueva entrada en el directorio Link – Otro nombre (puntero) a un archivo existente Resuelva el link – siga el puntero hasta localizar el archivo JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Grafo Acíclico de Directorios (Cont.) JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Grafo General de Directorio JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Grafo General de Directorio (Cont.) ¿Cómo se garantiza que no haya ciclos? Permita enlaces (links) a archivos y no a sudirectorios. “Garbage collection”. Cada vez que se agrega un nuevo enlace (link) se usa un algoritmo de detección de ciclos para determinar si está bien. JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Montaje de Sistema de Archivos (Mounting) Un sistema de archivos debe ser montado antes de que pueda ser accedido. Un sistema de archivos sin montar (siguientes slides) es montado en un punto de montaje (mount point). JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Archivos Compartidos Es deseable compartir archivos en un sistema multiusuario. La acción de compartir debe ser hecha por medio de un esquema de protección. En sistemas distribuidos los archivos pueden ser compartidos a través de la red. Network File System (NFS) es un método común de compartir archivos distribuidos. JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Archivos Compartidos – Múltiples Usuarios n Los User IDs identifyican usuarios, admiten permisos y protección por usuarios n Los Group IDs admite agrupar usuarios en grupos, permitiendo asignar al mismo derechos de acceso JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Archivos Compartidos – Modos de Fallas Los sistemas de archivos remotos agregan nuevos modos de fallas, debido a las fallas de las redes, fallas en los servidores, etc La recuperación de fallas puede involucrar información de estado acerca del status de cada requerimiento remoto. Protocolos sin estados como NFS incluyen toada la información en cada petición, permitiendo fácil recuperación pero menos seguridad Sistemas Operativos – Sistemas de Archivos: Interfaces JRA © 2010 Archivos Compartidos – Semántica de Consistencia La semántica de consistencia especifica como múltiples usuarios pueden acceder a un archivo compartido simultaneamente Similar a los algoritmos de sincronización Tienden a ser menos complejos debido a las E/S a disco la latencia de la red (sistemas de archivos remotos) Andrew File System (AFS) implementa una semántica muy compleja para compartir archivos El sistema de archivos Unix (UFS) implementa: Las escrituras sobre un archivo abierto son visibles inmediatamente a los otros usuarios que comparten el mismo archivo. El puntero a archivos compartidos permite que múltiples usuarios lean y escriban concurrentemente AFS tiene una semántica de sesión Las escrituras son solo visibles solo después que la sesión termina JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Protección El creador/dueño del archivo debería poder controlar: que cosas pueden hacerse por quién Tipos de acceso Read Write Execute Append Delete List JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Listas de Acceso y Grupos Modos de acceso: read, write, execute Tres clases de usuarios RWX a) acceso dueño 7 ⇒ 111 b) acceso grupos 6 ⇒ 110 c) acceso público 1 ⇒ 001 Pedir al administrador crear un grupo (único nombre), sea G, y adicionar algún usuario al mismo. Para un archivo particular (sea game) o subdirectorio, definir un acceso apropriado. dueño grupo público chmod 761 game Agregar un grupo a un archivo chgrp G JRA © 2010 game Sistemas Operativos – Sistemas de Archivos: Interfaces Manejo de Listas de Acceso en Windows XP JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Un ejemplo de un Listado de Directorio en UNIX JRA © 2010 Sistemas Operativos – Sistemas de Archivos: Interfaces Fin Módulo 10 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia “San Juan Bosco”