gestión de archivos y directorios sistemas operativos: una...

24
Capítulo 8 Gestión de Archivos y Directorios Sistemas operativos: una visión aplicada Sistemas operativos: una visión aplicada 1 © J. Carretero, F. García, P. de Miguel, F. Pérez Gestión de archivos y directorios Objetivos: Entender 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 Comprender la estructura del sistema de ficheros Presentar las llamadas al sistema y ejemplos de programación en LINUX y Windows Presentar distintas técnicas de gestión de archivos y directorios a nivel de diseño. Sistemas operativos: una visión aplicada 2 © J. Carretero, F. García, P. de Miguel, F. Pérez Contenido Visión del usuario del sistema de archivos Archivos Directorios Servicios de archivos Servicios de directorios Sistemas de archivos El servidor de archivos Puntos a recordar Sistemas operativos: una visión aplicada 5 © J. Carretero, F. García, P. de Miguel, F. Pérez Características para el usuario Almacenamiento permanente de información. No desaparecen aunque se apague el computador. Conjunto de información estructurada de forma lógica según criterios de aplicación. Nombres lógicos y estructurados. No están ligados al ciclo de vida de una aplicación particular. Abstraen los dispositivos de almacenamiento físico. Se acceden a través de llamadas al sistema operativo o de bibliotecas de utilidades.

Upload: buidieu

Post on 21-Oct-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Capítulo 8Gestión de Archivos y Directorios

Sistemas operativos: una visión aplicada

Sistemas operativos: una visión aplicada 1 © J. Carretero, F. García, P. de Miguel, F. Pérez

Gestión de archivos y directorios

• Objetivos:– Entender 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– Comprender la estructura del sistema de ficherosPresentar las llamadas al sistema y ejemplos de programación en

LINUX y Windows– Presentar distintas técnicas de gestión de archivos y directorios

a nivel de diseño.

Sistemas operativos: una visión aplicada 2 © J. Carretero, F. García, P. de Miguel, F. Pérez

Contenido

• Visión del usuario del sistema de archivos• Archivos• Directorios• Servicios de archivos• Servicios de directorios• Sistemas de archivos• El servidor de archivos• Puntos a recordar

Sistemas operativos: una visión aplicada 5 © J. Carretero, F. García, P. de Miguel, F. Pérez

Características para el usuario

• Almacenamiento permanente de información. No desaparecen aunque se apague el computador.

• Conjunto de información estructurada de forma lógica según criterios de aplicación.

• Nombres lógicos y estructurados.• No están ligados al ciclo de vida de una aplicación particular.• Abstraen los dispositivos de almacenamiento físico.• Se acceden a través de llamadas al sistema operativo o de

bibliotecas de utilidades.

Page 2: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 6 © J. Carretero, F. García, P. de Miguel, F. Pérez

• El acceso a los dispositivos es: – Incómodo

• Detalles físicos de los dispositivos • Dependiente de las direcciones físicas

– No seguro • Si el usuario accede a nivel físico no tiene restricciones

• El sistema de archivos es la capa de software entre dispositivos y usuarios.

• Objetivos: – Suministrar una visión lógica de los dispositivos – Ofrecer primitivas de acceso cómodas e independientes de

los detalles físicos – Mecanismos de protección

Sistema de archivos

Sistemas operativos: una visión aplicada 7 © J. Carretero, F. García, P. de Miguel, F. Pérez

Contenido

• Visión del usuario del sistema de archivos• Archivos• Directorios• Servicios de archivos• Servicios de directorios• Sistemas de archivos• El servidor de archivos• Puntos a recordar

Sistemas operativos: una visión aplicada 9 © J. Carretero, F. García, P. de Miguel, F. Pérez

Concepto de archivo

• Un espacio lógico de direcciones contiguas usado para almacenar datos

• Tipos de archivos: – Datos:

• numéricos • carácter • binarios

– Programas: • código fuente • archivos objetos (imagen de carga)

– Documentos

Sistemas operativos: una visión aplicada 10 © J. Carretero, F. García, P. de Miguel, F. Pérez

Atributos del archivo

• Nombre: la única información en formato legible por una persona.• Identificación única del archivo y del usuario: descriptor interno del

archivo, dueño y grupo del archivo• Tipo de archivo: necesario en sistemas que proporciona distintos formatos de

archivos.• Tamaño del archivo: número de bytes en el archivo, máximo tamaño

posible, etc. • Protección: control de accesos y de las operaciones sobre archivos• Información temporal: de creación, de acceso, de modificación, etc.• Información de control: archivo oculto, de sistema, normal o directorio, etc.

Page 3: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 11 © J. Carretero, F. García, P. de Miguel, F. Pérez

Representación del archivo

• La información relacionada con el archivo se mantiene en el descriptor del archivo, al que se apunta desde los directorios.

• Es distinto en cada sistema operativo: nodo-i, registro Windows, etc.

• Tipos de archivos: – Archivos normales: ASCII y binarios.– Archivos especiales: de bloques y de caracteres

Sistemas operativos: una visión aplicada 12 © J. Carretero, F. García, P. de Miguel, F. Pérez

Ejemplos de representación

Nombre Nombre Nombre Nombre Atrib. Atrib. Atrib. Atrib.

Size KBSize KBSize KBSize KBAgrup. FATAgrup. FATAgrup. FATAgrup. FAT

cabecera cabecera cabecera cabecera AtributosAtributosAtributosAtributosTamañoTamañoTamañoTamañoNombreNombreNombreNombre

SeguridadSeguridadSeguridadSeguridad

DatosDatosDatosDatos

VclustersVclustersVclustersVclusters

Sistemas operativos: una visión aplicada 13 © J. Carretero, F. García, P. de Miguel, F. Pérez

Nombres de Fichero y ExtensionesExtensión Significado

exe, com,bin, none

c, s, asm, ppas, f77

Z, z, zip

gif, jpg

o, obj

ps, dvi, pdf

txt, doc

tex, roff

html

Programa ejecutable

Código fuente en distintoslenguajes

Archivos comprimidos

Archivos de imágenes

Archivos de texto

Archivos de hipertexto para World Wide Web

Archivos de entrada para formateadores de texto

Archivos ASCII o binarios enformato imprimible o visible

Archivos objeto, compiladospero sin montar

• Tiras de caracteres• Longitud: fija o variable• Sensibles a tipografía• Extensión: obligatoria o no• Los usuarios usan nombres

lógicos de este estilo• Los directorios relacionan

nombres lógicos y descriptores internos de ficheros

• El sistema de ficheros trabaja con descriptores internos

Sistemas operativos: una visión aplicada 14 © J. Carretero, F. García, P. de Miguel, F. 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

Page 4: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 15 © J. Carretero, F. García, P. de Miguel, F. Pérez

Byte o Byte o Byte o Byte o registro deregistro deregistro deregistro de

longitud fijalongitud fijalongitud fijalongitud fija

Árbol de registrosÁrbol de registrosÁrbol de registrosÁrbol de registros

CabeceraCabeceraCabeceraCabecera

Módulo Módulo Módulo Módulo objetoobjetoobjetoobjeto

CabeceraCabeceraCabeceraCabecera

Módulo Módulo Módulo Módulo objetoobjetoobjetoobjeto

Archivo deArchivo deArchivo deArchivo debibliotecabibliotecabibliotecabiblioteca

