Tema 4 Sistemas de Ficheros Dos mdulos Interfaz
- Slides: 50
Tema 4. Sistemas de Ficheros • Dos módulos: – Interfaz del sistema de ficheros – Implementación del sistema de ficheros • Objetivos: – – – Que el alumno entienda los conceptos de fichero y directorio Mostrar los métodos de acceso y los mecanismos de protección Estudiar las semánticas de compartición Que el alumno comprenda la estructura del sistema de ficheros Presentar distintas técnicas de gestión de archivos y directorios a nivel de diseño. Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Módulo 1. Interfaz del Sistema de Ficheros ¿Concepto de fichero? Métodos de acceso Estructura de directorio Protección Semánticas de compartición Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Concepto de Fichero • Un espacio lógico de direcciones contiguas usado para almacenar datos • Tipos de ficheros: – Datos: • numéricos • carácter • binarios – Programas: • código fuente • ficheros objetos (imagen de carga) – Documentos Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Estructura del Fichero • Ninguna - secuencia de palabras o bytes (UNIX) • Estructura sencilla de registros – Líneas – Longitud fija – Longitud variable • Estructuras complejas – Documentos con formato (HTML, postscript) – Fichero de carga reubicable (módulo de carga) • Se puede simular estructuras de registro y complejas con una estructura plana y secuencias de control • ¿Quién decide la estructura? – Interna: El sistema operativo – Externa: Las aplicaciones Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Estructura del Fichero Ejecutable Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Atributos del Fichero • Nombre: la única información en formato legible por una persona • Tipo: necesario en sistemas que proporciona distintos formatos • Posición: apuntador a la posición del fichero en un dispositivo • Tamaño: tamaño actual del fichero • Protección: control de accesos y de las operaciones sobre ficheros • Tiempos: de creación, de acceso, de modificación, etc. • Identificación de usuario: dueño, y grupo, del fichero • La información relacionada con el fichero se mantiene en el descriptor del fichero, al que se apunta desde los directorios. Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Atributos del Fichero Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Operaciones sobre Ficheros • fd = create(nombre, protección): crea un fichero con ese nombre y esa protección y devuelve un descriptor • delete(nombre): borra el fichero con ese nombre • fd = open(nombre, operación): abre un fichero con ese nombre para esa(s) operación(es) y devuelve un descriptor • close(fd): cierra un fichero abierto con descriptor fd • read(fd, almacén, cantidad): lee cantidad del fichero fd, abierto, al almacén. • write(fd, almacén, cantidad): escribe cantidad al fichero fd, abierto, desde el almacén. • truncate(fd): vacía el fichero fd. • lseek(fd, desplazamiento, relativo_a): mueve el apuntador a relativo_a+ desplazamiento. Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Nombres de Fichero y Extensiones • • • Tiras de caracteres Longitud: fija o variable Sensibles a tipografía Extensión: obligatoria o no Los usuarios usan nombres lógicos de estilo • Los directorios relacionan nombres lógicos y descriptores internos de ficheros • El sistema de ficheros trabaja con descriptores internos Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Métodos de Acceso • Acceso secuencial: – read next, write next, reset, no read after last write, … – rewind: ir al principio para buscar hacia delante – Dispositivos de cinta • Acceso Directo: – read n, write n, goto n, rewrite n, read next, write next, … – n = número de bloque relativo al origen – Dispositivos: discos magnéticos Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Visiones del Fichero Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Concepto de Directorio • Una colección de nodos que contienen información acerca de los ficheros • Tanto la estructura del directorio como los ficheros residen en discos • Los directorios se suelen implementar como archivos • Copias de respaldo en cintas, por seguridad • Información en un directorio: nombre, tipo, dirección, longitud máxima y actual, tiempos de acceso y modificación, dueño, etc. • Hay estructuras de directorio muy distintas. La información depende de esa estructura. Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Estructuras de Directorio Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Operaciones de Directorio • • mkdir (nombre, proteccion) rmdir (nombre) dirp=opendir (nombre): devuelve un descriptor de directorio closedir (dirp) dirent = readdir (dirp): devuelve una entrada del directorio chdir (nombre) link (origen, destino) Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Organización del Directorio • Eficiencia: localizar un fichero rápidamente • Nombrado: conveniente y sencillo para los usuarios – Dos usuarios pueden tener el mismo nombre para ficheros distintos – Los mismos ficheros pueden tener nombres distintos – Nombres de longitud variable • Agrupación: agrupación lógica de los ficheros según sus propiedades (por ejemplo: programas Pascal, juegos, etc. ) • Estructurado: operaciones claramente definidas y ocultación • Sencillez: la entrada de directorio debe ser lo más sencilla posible. Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Directorio de un Nivel • Un único directorio para todos los usuarios • Problemas de nombrado y agrupación Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Directorio de dos Niveles • • Un directorio por cada usuario Camino de acceso automático o manual El mismo nombre de fichero para varios usuarios Búsqueda eficiente, pero problemas de agrupación Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Directorio con Estructura de Árbol • Búsqueda eficiente y agrupación • Nombres relativos y absolutos -> directorio de trabajo Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Directorio con Estructura de Árbol • Los nombres absolutos contienen todo el camino • Los nombres relativos parten del directorio de trabajo o actual • Cambio de directorio: – cd /spell/mail/prog – cd prog • Borrar un fichero: rm <nombre-fichero> • Crear un subdirectorio: mkdir <nombre_dir> • Ejemplo: – cd /spell/mail – mkdir count – ls /spell/mail/count • Borrar un subdirectorio: rm -r mail Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Directorio de Grafo Acíclico I • Tienen ficheros y subdirectorios compartidos • Este concepto no existe en Windows Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Directorio de Grafo Acíclico II • link: Un fichero con varios nombres -> control de enlaces – un único fichero contador enlaces en descriptor (e. Físicos) – ficheros nuevos con el nombre destino dentro (e. simbólicos) • Borrado de enlaces: – a) decrementar contador; si 0 borrar fichero – b) recorrer los enlaces y borrar todos – c) borrar únicamente el enlace y dejar los demás • Problema grave: existencia de bucles en el árbol. Soluciones: – Permitir sólo enlaces a ficheros, no subdirectorios – Algoritmo de búsqueda de bucle cuando se hace un enlace • Limitación de implementación en UNIX: sólo enlaces físicos dentro del mismo sistema de ficheros. Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Protección • El dueño (creador) de un fichero debería ser capaz de controlar: – lo que se puede hacer – por quién • Tipos de acceso: read, write, execute, append, delete, list • Políticas de protección: restrictivas, conocidas, sencillas, … • Dominio: conjunto de usuarios a los que se agrupa con los mismos criterios de seguridad • Mecanismos de protección: – matriz de protección: (objeto, usuario) -> derechos – listas de control de acceso: matriz de protección por columnas – capacidades: matriz de protección por filas Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Matriz de Protección • Mecanismo general: (dominio, objeto) -> derechos positivos o negativos • Problema: muy grande y dispersa -> implementación difícil y costosa • Vale como modelo teórico (HRU), pero poco práctca • Base de los mecanismos usados más frecuentemente: ACL, CAP Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Listas de Control de Acceso • Lista por objeto con una entrada por usuario o dominio especificando derechos de acceso • Si es muy larga, su manejo es complejo. • Habitual: denegaciones primero y encadenamiento doble • Fácil denegar acceso total eliminando la ACL del objeto Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Listas de Control de Acceso y Grupos • Modo de acceso: read, write, execute • UNIX: tres clases de usuarios: – a) dueño – b) grupo – c) público 7 6 1 110 001 rwx rw--x • El administrador crea usuarios y grupos. Un grupo puede tener múltiples usuarios. Un usuario puede estar en varios grupos. • Cambiar protección: chmod 761 fichero • Cambiar dueño: chown usuario fichero • Cambiar grupo: chgrp grupo fichero • Windows NT más selectivo: permisos positivos y negativos específicos por objeto y usuario. Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Capabilities • Cada usuario tiene una protección por objeto. Bueno para sistemas distribuidos • Fácil dar permisos • Difícil revocar todos los permisos. Soluciones: – Envíos masivos a los usuarios – Cambiar el objeto origen por otro – Usar una capability intermedia y eliminarla Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Módulo 2. Implementación del Sistema de Ficheros Estructura del sistema de ficheros Estructura del servidor de ficheros Métodos de asignación Gestión del espacio libre Incremento de prestaciones Fiabilidad y recuperación Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Estructura del Sistema de Ficheros • Sistema de ficheros: unidad lógica de almacenamiento donde se recolecta información relacionada • El sistema de ficheros reside en particiones, o volúmenes, de almacenamiento secundario Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Superbloque • Contiene la información de estructura del sistema de ficheros • Uno por sistema de ficheros. Si falla, el SF queda inaccesible. Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Estructura del Servidor de Ficheros Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
El Servidor de Ficheros Virtuales • Interfaz de usuario para un fichero genérico: nodo-v. • Operaciones del fichero genérico: fechas, posición, … • Operaciones específicas: cada servidor de ficheros particular Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Flujo de datos en el Servidor de Ficheros Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Tablas de Datos del Servidor de Archivos Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Asignación Contigua • • Fichero: conjunto de bloques de disco contiguos Simple: 1 er bloque + longitud / tamaño bloque Acceso aleatorio sencillo Problema 1: ficheros no pueden crecer -> buscar hueco nuevo > fragmentación externa • Problema 2: fragmentación -> búsqueda huecos muy difícil • Mapa lógico-físico: – num. bloque = posición / tamaño bloque – desplazamiento = posición MOD tamaño bloque • No se usa en sistemas operativos de propósito general. Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez -
Asignación Enlazada I • Fichero: lista enlazada (doblemente) de bloques de disco dispersos • Acceso aleatorio costoso: muchos accesos a disco • Ejemplo: FAT de MS-DOS y OS/2 Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Asignación Enlazada II • No hay fragmentación externa, pero tiene la sobrecarga de los bloques de enlaces • Mapa lógico-físico: – Bloque destino (D) = Posición / Tamaño bloque – Desplazamiento en el bloque = Posición MOD Tamaño bloque – Accesos: 1 er bloque en lista + D • Problema: recorridos hacia atrás: listas con enlaces dobles • Optimización: – Listas con grupos de bloques contiguos asociados a un fichero – Reducen el número de accesos hasta llegar al bloque, pero en el peor caso serían los mismos que sin optimizar Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Asignación Indexada I • • Fichero: índice ordenado de bloques de disco dispersos Necesita una tabla de índice Acceso aleatorio rápido No hay fragmentación externa, pero tiene la sobrecarga de los índices de bloques • Mapa lógico-físico: puntero a bloque destino – Bloque destino = Posición / Tamaño bloque – Desplazamiento en el bloque = Posición MOD Tamaño bloque – Posición en índice = Bloque destino * Tamaño puntero • Ejemplo: Nodo-i de UNIX Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Asignación Indexada II • Problema: hacen falta muchos bloques de índices -> muchos accesos a disco. Ejemplo: – Bloque de 4 Kbytes y puntero de 4 bytes -> 1 Kíndice por bloque > 4 Mbytes tamaño fichero máximo. – Fichero 4 Gbytes -> 1 Kbloques de índices • Solución: índices de varios niveles. – Dos niveles: 1 Míndice -> 4 Gbytes – Tres niveles: 1 Gíndice -> 4 Tbytes • Problema: más niveles -> más accesos a disco, incluso para accesos pequeños. • Solución: esquema combinado (ejemplo: nodo -i de UNIX) Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Nodo-i de UNIX Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
MFDT Windows NT • Problema nodo-i: siempre un acceso a disco, como mínimo, para traer datos. • Para ficheros pequeños, se podría evitar metiendo datos en el descriptor del fichero. Ejemplo: Registro MFT de Windows NT. • Problema: complica el mapa lógico-físico Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Implementación de Directorios • Entrada directorio: tamaño fijo (MS-DOS) o variable (UNIX) • Listas lineales de nombres de ficheros con punteros a bloques de datos – fáciles de programar – costosas en tiempo de ejecución • Tablas con acceso aleatorio (hash): listas lineales con estructura de datos aleatorios – tiempo de búsqueda de directorios más pequeña – colisiones: dos nombres de ficheros pueden ir a la misma entrada aleatoria • Siempre se implementan basándose en ficheros Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Directorios en UNIX Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Construcción del Árbol de Nombres Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Gestión de Espacio Libre I • Mapas de bits: Un bit por bloque (o nodo-i). 0 libre, 1 ocupado – Espacio en disco: disk_size / (8 * block_size) – La asignación funciona bien si no está muy lleno el disco. En caso contrario: Fragmentación del mapa -> difícil buscar huecos grandes • Listas enlazadas de bloques libres: simples o dobles. – No hay fragmentación en la lista – Es difícil, y lento, buscar espacio contiguo – Optimización: listas de grupos de bloques libres Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Gestión de Espacio Libre II • Los mapas de bits son más populares actualmente • Es necesario proteger: – Los punteros a las listas de recursos – Los mapas de bits • Deben estar en disco • Las copias en disco y en memoria pueden diferir -> escritura inmediata a disco • Los mapas de recursos están en una especial del sistema de ficheros y no cuentan como bloques de datos • Los bloques de los mapas están contiguos. La dirección de sus primeros bloques se guarda en el superbloque Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Incremento de Prestaciones • La eficiencia depende de: – los algoritmos de asignación de ficheros y directorios – el tipo de datos que hay en los descriptores de ficheros y directorios – la estructura del sistema de ficheros • Mecanismos de incremento de prestaciones – Cache de nombres y de bloques: últimos datos accedidos se guardan en memoria – Lectura adelantada para optimizar accesos secuenciales – Usar discos RAM para evitar accesos a discos (por ejemplo /proc) Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
La Cache de Bloques • Almacén de bloques de disco que se mantiene en memoria • Estructura: lista hash con información de bloques y punteros a los datos • Tamaño máximo limitado por la memoria que ocupa. • Todos los accesos a ficheros pasan por la cache: – Lectura: ¿estan en cache? • Si -> copiar a usuario • No-> leer de disco y copiar a usuario • Política de reemplazo: LRU, MRU, FIFO, hash…. LRU popular • Antes de reemplazar bloques sucios hay que escribir a disco: – delayed-write: escribir cada n segundos – write-through: escribir inmediatamente (mapas, metadatos, etc. ) Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Flujo de Datos con Cache de Bloques Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Fiabilidad y Recuperación • La perdida de un sistema de ficheros es muy grave y, muchas veces, no se puede recuperar. • Solución: – Copias de respaldo. • Volcar a discos, cintas, . . . • Totales e incrementales • Políticas de copia de respaldo – Almacenamiento con redundancia: • Discos espejo, RAID, replicación, …. • Mucha seguridad: dispositivos en instalaciones aisladas • Comprobaciones de consistencia (fsck) de mapas de recursos, asignación de descriptores y entradas de directorios. Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
Recuperación • Un sistema de ficheros puede estar incoherente. • Existen aplicaciones como fsck o scandisk que comprueban el SF, lo dejan coherente y, a veces, recuperan la información perdida. Diseño de Sistemas Operativos Jesús Carretero y Fernando Pérez
- Sistemas de directorios de un solo nivel
- Anchor loc
- Mdulos
- Mdulos
- Archivos binarios c++
- Rechaza el spam y los ficheros inesperados
- Sedu coahuila
- Dos reyes y dos laberintos
- Interfaz de movie maker
- Interfaz de word 2016
- Interfaccia grafica windows 10
- Interfaz
- Interfaz
- Interfaz diagrama de clases
- Los pilares de la poo
- Interfaz comparable java
- Reglas de oro diseño de interfaz
- Interfaz de chamilo
- Interfaz halindeki hücre nükleusu
- Java rmi ejemplo
- Interfaz grafica de scratch
- Partes de la interfaz de powerpoint
- Interfaz de windows
- Ara lamel
- Stokinez nedir
- Naturalisme
- Tema-tema teologi perjanjian lama
- Delimitación de un proyecto de tesis ejemplo
- El tema y sub tema
- Ventajas de una entrevista
- Problemas con inecuaciones 4 eso
- 3 geração dos sistemas operacionais
- Hipotese dos sistemas hidrotermais
- Sistemas de inecuaciones con dos incognitas
- Dos sistemas de ecuaciones son equivalentes si
- Personajes de balada de los dos abuelos
- El que habla dos idiomas vale por dos
- Arestas vértices e faces
- Mateo 7 13-14
- Estando un leon a 180 m de una cebra
- Los envió de dos en dos
- Defesa dos direitos dos usuários pnh
- Poliedro convexo
- Tabla comparativa de los sistemas operativos
- Modelos de sistemas
- Espera ocupada
- Ebooksampleoup
- Tipos de sistemas embebidos
- 3 sistemas
- Regra de kramer
- Www.tejofran.com.br