Sie sind auf Seite 1von 24

Gestin de archivos y directorios

Sistemas operativos: una visin aplicada

Captulo 8
Gestin de Archivos y Directorios

Objetivos:
Entender los conceptos de fichero y directorio
Mostrar los mtodos de acceso y los mecanismos de
proteccin
Estudiar las semnticas de comparticin
Comprender la estructura del sistema de ficheros
Presentar las llamadas al sistema y ejemplos de programacin en
LINUX y Windows
Presentar distintas tcnicas de gestin de archivos y directorios
a nivel de diseo.

Sistemas operativos: una visin aplicada

Contenido

J. Carretero, F. Garca, P. de Miguel, F. Prez

Caractersticas para el usuario

Visin 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 visin aplicada

J. Carretero, F. Garca, P. de Miguel, F. Prez

Almacenamiento permanente de informacin. No desaparecen


aunque se apague el computador.
Conjunto de informacin estructurada de forma lgica segn
criterios de aplicacin.
Nombres lgicos y estructurados.
No estn ligados al ciclo de vida de una aplicacin particular.
Abstraen los dispositivos de almacenamiento fsico.
Se acceden a travs de llamadas al sistema operativo o de
bibliotecas de utilidades.

Sistemas operativos: una visin aplicada

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistema de archivos
El acceso a los dispositivos es:
Incmodo
Detalles fsicos de los dispositivos
Dependiente de las direcciones fsicas

No seguro
Si el usuario accede a nivel fsico no tiene restricciones

El sistema de archivos es la capa de software entre dispositivos y


usuarios.
Objetivos:
Suministrar una visin lgica de los dispositivos
Ofrecer primitivas de acceso cmodas e independientes de
los detalles fsicos
Mecanismos de proteccin
Sistemas operativos: una visin aplicada

J. Carretero, F. Garca, P. de Miguel, F. Prez

Concepto de archivo
Un espacio lgico de direcciones contiguas usado para
almacenar datos
Tipos de archivos:
Datos:
numricos
carcter
binarios

Programas:
cdigo fuente
archivos objetos (imagen de carga)

Contenido

Visin 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 visin aplicada

J. Carretero, F. Garca, P. de Miguel, F. Prez

Atributos del archivo


Nombre: la nica informacin en formato legible por una persona.
Identificacin nica del archivo y del usuario: descriptor interno del
archivo, dueo y grupo del archivo
Tipo de archivo: necesario en sistemas que proporciona distintos formatos de
archivos.
Tamao del archivo: nmero de bytes en el archivo, mximo tamao
posible, etc.
Proteccin: control de accesos y de las operaciones sobre archivos
Informacin temporal: de creacin, de acceso, de modificacin, etc.
Informacin de control: archivo oculto, de sistema, normal o directorio, etc.

Documentos

Sistemas operativos: una visin aplicada

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

10

J. Carretero, F. Garca, P. de Miguel, F. Prez

Representacin del archivo

Ejemplos de representacin

La informacin 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

Nombre
Atrib.
Size KB
Agrup. FAT

cabecera
Atributos
Tamao
Nombre
Seguridad
Datos
Vclusters

Sistemas operativos: una visin aplicada

11

J. Carretero, F. Garca, P. de Miguel, F. Prez

Nombres de Fichero y Extensiones


Extensin

Tiras de caracteres
Longitud: fija o variable
Sensibles a tipografa
Extensin: obligatoria o no
Los usuarios usan nombres
lgicos de este estilo
Los directorios relacionan
nombres lgicos y
descriptores internos de
ficheros
El sistema de ficheros
trabaja con descriptores
internos
Sistemas operativos: una visin aplicada

exe, com,
bin, none
c, s, asm, p
pas, f77

13

Significado

Programa ejecutable

Z, z, zip

Cdigo fuente en distintos


lenguajes
Archivos comprimidos

gif, jpg

Archivos de imgenes

o, obj

Archivos objeto, compilados


pero sin montar

ps, dvi, pdf

Archivos ASCII o binarios en


formato imprimible o visible

txt, doc

Archivos de texto

tex, roff

Archivos de entrada para


formateadores de texto

html

Archivos de hipertexto para


World Wide Web
J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

12

J. Carretero, F. Garca, P. de Miguel, F. Prez

Estructura del fichero


Ninguna - secuencia de palabras o bytes (UNIX)
Estructura sencilla de registros
Lneas
Longitud fija
Longitud variable
Estructuras complejas
Documentos con formato (HTML, postscript)
Fichero de carga reubicable (mdulo de carga)
Se puede simular estructuras de registro y complejas con una
estructura plana y secuencias de control
Quin decide la estructura?
Interna: El sistema operativo
Externa: Las aplicaciones
Sistemas operativos: una visin aplicada

14

J. Carretero, F. Garca, P. de Miguel, F. Prez

Distintas estructuras lgicas

Archivos: visin lgica


Estructura de un archivo:
Archivos de estructura compleja
Archivos indexados
Archivos directos o de dispersin

Ejemplo de archivo indexado:


Registro

rbol de registros
Clave

Cabecera
Mdulo
objeto
Cabecera

Registros de
longitud
variable

Mdulo
objeto
Archivo de
biblioteca

Byte o
registro de
longitud fija
Sistemas operativos: una visin aplicada

15

Fichero
indice

J. Carretero, F. Garca, P. de Miguel, F. Prez

Estructura de archivo ejecutable LINUX

