Adminstración de la Memoria y Sistema de Archivosalram/SO/clase19.pdf · Acceso a archivos Aceso...

Post on 01-Aug-2020

7 views 0 download

Transcript of Adminstración de la Memoria y Sistema de Archivosalram/SO/clase19.pdf · Acceso a archivos Aceso...

Adminstración de la Memoria y Sistema de Archivos

Dr. Alonso Ramírez Manzanares18-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 ArchivosEl 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 re-enbobinar 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 directorioscreate

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 archivospequeñ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 UNIXEs muy sencilla, dado que tenemos la tabla nodo-i:

Ejemplo de búsquedadel 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 archivosSe 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.