Registros de Registros de Registros de Registros de longitudlongitudlongitudlongitudvariablevariablevariablevariable

Distintas estructuras lógicas

Sistemas operativos: una visión aplicada 16 © J. Carretero, F. García, P. de Miguel, F. Pérez

Archivos: visión lógica• Estructura de un archivo:

– Archivos de estructura compleja• Archivos indexados • Archivos directos o de dispersión

– Ejemplo de archivo indexado:

– Los archivos estructurados en registros y los archivos con estructuras complejas se pueden construir como una capa sobre la visión de tira de bytes.

Clave

Registro

Ficheroindice

Fichero principal

Sistemas operativos: una visión aplicada 17 © J. Carretero, F. García, P. de Miguel, F. Pérez

Cabecera de sección 1

Cabecera de sección n

Sección 1

Sección 2

Sección n

Tipo de sección,tamaño de la sección dirección virtual

Otrainformación

Datos con valor inicial

Informaciónde carga

Tabla desímbolos

Datos con valor inicial

Código

Tipo de sección,tamaño de la sección dirección virtual

Cabecera primaria

Número mágico

Número de secciones

Tamaño segmento texto

Tamaño segmento datos

Tamaño datos sin valorinicial

Tamaño tabla de símbolos

Valor inicial de registros

Dirección inicial

Opciones

...

Estructura de archivo ejecutable LINUX

Sistemas operativos: una visión aplicada 18 © J. Carretero, F. García, P. de Miguel, F. Pérez

• Usuario: Visión lógica.

• Sistema operativo: visión física ligada a dispositivos. Conjuntode bloques.

Posición

Archivos: visión lógica y física.

Page 5: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 19 © J. Carretero, F. García, P. de Miguel, F. Pérez

Archivos: visión física

• Bloque – Unidad de transferencia – 2n sectores – Parámetro fijo por sistema de archivos

• Agrupación – Unidad de asignación – 2p bloques – Aumenta la secuencialidad del archivo

• Descripción de la estructura física: – Bloques utilizados

Sistemas operativos: una visión aplicada 20 © J. Carretero, F. García, P. de Miguel, F. Pérez

Descripción física en UNIX (nodo-i)

Tamaño máximo del archivo: 10Sb+(Sb/4)Sb +(Sb/4)2Sb +(Sb/4)3SbSb el tamaño del bloque y direcciones de bloques de 4 bytes.

Tipo de Fichero y ProtecciónNúmero de Nombres

PropietarioGrupo del Propietario

TamañoInstante de creación

Instante del último accesoInstante de la última modificación

Puntero a bloque de datos 0Puntero a bloque de datos 1

Puntero a bloque de datos 9Puntero indirecto simplePuntero indirecto doblePuntero indirecto triple

nodo-i

Punterosa Bloquesde Datos

Punterosa Bloquesde Datos

Punterosa Bloquesde Datos

Punterosa Bloquesde Datos

Punterosa Bloquesde Datos

Punterosa Bloquesde Datos

Sistemas operativos: una visión aplicada 21 © J. Carretero, F. García, P. de Miguel, F. Pérez

Descripción física en MS-DOS (FAT)

• FAT de 12 bits 4K agrupaciones • FAT de 16 bits 64K agrupaciones

<eof>

<eof>

<eof>

<eof>

pep_dir dir 5 27

fiche1.txt 12 45

Directorio RaízNombre Atrib. KB Agrup.

Directorio pep_dir

carta1.wp R 24 74prue.zip 16 91 75

76

91

51

74

45

58

27

FAT

7576

58

51

Nombre Atrib. KB Agrup.

Sistemas operativos: una visión aplicada 22 © J. Carretero, F. García, P. de Miguel, F. Pérez

Métodos de Acceso

• Acceso secuencial: lectura de los bytes del archivo en orden ascendente, empezando por el principio.– read next, write next, reset, no read after last write, …– rewind: ir al principio para buscar hacia delante– Lectura -> posición = posición + datos leídos– Dispositivos de cinta– ISAM: método de acceso secuencial indexado

• 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

Page 6: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 23 © J. Carretero, F. García, P. de Miguel, F. Pérez

Archivos: semántica de coutilización

• Cualquier forma de acceso tiene problemas cuando varios usuarios trabajan con el archivo simultáneamente.

• Semántica de coutilización: especifica el efecto de varios procesos accediendo de forma simultánea al mismo archivo y cuando se hacen efectivas las modificaciones.

• Tipos de semánticas: – Semántica UNIX (POSIX)

• Las escrituras son inmediatamente visibles para todos los procesos con el archivo abierto.

• Los procesos pueden compartir archivos. Si existe relación de parentesco pueden compartir el puntero. La coutilización afecta también a los metadatos.

Sistemas operativos: una visión aplicada 24 © J. Carretero, F. García, P. de Miguel, F. Pérez

Archivos: semántica de coutilización (II)

– Semántica de sesión • Las escrituras que hace un proceso no son inmediatamente

visibles para los demás procesos con el archivo abierto. • Cuando se cierra el archivo los cambios se hacen visibles para

las futuras sesiones. • Un archivo puede asociarse temporalmente a varias imágenes.

– Semántica de versiones• Las actualizaciones se hacen sobre copias con nº versión. • Sólo son visibles cuando se consolidan versiones.• Sincronización explícita si se requiere actualización inmediata

– Semántica de archivos inmutables • Una vez creado el archivo sólo puede ser compartido para

lectura y no cambia nunca

Sistemas operativos: una visión aplicada 25 © J. Carretero, F. García, P. de Miguel, F. Pérez

Contenido

• Visión del usuario del sistema de archivos• Archivos• Directorios• Servicios de archivos• Servicios de directorios• Sistemas de archivos• El servidor de archivos• Puntos a recordar

Sistemas operativos: una visión aplicada 26 © J. Carretero, F. García, P. de Miguel, F. Pérez

Concepto de directorio

• Objeto que relaciona de forma unívoca un nombre de usuario de archivo con su descriptor interno

• Organizan y proporcionan información sobre la estructuración de los sistemas de archivos

• Una colección de nodos que contienen información acerca de los archivos

Page 7: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 27 © J. Carretero, F. García, P. de Miguel, F. Pérez

Directorios: visión lógica

• Esquema jerárquico. • Cuando se abre un archivo el SO busca el nombre en la

estructura de directorios. • Operaciones sobre un directorio:

– Crear (insertar) y borrar (eliminar) directorios. – Abrir y cerrar directorios. – Renombrar directorios. – Leer entradas de un directorio. – Montar (combinar)

• La organización jerárquica de un directorio – Simplifica el nombrado de archivos (nombres únicos) – Proporciona una gestión de la distribución => agrupar

archivos de forma lógica (mismo usuario, misma aplicación)

Sistemas operativos: una visión aplicada 29 © J. Carretero, F. García, P. de Miguel, F. Pérez

Estructura de los directorios

• Tanto la estructura del directorio como los archivos 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.• Dos alternativas principales:

– Almacenar atributos de archivo en entrada directorio– Almacenar <nombre, identificador>, con datos archivo en

una estructura distinta. Esta es mejor.

Sistemas operativos: una visión aplicada 30 © J. Carretero, F. García, P. de Miguel, F. Pérez

NombreNodo-i: Puntero al descriptor del archivo