Fichero principal

Los archivos estructurados en registros y los archivos con estructuras


complejas se pueden construir como una capa sobre la visin de tira de
bytes.

Sistemas operativos: una visin aplicada

16

J. Carretero, F. Garca, P. de Miguel, F. Prez

Archivos: visin lgica y fsica.

Nmero mgico
Nmero de secciones

Cabecera
primaria

Tamao segmento texto

Usuario: Visin lgica.

Tamao segmento datos

Cabecera de
seccin 1

Tipo de seccin,
tamao de la seccin
direccin virtual

Cabecera de
seccin n

Tipo de seccin,
tamao de la seccin
direccin virtual

Seccin 1

Cdigo

Seccin 2

Datos con
valor inicial

Seccin n

Datos con
valor inicial

Tamao datos sin valor


inicial

Posicin

Tamao tabla de smbolos


Valor inicial de registros
Direccin inicial

...
Opciones

Sistema operativo: visin fsica ligada a dispositivos. Conjunto


de bloques.

Informacin
de carga
Tabla de
smbolos

Otra
informacin

Sistemas operativos: una visin aplicada

17

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

18

J. Carretero, F. Garca, P. de Miguel, F. Prez

Archivos: visin fsica

Descripcin fsica en UNIX (nodo-i)


Tipo de Fichero y Proteccin
Nmero de Nombres
Propietario
Grupo del Propietario
Tamao
Instante de creacin
Instante del ltimo acceso
Instante de la ltima modificacin
Puntero a bloque de datos 0
Puntero a bloque de datos 1

Bloque
Unidad de transferencia
2n sectores
Parmetro fijo por sistema de archivos
Agrupacin
Unidad de asignacin
2p bloques
Aumenta la secuencialidad del archivo
Descripcin de la estructura fsica:
Bloques utilizados

Puntero a bloque de datos 9


Puntero indirecto simple
Puntero indirecto doble
Puntero indirecto triple

Tamao mximo del archivo: 10Sb+(Sb/4)Sb +(Sb/4)2Sb +(Sb/4)3Sb


Sb el tamao del bloque y direcciones de bloques de 4 bytes.

Punteros
a Bloques
de Datos
Punteros
a Bloques
de Datos

Punteros
a Bloques
de Datos

nodo-i

Punteros
a Bloques
de Datos

Punteros
a Bloques
de Datos

Punteros
a Bloques
de Datos

Sistemas operativos: una visin aplicada

19

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

Descripcin fsica en MS-DOS (FAT)

20

J. Carretero, F. Garca, P. de Miguel, F. Prez

Mtodos de Acceso

FAT
Directorio Raz
Nombre
pep_dir

Atrib.
dir

fiche1.txt

KB Agrup.
5
27
12

27 <eof>

45
45

Directorio pep_dir
Nombre
carta1.wp
prue.zip

Atrib.
R

KB Agrup.
24

74

16

91

58

51 <eof>
58 <eof>
74 75
75 76
76 <eof>
91 51

FAT de 12 bits 4K agrupaciones


FAT de 16 bits 64K agrupaciones
Sistemas operativos: una visin aplicada

21

J. Carretero, F. Garca, P. de Miguel, F. Prez

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 -> posicin = posicin + datos ledos
Dispositivos de cinta
ISAM: mtodo de acceso secuencial indexado
Acceso Directo:
read n, write n, goto n, rewrite n, read next, write next,
n = nmero de bloque relativo al origen
Dispositivos: discos magnticos

Sistemas operativos: una visin aplicada

22

J. Carretero, F. Garca, P. de Miguel, F. Prez

Archivos: semntica de coutilizacin


Cualquier forma de acceso tiene problemas cuando varios
usuarios trabajan con el archivo simultneamente.
Semntica de coutilizacin: especifica el efecto de varios
procesos accediendo de forma simultnea al mismo archivo y
cuando se hacen efectivas las modificaciones.
Tipos de semnticas:
Semntica UNIX (POSIX)
Las escrituras son inmediatamente visibles para todos los
procesos con el archivo abierto.
Los procesos pueden compartir archivos. Si existe relacin de
parentesco pueden compartir el puntero. La coutilizacin afecta
tambin a los metadatos.
Sistemas operativos: una visin aplicada

23

J. Carretero, F. Garca, P. de Miguel, F. Prez

Contenido

25

Semntica de sesin
Las escrituras que hace un proceso no son inmediatamente
visibles para los dems 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 imgenes.

Semntica de versiones
Las actualizaciones se hacen sobre copias con n versin.
Slo son visibles cuando se consolidan versiones.
Sincronizacin explcita si se requiere actualizacin inmediata

Semntica de archivos inmutables


Una vez creado el archivo slo puede ser compartido para
lectura y no cambia nunca
Sistemas operativos: una visin aplicada

24

J. Carretero, F. Garca, P. de Miguel, F. Prez

Concepto de directorio

Visin 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 visin aplicada

Archivos: semntica de coutilizacin (II)

J. Carretero, F. Garca, P. de Miguel, F. Prez

Objeto que relaciona de forma unvoca un nombre de usuario de


archivo con su descriptor interno
Organizan y proporcionan informacin sobre la estructuracin
de los sistemas de archivos
Una coleccin de nodos que contienen informacin acerca de los
archivos

Sistemas operativos: una visin aplicada

26

J. Carretero, F. Garca, P. de Miguel, F. Prez

