Publicado el 8 de Mayo del 2019
844 visualizaciones desde el 8 de Mayo del 2019
499,4 KB
27 paginas
Creado hace 16a (30/09/2008)
6
Sistemas de Archivos
• Conceptos generales
• Archivos
• Directorios
• Semánticas de consistencia
SOI
1
Persistencia de datos
Persistencia de datos
Los sistemas de archivos implementan el
almacenamiento persistente - los datos
creados por un programa persisten a la
finalización del mismo.
Los sistemas de archivos suministran una
versión mejorada de los dispositivos del
almacenamiento (discos, cintas, CD-ROM …)
Existen sistemas de computación especiales
que no tienen, o no necesitan, sistema de
archivos. P. ej. un SO de un satélite, o en un
microondas.
SOI
2
Abstracciones
Abstracciones
El SO suele implementar cuatro
abstracciones básicas relativas al
almacenamiento permanente:
Archivo
Directorio
Descriptor de archivo
Sistema de archivos
En este tema, vamos a definir cada una de
ellas, y como se implementan de forma
genérica.
SOI
3
Concepto de archivo
Concepto de archivo
Un archivo es una colección de
información relacionada con nombre que
se guarda en almacenamiento secundario.
Podemos verlos como un espacio de
direcciones lógicas contiguas.
Un archivo puede:
Tener cierta estructura interna, p.ej,
registros, campos, etc.
No tener estructura. En cuyo caso, si es
necesaria, se simula por el SO o la
aplicación.
SOI
4
Funciones de la
Funciones de la
gestión de archivos
gestión de archivos
Gestión de disco - cómo organizar bloques
de disco en archivos.
Designación (naming) - nombres de
archivos dados por el usuario.
Protección - mantener segura la
información.
Fiabilidad/durabilidad - cuando cae el
sistema, se mantiene información en disco.
Control de concurrencia o bloqueo de
archivos- accesos concurrentes al mismo
archivo.
5
SOI
Servicios de archivos
Servicios de archivos
Podemos agrupar las funciones anteriores:
Servicio de almacenamiento permanente
- la abstracción archivo actúa como un
contenedor de datos. Permite al usuario
crear, borrar, …, archivos y controlar la
compartición y el acceso.
Servicio de directorio (gestión de datos) -
la abstracción sistema de archivos
permite organizar, manipular, y acceder
a diferentes archivos. Suministra un
sistema de designación lógico.
SOI
6
Solicitud de servicio
Solicitud de servicio
Nombre
Pasos:
Pasos:
1º1º
2º2º
Identificador
de archivo
3º3º
Información
solicitada
Cerrar
5º5º
4º4º
Servicio de
directorio
Servicio de
almacenamiento
Manejador de disco
Distribución
Disco
Cliente
SO
SOI
7
Pasos de la solicitud
Pasos de la solicitud
Solicitud de apertura dado su nombre. El SO
realiza un control de acceso (el cliente esta
autorizado a usarlo), y la traducción de
nombre de usuario al nombre en el SO.
El SO devuelve un identificador de archivo,
descriptor, para manipulaciones posteriores.
El usuario lo manipula con las operaciones
read, write, lseek, close, etc., pasando como
argumento el descriptor de archivo.
El sistema suministra la información deseada
5.Cerramos el archivos al terminar.
8
SOI
Descriptor de archivo
Descriptor de archivo
Podemos verlo como un puntero
“protegido” que nos da acceso a una
sesión de trabajo sobre un archivo.
Podemos abrir un mismo archivo de varias
formas (lectura, escritura,
lectura/escritura), cada sesión se aísla
permitiendo el acceso a ella sólo a través
del descriptor (handle en la terminología
Microsoft).
SOI
9
Atributos de archivo
Atributos de archivo
Metadatos - información que mantiene el SO
para describir el archivo. Suelen contener:
Nombre - nombre de usuario
Tipo - caracteriza el contenido del archivo
Ubicación – su localización en el dispositivo
Tamaño - tamaño actual (bytes, bloques, ...)
Protección - información de control de
acceso: quién y qué puede hacer con él
Tiempos de creación, modificación, último
acceso – por seguridad y vigilancia de uso.
SOI
10
Atributos: ejemplos
Atributos: ejemplos
SOI
11
Archivos: operaciones
Archivos: operaciones
y métodos de acceso
y métodos de acceso
Operaciones
create
write
read
lseek
delete
truncate
open
close
. . .
Métodos de acceso
Secuencial
Aleatorio o
directo
Indexado
Archivos
proyectados en
memoria
SOI
12
Los directorios
Los directorios
Un directorio es un objeto que relaciona
nombres de usuario de archivos con el
nombre interno del archivo en el SO.
Pueden implementarse como:
Archivos especiales
archivos normales.
Tanto la estructura directorio como los
archivos residen en disco.
SOI
13
Organización del
Organización del
directorio
directorio
La organización de directorios permite obtener
Eficiencia - localización rápida de un archivo
Designación - conveniente para usuarios
Dos usuarios pueden tener el mismo
nombre para dos archivos diferentes
El mismo archivo puede tener varios
nombres
Agrupación - agrupar lógicamente archivos
por propiedades, p. ej. programas C, juegos,
etc.
SOI
14
Directorio de dispositivo
Directorio de dispositivo
Un disco se suele estructurar en
particiones o volúmenes, que podemos
ver como dispositivos virtuales
Los metadatos de todos los archivos de
la partición se almacena en el directorio
de dispositivo o tabla de volumen.
P. ej. en Unix esta información se
almacena en el superbloque; en
Windows NT, se almacena en el MFT
(Master File Table).
SOI
15
Operaciones sobre
Operaciones sobre
directorios
directorios
Los podemos ver como un tipo de dato
abstracto con las operaciones:
Directorio
Búsqueda de un archivo
Creación de un archivo
Borrado de un archivo
Lista un directorio
Renombrado de archivos
Atravesar el sistema de archivos, ....
Crear
Borrar
…
archivo1 …
archivo2 …
SOI
16
Estructuras de directorios
Estructuras de directorios
Estructura de un sólo nivel - un directorio
para todos los usuarios. P. ej. CP/M.
Problemas de designación y agrupación
Estructura de dos niveles - un directorio
separado para cada usuario
Búsqueda eficiente, sin capacidad de
agrupar
Búsqueda eficiente, capacidad de
agrupación
El concepto de directorio actual permite
utilizar nombres relativos.
Estructura de árbol –
SOI
17
Estructura grafo acíclico
Estructura grafo acíclico
Permite la existencia
de subdirectorios y/o
archivos
compartidos, es
decir, dos o más
nombres para un
mismo objeto.
Más flexible, pero
más compleja.
La compartición se
suele implementar a
través de enlaces.
SOI
Dir1
Dir2
Arch1
Dir3
Arch2
Arch3
Arch4
18
Estructura de grafo general
Estructura de grafo general
Más general pero tiene
problemas:
Podemos generar
ciclos infinitos en el
recorrido del
mismo.
Debemos emplear
un recolector de
basura para ver
cuando se puede
borrar un archivo.
SOI
Dir1
Dir2
Arch1
Dir3
Arch2
Arch3
Arch4
19
Enlaces duros
Enlaces duros
Un enlace duro (hard link) es un puntero
(nombre) hacia un archivo.
Limitados a un único sistema de archivos
- el puntero es único en el mismo sistema
de archivos.
En Unix:
Directorio 2
Unnombre 25
Directorio 1
Otronombre 25
SOI
Inodo
25
archivo
20
Enlace duro: ejemplo
Enlace duro: ejemplo
SOI
21
Enlaces simbólicos
Enlaces simbólicos
Es un archivo especial cuyo contenido es el
nombre absoluto del archivo al que apunta.
Podemos atravesar
diferentes sistemas
de archivos
Problema: si borramos
el puntero se queda
“colgado”.
25
datos
archivo
Directorio 1
Directorio 2
Otronombre 25
30
Unnombre 30
Directorio2/Otronombre
SOI
22
Enlaces simbólicos:
Enlaces simbólicos:
ejemplo
ejemplo
SOI
23
Borrado de archivos
Borrado de archivos
compartidos
compartidos
¿ Cuando podemos desasignar el espacio
asignado a estos archivos cuando se borran ?
Para enlaces simbólicos, simplemente
punteros colgados
borrar el archivo
(Cualquier acceso posterior se trata como
acceso a nombre ilegal)
Asociar un contador de referencias. La
creación/borrado, de un enlace
incrementa/decrementa, el contador. El
archivo se borra cuando contador=0. P.
ej. contador enlaces duros en UNIX.
SOI
24
Estructura general de
Estructura general de
directorios
directorios
La principal ventaja de un grafo acíclico
es la relativa simplicidad de los
algoritmos para atravesarlo y ver cuando
no hay más referencias a un archivo. Por
ello debemos evitar los ciclos.
Para garantizar la no existencia de ciclos:
Permitir sólo enlaces a archivos, no a
directorios
Al añadir un enlace, activar un
algoritmo de detección de ciclos para
determinar si todo es correcto.
SOI
25
Protección
Protección
Tipos de accesos:
El propietario / creador de un archivo
debe ser capaz de controlar:
qué puede hacerse con él
quién puede hacerlo
lectura
escritura
ejecución
añadir
borrar
listar …
La veremos en Sistemas Operativos II.
SOI
26
Semánticas de
Semánticas de
consistencia
consistencia
Si un usuario modifica un archivo, ¿cuando
es visible esta modificación por otro usuario?
Semántica UNIX: atomicidad a nivel de
operaciones write/read.
Semántica de sesión: atomicidad a nivel de
sesión (accesos realizados entre las
operaciones open y close). P. ej. AFS.
Semántica de archivos compartidos
inmutables: un archivo compartido, no
puede ser modificado. Utilizada en
sistemas distribuidos.
SOI
27
Comentarios de: Sistemas de archivos (0)
No hay comentarios