Directorio de CP/MDirectorio de CP/MDirectorio de CP/MDirectorio de CP/M

NombreTipo de archivo

Contadorde bloques

Código deusuario

archivoextendido

Númerosde bloque

. . .

Directorio de MS-DOSDirectorio de MS-DOSDirectorio de MS-DOSDirectorio de MS-DOS

Directorio de UNIXDirectorio de UNIXDirectorio de UNIXDirectorio de UNIX

NombreTipo de archivo Reservado

Atributos Fecha Tamaño

Hora

Númerodel primer bloque

Ejemplo de entradas de directorio

Sistemas operativos: una visión aplicada 31 © J. Carretero, F. García, P. de Miguel, F. Pérez

Organización del directorio

• Eficiencia: localizar un archivo rápidamente• Nombrado: conveniente y sencillo para los usuarios

– Dos usuarios pueden tener el mismo nombre para archivos distintos

– Los mismos archivos pueden tener nombres distintos– Nombres de longitud variable

• Agrupación: agrupación lógica de los archivos 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.

Page 8: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 32 © J. Carretero, F. García, P. de Miguel, F. Pérez

Directorio de un nivel

• Un único directorio para todos los usuarios• Problemas de nombrado y agrupación

Directorio

Archivos

carta mapa.gif lista.txt programa.o... ...

... ...

Sistemas operativos: una visión aplicada 33 © J. Carretero, F. García, P. de Miguel, F. Pérez

Directorio de dos niveles

• Un directorio por cada usuario• Camino de acceso automático o manual• El mismo nombre de archivo para varios usuarios• Búsqueda eficiente, pero problemas de agrupación

Directoriomaestromarivi miguel elvira... ...

archivos... ...

Directoriodel usuariodatos lista.c claves... ...

archivos... ...

Directoriodel usuariotest agenda claves... ...

archivos... ...

Directoriodel usuariomail lista.c mio.o... ...

Sistemas operativos: una visión aplicada 34 © J. Carretero, F. García, P. de Miguel, F. Pérez

Directorio con estructura de árbol

• Búsqueda eficiente y agrupación• Nombres relativos y absolutos -> directorio de trabajo

Directorioraíztmp home usr... ...

marivi miguel elvira...

test agenda claves

sh rm vi

bin include mail

mio.o

buzonstdio.h

datos lista.c claves

correo agenda

Sistemas operativos: una visión aplicada 35 © J. Carretero, F. García, P. de Miguel, F. 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 archivo: rm <nombre-archivo>• Crear un subdirectorio: mkdir <nombre_dir>• Ejemplo:

– cd /spell/mail – mkdir count– ls /spell/mail/count

• Borrar un subdirectorio: rm -r mail

Page 9: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 36 © J. Carretero, F. García, P. de Miguel, F. Pérez

Directorio de grafo acíclico I

• Tienen archivos y subdirectorios compartidos• Este concepto no existe en Windows

Directorioraíztmp home usr... ...

marivi miguel elvira...

test agenda claves

sh rm vi

bin include mail

buzonstdio.h

datos lista.c claves

clavescorreo agenda

Sistemas operativos: una visión aplicada 37 © J. Carretero, F. García, P. de Miguel, F. Pérez

Directorio de grafo acíclico II

• link: Un archivo con varios nombres -> control de enlaces– un único archivo con contador enlaces en descriptor (e. Físicos)– archivos nuevos con el nombre destino dentro (e. simbólicos)

• Borrado de enlaces: – a) decrementar contador; si 0 borrar archivo– 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 archivos, 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 archivos.

Sistemas operativos: una visión aplicada 38 © J. Carretero, F. García, P. de Miguel, F. Pérez

Nombres jerárquicos

• Nombre absoluto: especificación del nombre respecto a la raíz (/en LINUX, \ en Windows).

• Nombre relativo: especificación del nombre respecto a un directorio distinto del raíz– Ejemplo: (Estamos en /users/) miguel/claves– Relativos al dir. de trabajo o actual: aquel en el se está al

indicar el nombre relativo. En Linux se obtiene con pwd• Directorios especiales:

– . Directorio de trabajo. Ejemplo: cp / users/miguel/claves .– .. Directorio padre. Ejemplo: ls ..– Directorio HOME: el directorio base del usuario

Sistemas operativos: una visión aplicada 39 © J. Carretero, F. García, P. de Miguel, F. Pérez

Interpretación de nombres en LINUX. I

clavestextos

7583265

.

.....

.

..

Page 10: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 40 © J. Carretero, F. García, P. de Miguel, F. Pérez

• Interpretar /users/miguel/claves– Traer a memoria entradas archivo con nodo-i 2– Se busca dentro users y se obtiene el nodo-i 342– Traer a memoria entradas archivo con nodo-i 342– Se busca dentro miguel y se obtiene el nodo-i 256– Traer a memoria entradas archivo con nodo-i 256– Se busca dentro claves y se obtiene el nodo-i 758– Se lee el nodo-i 758 y ya se tienen los datos del archivo

• ¿Cuándo parar?– Se ha encontrado el nodo-i del archivo– No se ha encontrado y no hay más subdirectorios– Estamos en un directorio y no contiene la siguiente

componente del nombre (por ejemplo, miguel).

Interpretación de nombres en LINUX. II

Sistemas operativos: una visión aplicada 41 © J. Carretero, F. García, P. de Miguel, F. Pérez

Jerarquía de directorios

• ¿Árbol único de directorios?– Por dispositivo lógico en Windows (c:\users\miguel\claves,

j:\pepe\tmp, ...)– Para todo el sistema en UNIX (/users/miguel/claves,

/pepe/tmp, ...). • Hacen falta servicios para construir la jerarquía: mount y umount.– mount /dev/hda /users– umount /users

• Ventajas: imagen única del sistema y ocultan el tipo de dispositivo

• Desventajas: complican la traducción de nombres, problemas para enlaces físicos entre archivos

Sistemas operativos: una visión aplicada 42 © J. Carretero, F. García, P. de Miguel, F. Pérez

Montado de Sistemas de archivos o particiones

/

/lib /bin /usr

/

/d1 /d2 /d3

/d3/f2/d3/f1

/

/lib /bin /usr

/usr/d1

/usr/d3

/usr/d3/f2/usr/d3/f1

Volumen raiz(/dev/hd0)

Volumen sin montar(/dev/hd1)

mount /dev/hd1 /usr

Volumen montado

/usr/d2

Sistemas operativos: una visión aplicada 89 © J. Carretero, F. García, P. de Miguel, F. Pérez

Contenido

• Visión del usuario del sistema de archivos• Archivos• Directorios• Servicios de archivos• Servicios de directorios

• Sistemas de archivos• El servidor de archivos• Puntos a recordar

Page 11: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 90 © J. Carretero, F. García, P. de Miguel, F. Pérez

Sistemas de archivos y particiones

• El sistema de archivos permite organizar la información dentro de los dispositivos de almacenamiento secundario en un formato inteligible para el sistema operativo.

• Previamente a la instalación del sistema de archivos es necesario dividir físicamente, o lógicamente, los discos en particiones o volúmenes [Pinkert1989].

• Una partición es una porción de un disco a la que se la dota de una identidad propia y que puede ser manipulada por el sistema operativo como una entidad lógica independiente.