Directorios: visin lgica

Estructura de los directorios

Esquema jerrquico.
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 organizacin jerrquica de un directorio
Simplifica el nombrado de archivos (nombres nicos)
Proporciona una gestin de la distribucin => agrupar
archivos de forma lgica (mismo usuario, misma aplicacin)

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
Informacin en un directorio: nombre, tipo, direccin, longitud
mxima y actual, tiempos de acceso y modificacin, dueo, etc.
Hay estructuras de directorio muy distintas. La informacin
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 visin aplicada

27

J. Carretero, F. Garca, P. de Miguel, F. Prez

Ejemplo de entradas de directorio


Nombre

Tipo de
archivo

Nmeros
de bloque

archivo
extendido
Directorio de CP/M

Nombre

29

J. Carretero, F. Garca, P. de Miguel, F. Prez

Organizacin del directorio

Contador
de bloques
...

Cdigo de
usuario

Sistemas operativos: una visin aplicada

Nmero
del primer
Tipo de
archivo Reservado Hora bloque

Atributos

Fecha

Tamao

Directorio de MS-DOS
Nodo-i: Puntero al
descriptor del archivo Nombre

Eficiencia: localizar un archivo rpidamente


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
Agrupacin: agrupacin lgica de los archivos segn sus
propiedades (por ejemplo: programas Pascal, juegos, etc.)
Estructurado: operaciones claramente definidas y ocultacin
Sencillez: la entrada de directorio debe ser lo ms sencilla
posible.

Directorio de UNIX

Sistemas operativos: una visin aplicada

30

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

31

J. Carretero, F. Garca, P. de Miguel, F. Prez

Directorio de un nivel

Directorio de dos niveles

Un nico directorio para todos los usuarios


Problemas de nombrado y agrupacin

Un directorio por cada usuario


Camino de acceso automtico o manual
El mismo nombre de archivo para varios usuarios
Bsqueda eficiente, pero problemas de agrupacin
...

marivi miguel

mapa.gif

carta

...

lista.txt

...

datos lista.c

Archivos

...

Directorio
del usuario

...

claves

...

archivos

J. Carretero, F. Garca, P. de Miguel, F. Prez

Directorio con estructura de rbol

marivi

miguel

home

...

...

Directorio ...
raz

usr

bin

elvira

include

stdio.h
datos

lista.c

test

claves

agenda

correo

agenda

mail

buzon

claves

sh

rm

vi

mio.o

Sistemas operativos: una visin aplicada

34

agenda

...

...

lista.c

Sistemas operativos: una visin aplicada

Directorio
del usuario
archivos

33

...

Directorio
del usuario
archivos

...

claves
...

mio.o
...

J. Carretero, F. Garca, P. de Miguel, F. Prez

Directorio con estructura de rbol

Bsqueda eficiente y agrupacin


Nombres relativos y absolutos -> directorio de trabajo
tmp

test

...

...

32

elvira

...

...

mail

Sistemas operativos: una visin aplicada

...

programa.o

...

Directorio

Directorio
maestro

J. Carretero, F. Garca, P. de Miguel, F. Prez

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
Sistemas operativos: una visin aplicada

35

J. Carretero, F. Garca, P. de Miguel, F. Prez

Directorio de grafo acclico I

Directorio de grafo acclico II

Tienen archivos y subdirectorios compartidos


Este concepto no existe en Windows
tmp

marivi miguel

...

home

...

Directorio ...
raz

usr

bin

elvira

include

stdio.h
datos

lista.c

test

claves

agenda

agenda

buzon

claves

sh
correo

mail

rm

vi

link: Un archivo con varios nombres -> control de enlaces


un nico archivo con contador enlaces en descriptor (e. Fsicos)
archivos nuevos con el nombre destino dentro (e. simblicos)
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 dems
Problema grave: existencia de bucles en el rbol. Soluciones:
Permitir slo enlaces a archivos, no subdirectorios
Algoritmo de bsqueda de bucle cuando se hace un enlace
Limitacin de implementacin en UNIX: slo enlaces fsicos dentro del
mismo sistema de archivos.

claves

Sistemas operativos: una visin aplicada

36

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

Nombres jerrquicos
Nombre absoluto: especificacin del nombre respecto a la raz (/
en LINUX, \ en Windows).
Nombre relativo: especificacin del nombre respecto a un
directorio distinto del raz
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 visin aplicada

38

J. Carretero, F. Garca, P. de Miguel, F. Prez

37

J. Carretero, F. Garca, P. de Miguel, F. Prez

Interpretacin de nombres en LINUX. I

.
..

.
..
.
..
claves
textos

Sistemas operativos: una visin aplicada

39

758
3265

J. Carretero, F. Garca, P. de Miguel, F. Prez

Interpretacin de nombres en LINUX. II

Jerarqua de directorios

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
Cundo parar?
Se ha encontrado el nodo-i del archivo
No se ha encontrado y no hay ms subdirectorios
Estamos en un directorio y no contiene la siguiente
componente del nombre (por ejemplo, miguel).
Sistemas operativos: una visin aplicada

40

rbol nico de directorios?


Por dispositivo lgico 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 jerarqua: mount y
umount.
mount /dev/hda /users
umount /users

Ventajas: imagen nica del sistema y ocultan el tipo de


dispositivo
Desventajas: complican la traduccin de nombres, problemas
para enlaces fsicos entre archivos

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

