clase19

Anuncio
Adminstración de la Memoria y
Sistema de Archivos
Dr. Alonso Ramírez Manzanares
18-Nov-2009
El uso de la memoria
crece muy rápido.
Ley de Parkinson: “Los programas se
expanden hasta llenar la memoria disponible
para contenerlos”, aproximadamente se
duplica el uso cada 18 meses.
Sistema de Archivos
No se puede tener toda la información de un
proceso en memoria, ejemplo, bases de datos.
La informacion se debe de almacenar a veces
de manera indefinida (no importando que el
proceso que la creó se termine) y se debe de
compartir entre varios procesos de manera
concurrente.
Archivos desde el punto
de vista de usuario
Nombres de archivo: asignado al crearse. Se separan a
veces en partes nombre y extensión.
Tipos de Archivos
El uso del archivo no es importante para el SO, los
programas a nivel de usuario establecen el significado.
Tenemos:
Archivos regulares (de usuario)
directorios (mantienen estructura)
especiales por caracteres (de entrada salida)
especiales por bloques (para modelar discos).
Archivos Ejecutables, ASCII y
Binarios
Seguridad en tipos de
archivo
Windows selecciona la aplicación a lanzar en
base a la extensión, esto ayuda puedes ser
engorrosa para usuarios avanzados que hacen
cosas poco comunes.
Acceso a archivos
Aceso secuencial: Bytes se deben leer en
orden secuencial (asociados a la forma de
trabajo de una cinta). También se pueden reenbobinar para empezar desde el principio.
Aceso aleatorio: Bytes o registros se pueden
leer en cualquier orden (asociados a la forma
de trabajo de un disco duro). Se usa metodo
seek de posicionamiento.
Posibles atributos de
Archivos
Estructura de directorios
Este esquema es por supuesto más versatil
Nombres de Ruta
/, \ o > denota la raíz del los directorios
Ejemplo: /Users/alram/Documents
Cuando se crea un directorio por default
tenemos 2 entradas: “.” que es el directorio
actual y “..” que es el directorio padre.
Ejemplo cd ../../datos.
Cada proceso tiene un directorio de trabajo,
Operaciones con directorios
create
delete
opendir
closedir
readdir
rename
link
unlink
Implementación de
sistema de archivos.
Hay que relacionar los bloques de disco con los archivos.
Asignación por lista enlazada:
Desventajas:
- El acceso aleatorio
es extremadamente
lento.
-Las lecturas ya nos
son bloques
completos (potencias
de 2), porque el
apuntador ocupa
espacio.
Implementación de
sistema de archivos.
Hay que relacionar los bloques de disco con los archivos.
Asignación por lista enlazada empleando un índice
- Esta tabla se
guarda en memoria (acceso rápido).
- Todo el bloque de disco está
disponible para datos.
- La desventaja primordial es que si
el archivo es muy grande, hay que
guardar mucha información en
memoria.
Implementación de
sistema de archivos.
Hay que relacionar los bloques de disco con los archivos.
Asociar archivos a tabla llamada Nodo-i
Los archivos
pequeños solo
usan los bloques
de indireccion
sencilla.
El esquema crece
hasta donde se
necesita.
Implementación de
directorios.
La función principal del sistema de directorios es
transformar el nombre ASCII del archivo en la
información necesaria para encontrar los datos.
Los atributos de los archivos se pueden guardar en la
entrada del directorio o bien en el nodo i.
Para sistemas con un solo directorio, solo hay que
buscar el archivo secuencialmente o de alguna manera
dependiendo del ordenamiento.
Directorios en MS-DOS
Usa 32 bytes para guardar la información de archivo
Directorios en UNIX
Es muy sencilla, dado que tenemos la tabla nodo-i:
Ejemplo de búsqueda
del archivo
/usr/ast/mbox
La entrada “.” tiene el
número del i-nodo
actual y la entrada “..”
tiene el i-node del
directorio padre.
Administración de
espacio en disco.
Por razones de rapidez, la mayoría de los SO dividen los
archivos en bloques de tamaño fijo que no necesitan estar
adyacentes (de esa manera cuando un archivo crece no
necesita ser relocalizado en un “hueco” donde quepa).
¿Como seleccionar el tamaño de bloque?
Si se escoje algo grande (como un cilindro), archivos
pequeños de 1 byte ocuparan un todo el bloque y se
desperdicia espacio.
Si se escoje un tamaño pequeño hay que hacer muchas
lecturas y se desperdicia tiempo ¿Como analizamos
esto?
Administración de espacio en disco,
compromiso entre velocidad y
aprovechamiento del espacio en del
disco
Se hace un analisis empírico donde se supone que los
bloques son de 1 KByte. Nos muestra que es un problema
multi-objetivo.
Administración de bloques libres.
1) Usar una lista enlazada de bloques de disco.
Administración de bloques libres.
1) Usar un mapa de bits
Usa menos espacio que la lista
ligada anterior,
a menos que el disco duro esté
casi lleno.
Si se sube un bloque a memoria
pueden ser que no se pueda
localizar ni un solo bloque libre,
en cambio con la lista tenemos
seguros 255 bloques libres.
Confiabilidad de los
sitemas
de
archivos
Es fundametal, los datos son mas valiosos que el hardware en
muchos casos.
¡Algunos discos duros, se entregaban nuevos con una lista de
bloques defectuosos detectados por el fabricante!
El dispositivo mantiene dinámicamente una lista de bloques
defectuosos.
Es importante hacer respaldos, automáticos (SO, ejemplo OsX time
Machine) o manuales. Se puede usar Control Version System
(CVS). Se puden usar cintas de respaldo de alta capacidad o DVD,
Blue-Ray. Se puede tener arreglos de discos duros “espejo” donde
se guarda un respaldo de cada escritura.
Consistencia del sistema de archivos
Se utiliza una utilería de verificación al arranque del
sistema, sobre todo si el sistema se cayó, posiblemente
quedando en un estado inconsistente.
Consistencia de bloques:
Se construyen 2 tablas de contadores para cada
bloque: 1) cuantas veces esta presente un bloque en
un archivo y b) cuantas veces está presente un
bloque en la lista de bloques libres. Si el sistema es
consistente cada entrada por bloque tiene un 1 en
una tabla o un 1 en la otra.
Consistencia del sistema de archivos
Para verificar la consistencia de directorios, ahora se
usan contadores de archivos y se sigue la misma idea.
Descargar