• Una vez creadas las particiones, el sistema operativo debe crear las estructuras de los sistemas de archivos dentro de esas particiones. Para ello se proporcionan mandatos como format o mkfs al usuario. #mkswap –c /dev/hda2 20800#mkfs -c /dev/hda3 –b 8196 123100

Sistemas operativos: una visión aplicada 91 © J. Carretero, F. García, P. de Miguel, F. Pérez

Partición 2Partición 2Partición 2Partición 2

Partición 3Partición 3Partición 3Partición 3

Partición 5Partición 5Partición 5Partición 5Partición 4Partición 4Partición 4Partición 4

Tipos de particiones

Sistemas operativos: una visión aplicada 92 © J. Carretero, F. García, P. de Miguel, F. Pérez

Sistemas de archivos y particiones (II)

• Sistema de archivos: conjunto coherente de metainformación y datos. • Ejemplos de Sistemas de archivos:

Boot Dos copiasde la FAT

DirectorioRaíz

Datos yDirectorios

Boot nodos-iSuperBloque

Mapasde bits

Datos yDirectorios

MS-DOS

UNIX

Sistemas operativos: una visión aplicada 93 © J. Carretero, F. García, P. de Miguel, F. Pérez

Sistemas de archivos y particiones (III)

• Descripción de sistemas de archivos: – El sector de arranque en MS-DOS – El superbloque en UNIX

• Relación sistema de archivos-dispositivo: – Típico: 1 dispositivo N sistemas de archivos (particiones) – Grandes archivos: N dispositivos 1 sistema de archivos

• Típicamente cada dispositivo se divide en una o más particiones (en cada partición sistema de archivos)

• La tabla de particiones indica el principio, el tamaño y el tipo de cada partición.

Page 12: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 94 © J. Carretero, F. García, P. de Miguel, F. Pérez

Bloques y agrupaciones

• Bloque: agrupación lógica de sectores de disco y es la unidad de transferencia mínima que usa el sistema de archivos. – Optimizar la eficiencia de la entrada/salida de los

dispositivos secundarios de almacenamiento. – Todos los sistemas operativos proporcionan un tamaño de

bloque por defecto.– Los usuarios pueden definir el tamaño de bloque a usar

dentro de un sistema de archivos mediante el mandato mkfs. • Agrupación: conjunto de bloques que se gestionan como una

unidad lógica de gestión del almacenamiento. – El problema que introducen las agrupaciones, y los bloques

grandes, es la existencia de fragmentación interna.

Sistemas operativos: una visión aplicada 95 © J. Carretero, F. García, P. de Miguel, F. Pérez

Tamaño de BloqueTamaño de BloqueTamaño de BloqueTamaño de Bloque

ancho de banda

uso del disco

A AAAn nnnc ccc

h hhho ooo d ddd

e eee B BBB

a aaan nnnd ddda aaa

( (((K KKK

b bbby yyyt ttte eee

s sss/ ///s ssse eee

c ccc) )))

U UUUs ssso ooo

d ddde eeel lll

E EEEs sssp ppp

a aaac ccci iiio ooo

d ddde eee

D DDDi iiis sss

c ccco ooo

0

50

100

500

800

256 512 1K 2K 4K 8K 16K 32K

0

100 %

25

50

75

Tamaño bloque, ancho banda y uso disco

Sistemas operativos: una visión aplicada 96 © J. Carretero, F. García, P. de Miguel, F. Pérez

Estructuras de sistemas de archivos

Sistemas operativos: una visión aplicada 97 © J. Carretero, F. García, P. de Miguel, F. Pérez

Superbloque de sistemas de archivos en LINUX

Page 13: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 98 © J. Carretero, F. García, P. de Miguel, F. Pérez

Otros sistemas de archivos

• Fast File System• EXT2 (extended file system) • Archivos con bandas• LFS (log structured file system) • Sistemas de archivos paralelos• ....

Sistemas operativos: una visión aplicada 99 © J. Carretero, F. García, P. de Miguel, F. Pérez

Estructura del FFS

Sistemas operativos: una visión aplicada 100 © J. Carretero, F. García, P. de Miguel, F. Pérez

Partición LógicaPartición LógicaPartición LógicaPartición Lógica

Disco 0Disco 0Disco 0Disco 0

bloque 0

bloque 4

bloque 3bloque 2bloque 1

Partición delsistema

ConjuntoConjuntoConjuntoConjunto de de de de bandas bandas bandas bandas

Disco 1Disco 1Disco 1Disco 1 Disco 2Disco 2Disco 2Disco 2 Disco 3Disco 3Disco 3Disco 3

Estructura de un sistema de archivos con bandas

Sistemas operativos: una visión aplicada 101 © J. Carretero, F. García, P. de Miguel, F. Pérez

Contenido

• Visión del usuario del sistema de archivos• Archivos• Directorios• Servicios de archivos• Servicios de directorios• Sistemas de archivos

• El servidor de archivos• Puntos a recordar

Page 14: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 102 © J. Carretero, F. García, P. de Miguel, F. Pérez

Servidor de archivos

• Para proporcionar un acceso eficiente y sencillo a los dispositivos de almacenamiento, todos los sistemas operativos tienen un servidor de archivos que permite almacenar, buscar y leer datos fácilmente.

• Dicho servidor de archivos tiene dos tipos de problemas de diseño muy distintos entre sí:– Definir la visión de usuario del sistema de entrada/salida,

incluyendo servicios, archivos, directorios, sistemas de archivos, etc.

– Definir los algoritmos y estructuras de datos a utilizar para hacer corresponder la visión del usuario con el sistema físicode almacenamiento secundario.

Sistemas operativos: una visión aplicada 103 © J. Carretero, F. García, P. de Miguel, F. Pérez

Estructura del servidor de archivos

Proceso deUsuario 1

Proceso deUsuario 2

Proceso deUsuario 3

Proceso deUsuario n

. . .Nivel deusuario

Nivel desistema

Manejadores de Dispositivo

Servidor de Bloques

Módulo de Organización de Archivos

Cache de Bloques

ext2 msdos ffs . . .

. . .

proc

Sistema de Archivos Virtual

Sistemas operativos: una visión aplicada 104 © J. Carretero, F. García, P. de Miguel, F. Pérez

Sistema de archivos virtuales

• S.A. Virtual: interfaz de llamadas de entrada/salida del sistema y de pasar almódulo de organización de archivos la información necesaria para ejecutar los servicios pedidos por los usuarios.

• Servicios:– manejo de directorios, – gestión de nombres, – algunos servicios de seguridad, – integración dentro del servidor de archivos de distintos tipos de sistemas

de archivos – servicios genéricos de archivos y directorios.

• Nodo virtual: estructura de información que incluye las características mínimas comunes a todos los sistemas de archivos subyacentes y que enlaza con un descriptor de archivo de cada tipo particular.

Sistemas operativos: una visión aplicada 105 © J. Carretero, F. García, P. de Miguel, F. Pérez

Estructura de un nodo virtual de UNIXnodo-v

Direcciones delas operaciones

virtuales

Direcciones delas operaciones

específicas de SA

Dirección delnodo-i

específico

Información del archivo

virtual

nodo-i

Tabla de funciones

del SA

Page 15: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 106 © J. Carretero, F. García, P. de Miguel, F. Pérez