Montado de Sistemas de archivos o particiones


Volumen raiz

(/dev/hd1)
Volumen montado

/
mount /dev/hd1 /usr

/lib

J. Carretero, F. Garca, P. de Miguel, F. Prez

Contenido

Volumen sin montar

(/dev/hd0)

41

Visin del usuario del sistema de archivos


Archivos
Directorios
Servicios de archivos
Servicios de directorios

Sistemas de archivos
/bin

/usr
/d1

/d2

/d3/f1

/d3

/lib

/bin

/usr

El servidor de archivos
Puntos a recordar

/d3/f2

/usr/d3
/usr/d1 /usr/d2

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

Sistemas operativos: una visin aplicada

42

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

89

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas de archivos y particiones


El sistema de archivos permite organizar la informacin dentro de los
dispositivos de almacenamiento secundario en un formato inteligible para el
sistema operativo.
Previamente a la instalacin del sistema de archivos es necesario dividir
fsicamente, o lgicamente, los discos en particiones o volmenes [Pinkert
1989].
Una particin es una porcin 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 lgica 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 visin aplicada

90

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas de archivos y particiones (II)


Sistema de archivos: conjunto coherente de metainformacin y datos.
Ejemplos de Sistemas de archivos:

Tipos de particiones

Particin 4

Particin 5

Particin 2
Particin 3

Sistemas operativos: una visin aplicada

91

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas de archivos y particiones (III)


Descripcin de sistemas de archivos:
El sector de arranque en MS-DOS
El superbloque en UNIX

MS-DOS
Boot

Dos copias
de la FAT

Directorio
Raz

Datos y
Directorios

UNIX
Boot

Super
Bloque

Mapas
de bits

Datos y
Directorios

nodos-i

Relacin sistema de archivos-dispositivo:


Tpico: 1 dispositivo N sistemas de archivos (particiones)
Grandes archivos: N dispositivos 1 sistema de archivos
Tpicamente cada dispositivo se divide en una o ms particiones
(en cada particin sistema de archivos)
La tabla de particiones indica el principio, el tamao y el tipo de
cada particin.

Sistemas operativos: una visin aplicada

92

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

93

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

94

J. Carretero, F. Garca, P. de Miguel, F. Prez

Estructuras de sistemas de archivos

Sistemas operativos: una visin aplicada

96

J. Carretero, F. Garca, P. de Miguel, F. Prez

100 %

800

75

500
50
100

uso del
disco

ancho de
banda

50

25
0

0
256

512

1K

2K

4K

8K

16K

Uso del Espacio de Disco

Bloque: agrupacin lgica de sectores de disco y es la unidad


de transferencia mnima 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 tamao de
bloque por defecto.
Los usuarios pueden definir el tamao de bloque a usar
dentro de un sistema de archivos mediante el mandato mkfs.
Agrupacin: conjunto de bloques que se gestionan como una
unidad lgica de gestin del almacenamiento.
El problema que introducen las agrupaciones, y los bloques
grandes, es la existencia de fragmentacin interna.

Tamao bloque, ancho banda y uso disco

Ancho de Banda (Kbytes/sec)

Bloques y agrupaciones

32K

Tamao de Bloque

Sistemas operativos: una visin aplicada

95

J. Carretero, F. Garca, P. de Miguel, F. Prez

Superbloque de sistemas de archivos en LINUX

Sistemas operativos: una visin aplicada

97

J. Carretero, F. Garca, P. de Miguel, F. Prez

Otros sistemas de archivos

Estructura del FFS

Fast File System


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

Sistemas operativos: una visin aplicada

98

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

Estructura de un sistema de archivos con bandas

Particin Lgica
Disco 0 Disco 1 Disco 2 Disco 3

99

J. Carretero, F. Garca, P. de Miguel, F. Prez

Contenido

Visin del usuario del sistema de archivos


Archivos
Directorios
Servicios de archivos
Servicios de directorios
Sistemas de archivos

El servidor de archivos
Particin
del
sistema

Conjunto
de
bandas

Sistemas operativos: una visin aplicada

Puntos a recordar

bloque 0 bloque 1 bloque 2 bloque 3


bloque 4

100

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

101

J. Carretero, F. Garca, P. de Miguel, F. Prez

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 fcilmente.
Dicho servidor de archivos tiene dos tipos de problemas de
diseo muy distintos entre s:
Definir la visin 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 visin del usuario con el sistema fsico
de almacenamiento secundario.
Sistemas operativos: una visin aplicada

102

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistema de archivos virtuales

Estructura del servidor de archivos


Proceso de
Usuario 1

Proceso de
Usuario 2

Proceso de
Usuario 3

Proceso de
Usuario n

...

Nivel de
usuario
Nivel de
sistema

Sistema de Archivos Virtual


Mdulo de Organizacin de Archivos
ext2

msdos

ffs

Servidor de Bloques

...

proc

Cache de
Bloques

Manejadores de Dispositivo

...

Sistemas operativos: una visin aplicada

103

J. Carretero, F. Garca, P. de Miguel, F. Prez

Estructura de un nodo virtual de UNIX


nodo-v

S.A. Virtual: interfaz de llamadas de entrada/salida del sistema y de pasar al