Módulo de organización de archivos

• Proporciona el modelo del archivo del sistema operativo y los servicios de archivos.

• Relaciona la imagen lógica del archivo con su imagen física, proporcionando algoritmos para trasladar direcciones lógicas de bloques a sus correspondientes direcciones físicas.

• Gestiona el espacio de los sistemas de archivos, la asignación de bloques a archivos y el manejo de los descriptores de archivo (nodos-i de UNIX o registros de Windows NT).

• Un módulo de este estilo por cada tipo de archivo soportado (UNIX, AFS, Windows NT, MS-DOS, EFS, MINIX, etc.).

• Dentro de este nivel también se proporcionan servicios para pseudo-archivos, tales como los del sistema de archivos proc.

• Las llamadas de gestión de archivos y de directorios particulares de cada sistema de archivos se resuelven en el módulo de organización de archivos. Para ello, se usa la información existente en el nodo-i del archivo afectado por las operaciones.

Sistemas operativos: una visión aplicada 107 © J. Carretero, F. García, P. de Miguel, F. Pérez

Servidor de bloques

• Se encarga de emitir los mandatos genéricos para leer y escribir bloques a los manejadores de dispositivo.

• La E/S de bloques de archivo, y sus posibles optimizaciones, se lleva a cabo en este nivel del servidor de archivos.

• Las operaciones se traducen a llamadas de los manejadores de cada tipo de dispositivo específico y se pasan al nivel inferior del sistema de archivos.

• Esta capa oculta los distintos tipos de dispositivos, usando nombres lógicos para los mismos. Por ejemplo, /dev/hda3será un dispositivo de tipo hard disk (hd), cuyo nombre principal es a y en el cual se trabaja sobre su partición 3.

• Los mecanismos de optimización de la E/S, como la cache de bloques, se incluye en este nivel.

Sistemas operativos: una visión aplicada 108 © J. Carretero, F. García, P. de Miguel, F. Pérez

Descomposición en operaciones de bloques

• Archivos con estructura de bytes – Escritura leer

Fichero (tira de bytes)Fichero (tira de bytes)

Bloques

Sistemas operativos: una visión aplicada 109 © J. Carretero, F. García, P. de Miguel, F. Pérez

Descomposición en operaciones de bloques (II)

• Archivos de registros de tamaño fijo

R1 R2 R3 R4 R5 R6

R1 R2 R4 R5 R6R3

Bloque 2Bloque 1 Bloque 3

Bloque 1 Bloque 2 Bloque 3

Page 16: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 110 © J. Carretero, F. García, P. de Miguel, F. Pérez

Manejadores de dispositivos

• Un manejador por cada dispositivo, o clase de dispositivo, del sistema. • Su función principal es recibir ordenes de E/S de alto nivel, tal como

move_to_block 234, y traducirlas al formato que entiende el controladordel dispositivo, que es dependiente de su hardware.

• Habitualmente, cada dispositivo tiene una cola de peticiones pendientes, de forma que un manejador puede atender simultáneamente a varios dispositivosdel mismo tipo.

• Una de las principales funciones de los manejadores de dispositivos es recibir las peticiones de entrada/salida y colocarlas en el lugar adecuado de la cola de peticiones del dispositivo afectado. – La política de inserción en cada cola puede ser diferente, dependiendo del

tipo de dispositivo o de la prioridad de los dispositivos. Para un disco, por ejemplo, se suele usar la política CSCAN.

Sistemas operativos: una visión aplicada 111 © J. Carretero, F. García, P. de Miguel, F. Pérez

Flujo de datos en el S. de A.

Usuario

read (fd, buffer, tamaño)

tamaño

buffer

bloques del archivo

bloques del dispositivo

bloques del disco

archivo lógico(VFS)

archivo lógico(FFS)

Manejador de disco y

dispositivo

Bloques lógicos(Servidor

de bloques)

3

1340

1340

1756

1756

840

840

8322

8322

4 5 6

Sistemas operativos: una visión aplicada 112 © J. Carretero, F. García, P. de Miguel, F. Pérez

Estructuras de datos asociadas al S. de A. (I)

• Tabla de nodos-v: almacena en memoria la información del nodo-v existenteen el disco y otra que se usa dinámicamente y que sólo tiene sentido cuandoel archivo está abierto. – Problema: si sólo hay un campo de apuntador, cada operación de un

proceso afectaría a todos los demás. – Posible solución: incluir la información relativa al archivo dentro del

bloque de descripción del proceso (BCP). • Tabla de archivos abiertos (tdaa) por un proceso, dentro del BCP, con sus

descriptores temporales y el valor del apuntador de posición del archivo para ese proceso. – El tamaño de esta tabla define el máximo número de archivos que cada

proceso puede tener abierto de forma simultánea. – El descriptor de archivo fd indica el lugar de tabla. La tdaa se rellena

de forma ordenada, de forma que siempre se ocupa la primera posición libre de la tabla.

– En los sistemas UNIX cada proceso tiene tres descriptores de archivos abiertos por defecto: entrada estándar, fd = 0, salida estándar, fd = 1, error estándar, fd = 2.

Sistemas operativos: una visión aplicada 113 © J. Carretero, F. García, P. de Miguel, F. Pérez

Estructuras de datos asociadas al S. de A. (II)

• Tabla intermedia nodo-i-posición: entre la tabla de archivosdel BCP y la tabla de nodos-I. Dicha tabla incluye, entre otras cosas:– La entrada del nodo-i del archivo abierto en la tabla de

nodos-i.– El apuntador de posición correspondiente al proceso, o

procesos, que usan el archivo durante esa sesión.– El modo de apertura del archivo

• Tabla de nodos-i: almacena en memoria la información delnodo-i existente en el disco y otra que se usa dinámicamente y que sólo tiene sentido cuando el archivo está abierto. – Esta tabla limita el número de máximo de archivos abiertos

en el sistema de forma simultánea.

Page 17: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 114 © J. Carretero, F. García, P. de Miguel, F. Pérez

Tablas que usa el servidor de archivos

Tabla de archivos Tabla de archivos Tabla de archivos Tabla de archivos abiertos. P1abiertos. P1abiertos. P1abiertos. P1

234563563678

01234

fd

Tabla de archivos Tabla de archivos Tabla de archivos Tabla de archivos abiertos. P3abiertos. P3abiertos. P3abiertos. P3

2300534465326

01234

fd

Tabla de archivos Tabla de archivos Tabla de archivos Tabla de archivos abiertos. P2abiertos. P2abiertos. P2abiertos. P2

230563983247

01234

fd

Tabla intermedia Tabla intermedia Tabla intermedia Tabla intermedia de nodos-i y posicionesde nodos-i y posicionesde nodos-i y posicionesde nodos-i y posiciones

Tabla de Tabla de Tabla de Tabla de nodos-inodos-inodos-inodos-i

98 456234898

Nodo-iNodo-iNodo-iNodo-i PosiciónPosiciónPosiciónPosición

98

Sistemas operativos: una visión aplicada 115 © J. Carretero, F. García, P. de Miguel, F. Pérez

Correspondencia bloques-archivos

• ¿Cómo asignar los bloques de disco a un archivo y cómo hacerlos corresponder con la imagen del archivo que tiene la aplicación?

• Asignación de bloques contiguos. – Sencillo de implementar y el rendimiento de la E/S es muy bueno.– Si no se conoce el tamaño total del archivo cuando se crea, puede ser necesario

buscar un nuevo hueco de bloques consecutivos cada vez que el archivo crece.– Fragmentación externa -> compactar el disco.

• Asignación de bloques discontiguos. – Se asigna al archivo el primer bloque que se encuentra libre. – No hay fragmentación externa del disco ni búsqueda de huecos. – Los archivos pueden crecer mientras exista espacio en el disco. – Complica la implementación de la imagen de archivo -> mapa de bloques

del archivo.

Sistemas operativos: una visión aplicada 116 © J. Carretero, F. García, P. de Miguel, F. Pérez

Mecanismos enlazados

• Listas o índices enlazados: desde cada entrada de un bloque existe un enlace al siguiente bloque del archivo.

• Ejemplo: tabla FAT de Windows

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

archivo A: 6 8 4 2

archivo B: 5 9 12

archivo C: 10 3 13

FAT

Sistemas operativos: una visión aplicada 117 © J. Carretero, F. García, P. de Miguel, F. Pérez

Mecanismos indexados

• Cada archivo tiene sus bloques de índice que incluyen apuntadores a los bloques de disco del archivo. – El orden lógico se consigue mediante la inserción de los apuntadores en

orden creciente, a partir del primero, en los bloques de índices. – Ventaja: basta con traer a memoria el bloque de índices donde está el

apuntador a los datos para tener acceso al bloque de datos. Si un apuntador de bloque ocupa 4 bytes y el bloque es de 4 Kbytes, con un único acceso a disco tendremos 1024 apuntadores a bloques del archivo.

– Problema: el espacio extra necesario para los bloques de índices. • Ese problema, fue resuelto en UNIX BSD combinando un sistema de índices

puros con un sistema de índices multinivel, que es que se usa actualmente en UNIX y LINUX.

• Permite almacenar archivos pequeños sin necesitar bloques de índices. • Permite accesos aleatorios a archivos muy grandes con un máximo de 3 accesos a bloques de índices.

Page 18: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 118 © J. Carretero, F. García, P. de Miguel, F. Pérez

Mapa de bloques en un nodo-i

nodo-i

Bloque indirecto

Indirecto simple

Indirecto doble

Indirecto triple

Direcciones delos 10 primeros

bloques

Información del archivo

820

1134

675

10211

8204

204620464

342

1623

DISCO

...

...

Sistemas operativos: una visión aplicada 119 © J. Carretero, F. García, P. de Miguel, F. Pérez

Gestión de espacio libre

• Mapas de bits, o vectores de bits: un bit por recurso existente (descriptor de archivo, bloque o agrupación). Si el recurso está libre, el valor del bit asociado al mismo es 1, si está ocupado es 0.

– Ejemplo, sea un disco en el que los bloques 2, 3, 4, 8, 9 y 10 están ocupados y elresto libres, y en el que los descriptores de archivo 2, 3 y 4 están ocupados. Sus mapas de bits de serían:• MB de bloques: 1100011100011.... M• MB de descriptores: 1100011...

– Fácil de implementar y sencillo de usar. Eficiente si el dispositivo no está muy lleno o muy fragmentado.

• Listas de recursos libres: mantener enlazados en una lista todos los recursos disponibles (bloques o descriptores de archivos) manteniendo un apuntador al primer elemento de la lista. – Este método no es eficiente, excepto para dispositivos muy llenos y

fragmentados– Uso de agrupaciones.

Sistemas operativos: una visión aplicada 120 © J. Carretero, F. García, P. de Miguel, F. Pérez

Ejemplo de listas de recursos

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Bloques libres 7 14 16 1711 18 (A)

Bloques libres 11,1 16,314,17,1 (B)

Sistemas operativos: una visión aplicada 121 © J. Carretero, F. García, P. de Miguel, F. Pérez

Incremento de prestaciones

• Basados en el uso de almacenamiento intermedio de datos de entrada/salidaen memoria principal. Estos mecanismos son de dos tipos:– Discos RAM, cuyos datos están almacenados sólo en memoria.

• Aceptan todas las operaciones de cualquier otro sistema de archivos y son gestionados por el usuario.

• Pseudodispositivos para almacenamiento temporal o para operaciones auxiliares del sistema operativo. Su contenido es volátil.

– Cache de datos, instaladas en secciones de memoria principal controladas por el sistema operativo, donde se almacenan datos para optimizar accesos posteriores.

• Se basan en la existencia de proximidad espacial y temporal en las referencias a los datos de entrada/salida.

• Dos caches importantes dentro del servidor de archivos: cache de nombres y cache de bloques.

Page 19: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 122 © J. Carretero, F. García, P. de Miguel, F. Pérez

Cache de bloques

• Fundamento: – Proximidad espacial – Proximidad temporal – Dos clases de flujos de E/S:

• Usan una sola vez cada bloque • Usan repetidamente los bloques

– Acceso a disco mucho más lento que el acceso a memoria

Sistemas operativos: una visión aplicada 123 © J. Carretero, F. García, P. de Miguel, F. Pérez

Cache de bloques (II)

• Estructura de datos en memoria con los bloques más frecuentemente utilizados

– Lecturas adelantadas – Limpieza de la cache (sync)

• Principal problema: fiabilidad del sistema de archivos.

Disco

Proceso

Disco

Cache

Proceso

Cache

Sistemas operativos: una visión aplicada 124 © J. Carretero, F. García, P. de Miguel, F. Pérez

Flujo datos con cache de bloques

Usuario

read (fd, buffer, tamaño)

tamaño

buffer

bloques del archivo

bloques del dispositivo

bloques del disco

archivo lógico(VFS)

archivo lógico(FFS)

Manejador de disco y

dispositivo

Bloques lógicos(Servidor

de bloques)

Cache de bloques(Servidor

de bloques)

3

1340

1340

1756

1756

1756

840

840

8322

8322

8322

4 5 6

Sistemas operativos: una visión aplicada 125 © J. Carretero, F. García, P. de Miguel, F. Pérez

Políticas de reemplazo

• Algoritmo:– Comprobar si el bloque a leer está en la cache.

• En caso de que no esté, se lee del dispositivo y se copia a la cache. • Si la cache está llena, es necesario hacer hueco para el nuevo bloque

reemplazando uno de los existentes: políticas de reemplazo.• Si el bloque ha sido escrito (sucio): política de escritura.

• Políticas de reemplazo: FIFO (First in First Out), segunda oportunidad, MRU (Most Recently Used), LRU (Least Recently Used), etc.

– La política de reemplazo más frecuentemente usada es la LRU. Esta política reemplaza el bloque que lleva más tiempo sin ser usado, asumiendo que no seráreferenciado próximamente.

– Los bloques más usados tienden a estar siempre en la cache y, por tanto, no van al disco. La utilización estricta de esta política puede crear problemas de fiabilidaden el sistema de archivos si el computador falla.

– La mayoría de los servidores de archivos distinguen entre bloques especiales y bloques de datos.

Page 20: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 126 © J. Carretero, F. García, P. de Miguel, F. Pérez

Políticas de escritura

• Escritura inmediata (write-through): se escribe cada vez que se modifica el bloque.– No hay problema de fiabilidad, pero se reduce el rendimiento del sistema.