mdulo de organizacin de archivos la informacin necesaria para ejecutar
los servicios pedidos por los usuarios.
Servicios:
manejo de directorios,
gestin de nombres,
algunos servicios de seguridad,
integracin dentro del servidor de archivos de distintos tipos de sistemas
de archivos
servicios genricos de archivos y directorios.
Nodo virtual: estructura de informacin que incluye las caractersticas
mnimas comunes a todos los sistemas de archivos subyacentes y que enlaza
con un descriptor de archivo de cada tipo particular.

Sistemas operativos: una visin aplicada

104

J. Carretero, F. Garca, P. de Miguel, F. Prez

Informacin
del archivo
virtual
Direcciones de
las operaciones
virtuales
Direccin del
nodo-i
especfico

nodo-i

Direcciones de
las operaciones
especficas de SA

Tabla de
funciones
del SA
Sistemas operativos: una visin aplicada

105

J. Carretero, F. Garca, P. de Miguel, F. Prez

Mdulo de organizacin de archivos

Servidor de bloques

Proporciona el modelo del archivo del sistema operativo y los servicios de


archivos.
Relaciona la imagen lgica del archivo con su imagen fsica, proporcionando
algoritmos para trasladar direcciones lgicas de bloques a sus
correspondientes direcciones fsicas.
Gestiona el espacio de los sistemas de archivos, la asignacin de bloques a
archivos y el manejo de los descriptores de archivo (nodos-i de UNIX o
registros de Windows NT).
Un mdulo de este estilo por cada tipo de archivo soportado (UNIX, AFS,
Windows NT, MS-DOS, EFS, MINIX, etc.).
Dentro de este nivel tambin se proporcionan servicios para pseudo-archivos,
tales como los del sistema de archivos proc.
Las llamadas de gestin de archivos y de directorios particulares de cada
sistema de archivos se resuelven en el mdulo de organizacin de archivos.
Para ello, se usa la informacin existente en el nodo-i del archivo afectado
por las operaciones.

Se encarga de emitir los mandatos genricos 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 especfico y se pasan al nivel inferior
del sistema de archivos.
Esta capa oculta los distintos tipos de dispositivos, usando
nombres lgicos para los mismos. Por ejemplo, /dev/hda3
ser un dispositivo de tipo hard disk (hd), cuyo nombre
principal es a y en el cual se trabaja sobre su particin 3.
Los mecanismos de optimizacin de la E/S, como la cache de
bloques, se incluye en este nivel.

Sistemas operativos: una visin aplicada

106

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

Descomposicin en operaciones de
bloques
Archivos con estructura de bytes
Escritura leer

107

Descomposicin en operaciones de
bloques (II)
Archivos de registros de tamao fijo

Fichero (tira de bytes)

R1

R2

R3

Bloque 1
Bloques

R1

R2

Bloque 1
Sistemas operativos: una visin aplicada

108

J. Carretero, F. Garca, P. de Miguel, F. Prez

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

R4

R5

Bloque 2

R3

R4

R5

Bloque 2
109

R6

Bloque 3

R6
Bloque 3
J. Carretero, F. Garca, P. de Miguel, F. Prez

Manejadores de dispositivos

Flujo de datos en el S. de A.
read (fd, buffer, tamao)

Un manejador por cada dispositivo, o clase de dispositivo, del sistema.


Su funcin principal es recibir ordenes de E/S de alto nivel, tal como
move_to_block 234, y traducirlas al formato que entiende el controlador
del dispositivo, que es dependiente de su hardware.
Habitualmente, cada dispositivo tiene una cola de peticiones pendientes, de
forma que un manejador puede atender simultneamente a varios dispositivos
del 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 poltica de insercin 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 poltica CSCAN.

Sistemas operativos: una visin aplicada

110

J. Carretero, F. Garca, P. de Miguel, F. Prez

Usuario

buffer
tamao

archivo lgico
(VFS)
archivo lgico
(FFS)

Bloques lgicos
(Servidor
de bloques)

1340

1756

840

1340
Manejador de
disco y
dispositivo

Sistemas operativos: una visin aplicada

1756

840

8322

bloques del
archivo

bloques del
dispositivo

bloques del
disco

8322

111

J. Carretero, F. Garca, P. de Miguel, F. Prez

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

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

Tabla de nodos-v: almacena en memoria la informacin del nodo-v existente


en el disco y otra que se usa dinmicamente y que slo tiene sentido cuando
el archivo est abierto.
Problema: si slo hay un campo de apuntador, cada operacin de un
proceso afectara a todos los dems.
Posible solucin: incluir la informacin relativa al archivo dentro del
bloque de descripcin del proceso (BCP).
Tabla de archivos abiertos (tdaa) por un proceso, dentro del BCP, con sus
descriptores temporales y el valor del apuntador de posicin del archivo para
ese proceso.
El tamao de esta tabla define el mximo nmero de archivos que cada
proceso puede tener abierto de forma simultnea.
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 posicin
libre de la tabla.
En los sistemas UNIX cada proceso tiene tres descriptores de archivos
abiertos por defecto: entrada estndar, fd = 0, salida estndar, fd =
1, error estndar, fd = 2.

Tabla intermedia nodo-i-posicin: entre la tabla de archivos


del 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 posicin correspondiente al proceso, o
procesos, que usan el archivo durante esa sesin.
El modo de apertura del archivo

Sistemas operativos: una visin aplicada

112

J. Carretero, F. Garca, P. de Miguel, F. Prez

Tabla de nodos-i: almacena en memoria la informacin del