• Escritura diferida (write-back): sólo se escriben los datos a disco cuando se eligen para su reemplazo por falta de espacio en la cache. – Optimiza el rendimiento, pero genera los problemas de fiabilidad

anteriormente descritos. • Escritura retrasada (delayed-write), que consiste en escribir a disco los

bloques de datos modificados en la cache de forma periódica cada cierto tiempo (30 segundos en UNIX). – Compromiso entre rendimiento y fiabilidad.– Reduce la extensión de los posibles daños por pérdida de datos. – Los bloques especiales se escriben inmediatamente al disco. – No se puede quitar un disco del sistema sin antes volcar los datos de la

cache. • Escritura al cierre (write-on-close): cuando se cierra un archivo, se vuelcan

al disco los bloques del mismo que tienen datos actualizados. Sistemas operativos: una visión aplicada 127 © J. Carretero, F. García, P. de Miguel, F. Pérez

Montado de sistemas de archivos o particiones

• Oculta el nombre del dispositivo físico o partición

• En MS-DOS c:\tmp\datos.txt

/

/lib /bin /usr

/

/d1 /d2 /d3

/d3/f2/d3/f1

/

/lib /bin /usr

/usr/d1

/usr/d3

/usr/d3/f2/usr/d3/f1

Volumen raiz(/dev/hd0)

Volumen sin montar(/dev/hd1)

mount /dev/hd1 /usr

Volumen montado

/usr/d2

Sistemas operativos: una visión aplicada 128 © J. Carretero, F. García, P. de Miguel, F. Pérez

Enlaces

• Permite que dos o más nombres hagan referencia al mismo archivo.

• Dos tipos: – Enlace físico

• El archivo sólo se elimina cuando se borran todos los enlaces • Sólo se permiten enlazar archivos (no directorios) del mismo

volumen.

– Enlace simbólico • El archivo se elimina cuando se borra el enlace físico. Si

permanece el enlace simbólico provoca errores al tratar de accederlo.

• Se puede hacer con archivos y directorios. • Se puede hacer entre archivos de diferentes sistema de archivos

Sistemas operativos: una visión aplicada 129 © J. Carretero, F. García, P. de Miguel, F. Pérez

Enlace físico

ln /user/pepe/datos.txt /user/juan/datos2.txt

/

usr lib

pepe

user

juan

prog.cdatos.txt

prog.c

...datos.txt

23100

28400

pepe

...

datos2.txt

80100

60 enlaces = 2prueba.txt

datos2.txtprueba.txt

28

descripción del fichero

juannodo-i 28

/

usr lib

pepe

user

prog.c prueba.txtdatos.txt

prog.c

...datos.txt

23100

28400

pepe

...prueba.txt

80100

60

juan

juan

Page 21: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 130 © J. Carretero, F. García, P. de Miguel, F. Pérez

Enlace simbólico

ln -s /user/pepe/datos.txt /user/juan/datos2.txt

/

usr lib

pepe

user

juan

prog.cdatos.txt

prog.c

...datos.txt

23100

130400

pepe

...

datos2.txt

80100

60prueba.txt

datos2.txtprueba.txt

28

juan

enlaces = 1

/user/pepe/datos.txt

nodo-i 130

enlaces = 1

descripción del fichero

nodo-i 28

/

usr lib

pepe

user

prog.c prueba.txtdatos.txt

prog.c

...datos.txt

23100

28400

pepe

...prueba.txt

80100

60

juan

juan

Sistemas operativos: una visión aplicada 131 © J. Carretero, F. García, P. de Miguel, F. Pérez

Ejemplo de montado/

= punto de montado

Punto demontado

Sistemas operativos: una visión aplicada 132 © J. Carretero, F. García, P. de Miguel, F. Pérez

Fiabilidad del sistema de archivos• Fallos HW y SW pueden provocar fallos en un volumen • Soluciones:

– Hardware: • Controladores que tratan con sectores con fallos • Discos con información redundante (RAID)

– Backups (copias de respaldo) • En discos

• En cintas • Backups incrementales

ABAB

Sistemas operativos: una visión aplicada 133 © J. Carretero, F. García, P. de Miguel, F. Pérez

Redundancia con paridad

Dispositivo RAID

Disco 0 Disco 1 Disco 2 Disco 3

bloque 0

bloque 3

paridadbloque 2bloque 1

Page 22: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 134 © J. Carretero, F. García, P. de Miguel, F. Pérez

Consistencia del sistema de archivos (I)

• Dos aspectos importantes:– Comprobar que la estructura física del sistema de archivos es coherente.– Verificar que la estructura lógica del sistema de archivos es correcta.

• Estrucutra física: se comprueba la superficie del dispositivo de almacenamiento.

• Estructura lógica:1. Se comprueba que el contenido del superbloque responde a las

características del sistema de archivos. 2. Se comprueba que los mapas de bits de nodos-i se corresponden con los

nodos-i ocupados en el sistema de archivos. 3. Se comprueba que los mapas de bits de bloques se corresponden con los

bloques asignados a archivos.4. Se comprueba que ningún bloque esté asignado a más de un archivo. 5. Se comprueba el sistema de directorios del sistema de archivos, para ver

que un mismo nodo-i no está asignado a más de un directorio.

Sistemas operativos: una visión aplicada 135 © J. Carretero, F. García, P. de Miguel, F. Pérez

Consistencia del sistema de archivos (II)

• Consistencia sobre archivos: – Contador de enlaces > contador real – Contador de enlaces < contador real – Número de nodo-i > Número total de nodos-i – Archivos con bits de protección 0007 – Archivos con privilegios en directorios de usuario

• UNIX y LINUX: fsck

fsck /dev/dsk/c0t0d3s1

– Comprueba el dispositivo físico c0t0d3s1

Sistemas operativos: una visión aplicada 136 © J. Carretero, F. García, P. de Miguel, F. Pérez

Estado de los bloques

0000

1012 3 n

0111

1002 3 n

CASO 2CASO 2CASO 2CASO 2

Número de bloqueNúmero de bloqueNúmero de bloqueNúmero de bloque

ReferenciasReferenciasReferenciasReferencias

LibresLibresLibresLibres

0000

1112 3 n

0111

1002 3 n

CASO 1CASO 1CASO 1CASO 1

Número de bloqueNúmero de bloqueNúmero de bloqueNúmero de bloque

ReferenciasReferenciasReferenciasReferencias

LibresLibresLibresLibres

0000

1212 3 n

0111

1002 3 n

CASO 3CASO 3CASO 3CASO 3

Número de bloqueNúmero de bloqueNúmero de bloqueNúmero de bloque

ReferenciasReferenciasReferenciasReferencias

LibresLibresLibresLibres

0000

1012 3 n

0111

1202 3 n

CASO 4CASO 4CASO 4CASO 4

Número de bloqueNúmero de bloqueNúmero de bloqueNúmero de bloque

ReferenciasReferenciasReferenciasReferencias

LibresLibresLibresLibres

Sistemas operativos: una visión aplicada 137 © J. Carretero, F. García, P. de Miguel, F. Pérez

Cerrojos

• Tipos: – Compartido – Exclusivo

• Importante para trabajo colaborativo

Fichero

Fichero

Fichero

Cerrojo C

Cerrojo C

Cerrojo C

Cerrojo C

Cerrojo C

Cerrojo C

Cerrojo Ex

Cerrojo Ex

Page 23: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 138 © J. Carretero, F. García, P. de Miguel, F. Pérez

Cerrojos en POSIX#include <sys/types.h>#include <unistd.h>#include <fcntl.h>int fcntl(int fd, int cmd, struct flock *f);

• cmd puede ser: – F_SETLK => no bloqueante – F_SETLKW => bloqueante

• La estructura struct flock– l_type =>

• F_RDLCK indica un cerrojo compartido • F_WDLCK indica un cerrojo exclusivo • F_UNLCK Elimina un cerrojo

– l_whence origen del desplazamiento (SEEK_SET, SEEK_CUR, SEEK_END)

– l_start desplazamiento en bytes. – l_len número de bytes sobre los que se establece el cerrojo

Sistemas operativos: una visión aplicada 139 © J. Carretero, F. García, P. de Miguel, F. Pérez

Otros servicios

• Actualización atómica, o indivisible: asegura a los usuarios que sus operaciones están libres de interferencia con las de otros usuarios y que la operación se realiza completamente o no tiene ningún efecto en el sistema.

• Transacciones: permite ejecutar operaciones atómicas que agrupan a varias operaciones de entrada/salida y que se ejecutarán con semántica todo o nada.

• Replicación: mantener varias copias de los datos y otros recursos del sistema. Gestión de copias:– Copia primaria– Gestión colectiva

Sistemas operativos: una visión aplicada 140 © J. Carretero, F. García, P. de Miguel, F. Pérez

Gestión de la replicación

GRGRGRGRprimarioprimarioprimarioprimario

GRGRGRGRsecundariosecundariosecundariosecundario

GRGRGRGRsecundariosecundariosecundariosecundario

P 1P 1P 1P 1 P 2P 2P 2P 2

Leer f1Leer f1Leer f1Leer f1Leer f2Leer f2Leer f2Leer f2

Escribir f1Escribir f1Escribir f1Escribir f1

Escribir f1Escribir f1Escribir f1Escribir f1

Escribir f1Escribir f1Escribir f1Escribir f1

Modelo de copia primariaModelo de copia primariaModelo de copia primariaModelo de copia primaria

Gestor deGestor deGestor deGestor deRéplicasRéplicasRéplicasRéplicas

Gestor deGestor deGestor deGestor deRéplicasRéplicasRéplicasRéplicas

Gestor deGestor deGestor deGestor deRéplicasRéplicasRéplicasRéplicas

P 1P 1P 1P 1 P 2P 2P 2P 2

Escribir f1, 2Escribir f1, 2Escribir f1, 2Escribir f1, 2

Escribir f1, 2Escribir f1, 2Escribir f1, 2Escribir f1, 2

Leer f2Leer f2Leer f2Leer f2

Escribir f1, 1Escribir f1, 1Escribir f1, 1Escribir f1, 1

Escribir f1, 2Escribir f1, 2Escribir f1, 2Escribir f1, 2

Escribir f1, 1Escribir f1, 1Escribir f1, 1Escribir f1, 1

Escribir f1, 1Escribir f1, 1Escribir f1, 1Escribir f1, 1

Modelo de gestión colectivaModelo de gestión colectivaModelo de gestión colectivaModelo de gestión colectiva

Sistemas operativos: una visión aplicada 141 © J. Carretero, F. García, P. de Miguel, F. Pérez

Contenido

• Visión del usuario del sistema de archivos• Archivos• Directorios• Servicios de archivos• Servicios de directorios• Sistemas de archivos• El servidor de archivos

• Puntos a recordar

Page 24: Gestión de archivos y directorios Sistemas operativos: una ...laurel.datsi.fi.upm.es/~ssoo/Reutilizables/DSO/download/Sistema_de... · • Abstraen los dispositivos de almacenamiento

Sistemas operativos: una visión aplicada 142 © J. Carretero, F. García, P. de Miguel, F. Pérez

Puntos a recordar (I)

• Los archivos y los directorios son los elementos centrales del sistema. • Archivo: unidad de almacenamiento lógico no volátil que agrupa unconjunto de información relacionada entre sí bajo un mismo nombre. • Todos los sistemas operativos tienen un descriptor de archivo que almacena atributos del mismo.• Todos los sistemas operativos proporcionan mecanismos de nombrado que permiten asignar un nombre a un archivo en el momento de su creación. • Desde el punto de vista del usuario, la información de un archivo puede estructurarse como una lista de caracteres, un conjunto de registros secuencial o indexado, etc. • Las dos formas de acceso más habituales son el acceso secuencial y eldirecto (o aleatorio).• La semántica de coutilización especifica qué ocurre cuando varios procesos acceden de forma simultánea al mismo archivo.• Un directorio es un objeto que relaciona de forma unívoca el nombre de usuario de un archivo y el descriptor interno del mismo usado por el sistema operativo.

Sistemas operativos: una visión aplicada 143 © J. Carretero, F. García, P. de Miguel, F. Pérez

Puntos a recordar (II)

• Hay dos posibles formas de especificar un nombre: nombre completo delarchivo, denominado nombre absoluto, o nombre de forma relativa a algún subdirectorio del árbol de directorios, denominado nombre relativo.• Previamente a la instalación del sistema operativo es necesario dividir físicamente, o lógicamente, los discos en particiones o volúmenes. • Una vez creadas las particiones, el sistema operativo debe crear las estructuras de los sistemas de archivos dentro de esas particiones. Para ello se proporcionan mandatos como format o mkfs al usuario. • El superbloque, los mapas de bloques y los mapas de descriptores constituyen la metainformación de un sistema de archivos. Si el superbloquese estropea, todo el sistema de archivos queda inaccesible. • Existen distintos tipos de estructuras de sistemas de archivos: tradicional, FFS, LFS, con bandas, etc. Cada una de ellas es más apropiada para determinados propósitos. El FFS es muy usado en la actualidad.• Los servidores de archivos tienen una estructura interna que, en general, permite acceder a los distintos dispositivos del sistema mediante archivos de distintos tipos, escondiendo estos detalles a los usuarios.

Sistemas operativos: una visión aplicada 144 © J. Carretero, F. García, P. de Miguel, F. Pérez

Puntos a recordar (III)

• El sistema de archivos virtuales proporciona una interfaz de llamadas de entrada/salida genéricas válidas para todos los tipos de sistemas de archivos instaladosen el sistema operativo. • Los mecanismos de asignación hacen corresponder la imagen lógica del archivo con la imagen física que existe en el almacenamiento secundario. Hay dos políticas de asignación básicas: bloques contiguos y bloques discontiguos. • Dos mecanismos populares para gestionar el espacio libre son los mapas de bits y la lista de bloques libres. • Para optimizar el rendimiento del sistema de entrada/salida, el servidor de archivos incorpora mecanismos de incremento de prestaciones tales como discos RAM, caches de nombres, caches de bloques y compresión de datos. • La destrucción de un sistema de archivos es, a menudo, mucho peor que la destrucción de un computador. Es importante salvaguardar los datos.• Un sistema de archivos puede quedar en estado incoherente por mal uso, caídas de tensión, apagados indebidos del sistema operativo, etc. · Actualmente, algunos servidores de archivos incorporan servicios avanzados tales como actualizaciones atómicas, transacciones o replicación.