nodo-i existente en el disco y otra que se usa dinmicamente y
que slo tiene sentido cuando el archivo est abierto.
Esta tabla limita el nmero de mximo de archivos abiertos
en el sistema de forma simultnea.
Sistemas operativos: una visin aplicada

113

J. Carretero, F. Garca, P. de Miguel, F. Prez

Tablas que usa el servidor de archivos


Tabla de archivos Tabla de archivos
abiertos. P1
abiertos. P2
fd

0
1
2
3
4

23
4563
56
3
678

fd

0
1
2
3
4

Tabla de archivos
abiertos. P3

230
563
98
3
247

fd

0
1
2
3
4

2300
53
4
465
326

Nodo-i Posicin
98
98
Tabla de
nodos-i 98

456
2348

Correspondencia bloques-archivos
Cmo asignar los bloques de disco a un archivo y cmo hacerlos
corresponder con la imagen del archivo que tiene la aplicacin?
Asignacin de bloques contiguos.
Sencillo de implementar y el rendimiento de la E/S es muy bueno.
Si no se conoce el tamao total del archivo cuando se crea, puede ser necesario
buscar un nuevo hueco de bloques consecutivos cada vez que el archivo crece.
Fragmentacin externa -> compactar el disco.

Asignacin de bloques discontiguos.


Se asigna al archivo el primer bloque que se encuentra libre.
No hay fragmentacin externa del disco ni bsqueda de huecos.
Los archivos pueden crecer mientras exista espacio en el disco.
Complica la implementacin de la imagen de archivo -> mapa de bloques
del archivo.

Tabla intermedia
de nodos-i y posiciones

Sistemas operativos: una visin aplicada

114

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

115

J. Carretero, F. Garca, P. de Miguel, F. Prez

Mecanismos enlazados

Mecanismos indexados

Listas o ndices enlazados: desde cada entrada de un bloque


existe un enlace al siguiente bloque del archivo.
Ejemplo: tabla FAT de Windows

Cada archivo tiene sus bloques de ndice que incluyen apuntadores a


los bloques de disco del archivo.

FAT

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

archivo A:

archivo B:

12

archivo C:

10

13

Sistemas operativos: una visin aplicada

116

J. Carretero, F. Garca, P. de Miguel, F. Prez

El orden lgico se consigue mediante la insercin 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 pequeos sin necesitar bloques de ndices.
Permite accesos aleatorios a archivos muy grandes con un mximo de 3
accesos a bloques de ndices.

Sistemas operativos: una visin aplicada

117

J. Carretero, F. Garca, P. de Miguel, F. Prez

Mapa de bloques en un nodo-i


nodo-i
Informacin
del archivo

Mapas de bits, o vectores de bits: un bit por recurso existente (descriptor de


archivo, bloque o agrupacin). Si el recurso est libre, el valor del bit
asociado al mismo es 1, si est ocupado es 0.

DISCO
820

Ejemplo, sea un disco en el que los bloques 2, 3, 4, 8, 9 y 10 estn ocupados y el


resto libres, y en el que los descriptores de archivo 2, 3 y 4 estn ocupados. Sus
mapas de bits de seran:
MB de bloques:
1100011100011.... M
MB de descriptores: 1100011...
Fcil de implementar y sencillo de usar. Eficiente si el dispositivo no est muy
lleno o muy fragmentado.

...

Direcciones de
los 10 primeros
bloques

342
1623
8204

1134

...

Indirecto simple
Indirecto doble

10211

Bloque
indirecto

Indirecto triple

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.

2046
20464

Este mtodo no es eficiente, excepto para dispositivos muy llenos y


fragmentados
Uso de agrupaciones.

675

Sistemas operativos: una visin aplicada

118

J. Carretero, F. Garca, P. de Miguel, F. Prez

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

Bloques libres

7,1

Sistemas operativos: una visin aplicada

11

14

16

11,1 14,1

120

Gestin de espacio libre

17
16,3

18

(A)
(B)

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

119

J. Carretero, F. Garca, P. de Miguel, F. Prez

Incremento de prestaciones
Basados en el uso de almacenamiento intermedio de datos de entrada/salida
en memoria principal. Estos mecanismos son de dos tipos:
Discos RAM, cuyos datos estn almacenados slo 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 voltil.
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.
Sistemas operativos: una visin aplicada

121

J. Carretero, F. Garca, P. de Miguel, F. Prez

Cache de bloques

Cache de bloques (II)


Estructura de datos en memoria con los bloques ms
frecuentemente utilizados

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

Proceso

Proceso

Usan una sola vez cada bloque


Usan repetidamente los bloques

Cache

Acceso a disco mucho ms lento que el acceso a memoria


Cache

Disco

Disco

Lecturas adelantadas
Limpieza de la cache (sync)
Principal problema: fiabilidad del sistema de archivos.
Sistemas operativos: una visin aplicada

122

J. Carretero, F. Garca, P. de Miguel, F. Prez

Flujo datos con cache de bloques

Sistemas operativos: una visin aplicada

123

J. Carretero, F. Garca, P. de Miguel, F. Prez

Polticas de reemplazo

read (fd, buffer, tamao)


Usuario

buffer
tamao

archivo lgico
(VFS)
archivo lgico
(FFS)

bloques del
archivo

Bloques lgicos
(Servidor
de bloques)

1340

1756

840

8322

bloques del
dispositivo

Cache de bloques
(Servidor
de bloques)

1340

1756

840

1756
Manejador de
disco y
dispositivo

Sistemas operativos: una visin aplicada

8322

bloques del
disco

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: polticas de reemplazo.
Si el bloque ha sido escrito (sucio): poltica de escritura.
Polticas de reemplazo: FIFO (First in First Out), segunda oportunidad, MRU
(Most Recently Used), LRU (Least Recently Used), etc.
La poltica de reemplazo ms frecuentemente usada es la LRU. Esta poltica
reemplaza el bloque que lleva ms tiempo sin ser usado, asumiendo que no ser
referenciado prximamente.
Los bloques ms usados tienden a estar siempre en la cache y, por tanto, no van al
disco. La utilizacin estricta de esta poltica puede crear problemas de fiabilidad
en el sistema de archivos si el computador falla.
La mayora de los servidores de archivos distinguen entre bloques especiales y
bloques de datos.

8322

124

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

125

J. Carretero, F. Garca, P. de Miguel, F. Prez

Montado de sistemas de archivos o particiones

Polticas 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): slo 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 peridica cada cierto
tiempo (30 segundos en UNIX).
Compromiso entre rendimiento y fiabilidad.
Reduce la extensin de los posibles daos por prdida 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 visin aplicada

126

J. Carretero, F. Garca, P. de Miguel, F. Prez

Oculta el nombre del dispositivo fsico o particin


Volumen raiz

Volumen sin montar

(/dev/hd0)

(/dev/hd1)
Volumen montado

mount /dev/hd1 /usr

/lib

/bin

/usr
/d1

/d2

/lib

/bin

/usr

/d3/f2

/usr/d3
/usr/d1 /usr/d2

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

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

Sistemas operativos: una visin aplicada

127

J. Carretero, F. Garca, P. de Miguel, F. Prez

Enlace fsico

Permite que dos o ms nombres hagan referencia al mismo


archivo.

usr

Dos tipos:
Enlace fsico

user

lib

datos.txt

.
..

datos.txt
prog.c

Enlace simblico
El archivo se elimina cuando se borra el enlace fsico. Si
permanece el enlace simblico provoca errores al tratar de
accederlo.
Se puede hacer con archivos y directorios.
Se puede hacer entre archivos de diferentes sistema de archivos
J. Carretero, F. Garca, P. de Miguel, F. Prez

prog.c

pepe

usr

datos.txt

prueba.txt

.
..

prueba.txt

juan

pepe
prog.c

pepe

juan
23
100
28
400

user

lib

juan

pepe

El archivo slo se elimina cuando se borran todos los enlaces


Slo se permiten enlazar archivos (no directorios) del mismo
volumen.

128

/d3

/d3/f1

Enlaces

Sistemas operativos: una visin aplicada

80
100
60

.
..

datos.txt
prog.c

prueba.txt

datos2.txt

juan
23
100
28
400

.
..

80
100

prueba.txt 60
datos2.txt 28

nodo-i 28
enlaces = 2
descripcin
del fichero

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

Sistemas operativos: una visin aplicada

129

J. Carretero, F. Garca, P. de Miguel, F. Prez

Enlace simblico

Ejemplo de montado
/

usr

user

lib

pepe
datos.txt

prog.c

pepe

.
..

datos.txt
prog.c

usr

juan

pepe

prueba.txt
juan

23
100
28
400

.
..

80
100
prueba.txt 60

user

lib

datos.txt

prog.c

pepe

.
..

nodo-i 28
enlaces = 1

datos.txt
prog.c

descripcin
del fichero

juan
prueba.txt
juan

23
100
28
400

.
..

80
100
prueba.txt 60
datos2.txt 130

datos2.txt
nodo-i 130
enlaces = 1
/user/pepe/
datos.txt

Punto de
montado

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

Sistemas operativos: una visin aplicada

130

punto de
montado

J. Carretero, F. Garca, P. de Miguel, F. Prez

Fiabilidad del sistema de archivos

Sistemas operativos: una visin aplicada

131

J. Carretero, F. Garca, P. de Miguel, F. Prez

Redundancia con paridad

Fallos HW y SW pueden provocar fallos en un volumen


Soluciones:
Hardware:
Controladores que tratan con sectores con fallos
Discos con informacin redundante (RAID)
Backups (copias de respaldo)
En discos

Dispositivo RAID
Disco 0

Disco 1

Disco 2

Disco 3

A
B

bloque 0 bloque 1

bloque 2 paridad

bloque 3

En cintas
Backups incrementales

Sistemas operativos: una visin aplicada

132

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

133

J. Carretero, F. Garca, P. de Miguel, F. Prez

Consistencia del sistema de archivos (I)

Consistencia del sistema de archivos (II)

Dos aspectos importantes:


Comprobar que la estructura fsica del sistema de archivos es coherente.
Verificar que la estructura lgica del sistema de archivos es correcta.
Estrucutra fsica: se comprueba la superficie del dispositivo de
almacenamiento.
Estructura lgica:
1. Se comprueba que el contenido del superbloque responde a las
caractersticas 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 ningn bloque est asignado a ms 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 ms de un directorio.

Sistemas operativos: una visin aplicada

134

J. Carretero, F. Garca, P. de Miguel, F. Prez

Consistencia sobre archivos:


Contador de enlaces > contador real
Contador de enlaces < contador real
Nmero de nodo-i > Nmero total de nodos-i
Archivos con bits de proteccin 0007
Archivos con privilegios en directorios de usuario
UNIX y LINUX: fsck
fsck /dev/dsk/c0t0d3s1
Comprueba el dispositivo fsico c0t0d3s1

Sistemas operativos: una visin aplicada

135

Estado de los bloques

J. Carretero, F. Garca, P. de Miguel, F. Prez

Cerrojos
Cerrojo C

Nmero de bloque
012 3
1 01 0
012 3
0 10 1

Nmero de bloque

n
0

n
1

Referencias

012 3
1 00 0

Libres

012 3
0 10 1

CASO 1

Fichero

n
0

n
1

Referencias

Cerrojo C

Fichero

Libres

Cerrojo C

Cerrojo Ex

CASO 2
Cerrojo C

Nmero de bloque
012 3
1 02 0
012 3
0 10 1

Nmero de bloque

n
0

n
1

Referencias

012 3
1 00 0

Libres

012 3
0 12 1

CASO 3

Sistemas operativos: una visin aplicada

Fichero
Cerrojo C

n
0

Referencias

n
1

Libres

CASO 4

136

J. Carretero, F. Garca, P. de Miguel, F. Prez

Tipos:

Cerrojo Ex

Cerrojo C

Compartido
Exclusivo

Importante para trabajo colaborativo


Sistemas operativos: una visin aplicada

137

J. Carretero, F. Garca, P. de Miguel, F. Prez

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

Otros servicios
Actualizacin atmica, o indivisible: asegura a los usuarios que
sus operaciones estn libres de interferencia con las de otros
usuarios y que la operacin se realiza completamente o no tiene
ningn efecto en el sistema.
Transacciones: permite ejecutar operaciones atmicas que
agrupan a varias operaciones de entrada/salida y que se
ejecutarn con semntica todo o nada.
Replicacin: mantener varias copias de los datos y otros
recursos del sistema. Gestin de copias:
Copia primaria
Gestin colectiva

l_whence origen del desplazamiento (SEEK_SET, SEEK_CUR,


SEEK_END)
l_start desplazamiento en bytes.
l_len nmero de bytes sobre los que se establece el cerrojo
Sistemas operativos: una visin aplicada

138

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

Gestin de la replicacin
P2

P1
Escribir f1

Leer f1

Leer f2
Escribir f1

GR
primario

Escribir f1

GR
secundario

GR
secundario

Modelo de copia primaria

139

J. Carretero, F. Garca, P. de Miguel, F. Prez

Contenido

Visin del usuario del sistema de archivos


Archivos
Directorios
Servicios de archivos
Servicios de directorios
Sistemas de archivos
El servidor de archivos

Puntos a recordar
P2

P1
Escribir f1, 1
Leer f2

Escribir f1, 2

Escribir f1, 1

Gestor de
Rplicas
Escribir f1, 1

Gestor de
Rplicas
Escribir f1, 2
Gestor de
Escribir f1, 2
Rplicas

Modelo de gestin colectiva

Sistemas operativos: una visin aplicada

140

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas operativos: una visin aplicada

141

J. Carretero, F. Garca, P. de Miguel, F. Prez

Puntos a recordar (I)


Los archivos y los directorios son los elementos centrales del sistema.
Archivo: unidad de almacenamiento lgico no voltil que agrupa un
conjunto de informacin 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 creacin.
Desde el punto de vista del usuario, la informacin de un archivo puede
estructurarse como una lista de caracteres, un conjunto de registros secuencial
o indexado, etc.
Las dos formas de acceso ms habituales son el acceso secuencial y el
directo (o aleatorio).
La semntica de coutilizacin especifica qu ocurre cuando varios
procesos acceden de forma simultnea al mismo archivo.
Un directorio es un objeto que relaciona de forma unvoca el nombre de
usuario de un archivo y el descriptor interno del mismo usado por el sistema
operativo.
Sistemas operativos: una visin aplicada

142

J. Carretero, F. Garca, P. de Miguel, F. Prez

Puntos a recordar (III)


El sistema de archivos virtuales proporciona una interfaz de llamadas de
entrada/salida genricas vlidas para todos los tipos de sistemas de archivos instalados
en el sistema operativo.
Los mecanismos de asignacin hacen corresponder la imagen lgica del archivo con
la imagen fsica que existe en el almacenamiento secundario. Hay dos polticas de
asignacin bsicas: 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 compresin de datos.
La destruccin de un sistema de archivos es, a menudo, mucho peor que la
destruccin de un computador. Es importante salvaguardar los datos.
Un sistema de archivos puede quedar en estado incoherente por mal uso, cadas de
tensin, apagados indebidos del sistema operativo, etc. Actualmente, algunos
servidores de archivos incorporan servicios avanzados tales como actualizaciones
atmicas, transacciones o replicacin.
Sistemas operativos: una visin aplicada

144

J. Carretero, F. Garca, P. de Miguel, F. Prez

Puntos a recordar (II)


Hay dos posibles formas de especificar un nombre: nombre completo del
archivo, denominado nombre absoluto, o nombre de forma relativa a algn
subdirectorio del rbol de directorios, denominado nombre relativo.
Previamente a la instalacin del sistema operativo es necesario dividir
fsicamente, o lgicamente, los discos en particiones o volmenes.
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 metainformacin de un sistema de archivos. Si el superbloque
se 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 ms apropiada para
determinados propsitos. 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 visin aplicada

143

J. Carretero, F. Garca, P. de Miguel, F. Prez

Das könnte Ihnen auch gefallen