IIC 2332 -- Sistemas Operativos
Apuntes 20
1er Semestre 1996
- Nueva división de las tareas.
- Ayudantía a las 16:30 en A3.
- Directorio de un nivel. Sencillo, pero administración de
los archivos es difícil para los usuarios.
- Directorio de dos niveles. Tenemos un directorio de
archivos maestro con entradas para usuarios. Cada usuario tiene su
propio directorio de archivos.
- Directorio estructurado como un árbol. Ejemplos: Unix,
DOS.
- ¿Cómo se debiera manejar accesos simultáneos a un archivo?
- El espacio del disco se organiza en bloques de tamaño fijo.
- Metas para el método de asignación:
- Utilización efectiva del espacio del disco
- Accesos rápidos a los archivos
- Asignación contigua. El archivo consiste en una
secuencia de bloques contiguos en el disco.
- El rendimiento de accesos es bueno; no se necesitan muchas
búsquedas de disco.
- Se apoyan el acceso secuencial y el acceso directo (el bloque
de un archivo que principia en el bloque del disco está en
el bloque del disco).
- La fragmentación externa es un problema, y la compactación de un
disco es cara.
- ¿Cuánto espacio se debiera asignar a un archivo? Si asignamos
demasiado, tenemos la fragmentación interna. Aun cuando sepamos el
tamaño final del archivo, puede ser que el archivo crece muy
lentamente (por ejemplo, un archivo de diario o log) y
malgastamos espacio.
- Asignación enlazada. Cada bloque tiene un puntero al
próximo.
- Como con la paginación, no tenemos la fragmentación externa.
- Los archivos pueden crecer sin problemas.
- Si bien el acceso secuencial es fácil, cuesta más porque la
cabeza del disco tiene que mover más.
- El acceso directo no es posible.
- Los punteros ocupan espacio. Por ejemplo, 4 bytes de cada
bloqueo de 512 bytes usa 8 MB en un disco de 1 GB. (El uso de
grupos pequeños de bloques contiguos pueden ayudar.)
- Si perdimos un puntero, perdimos una gran parte del archivo.
- Un implementación común (DOS, OS/2) es con un FAT (file
allocation table, o tabla de asignación de archivos). Es una
arregla con una entrada para cada bloque que guarda los punteros.
Se debiera guarda el FAT en una memoria caché; ¿por qué? Accesos al
disco.
- Asignación indizada. Ubicamos todos los punteros de la
asignación enlazada en un bloque; entonces podemos apoyar el acceso
directo.
- El bloque de índice usa más espacio. La mayoría de los archivos
en un sistema son pequeños.
- ¿Cuán grande debiera ser el bloque de índice? Ejemplo: El
esquema de BSD Unix con niveles de índices (punteros a bloques que
sirven como índices).
- El índice se debiera guardar en una memoria caché.
- Bitmap. Sencillo, pero tiene que estar en memoria
física (no virtual) para eficiencia. Nuestro disco de 1 GB usa
un bitmap de 256 KB.
- Lista enlazada. Cada bloque libre apunta al próximo. Si
tenemos un FAT, tenemos este método.
- Grupos. Como una lista enlazada, pero cada bloque
contiene direcciones: de bloques libres y al próximo
bloque con direcciones. La ventaja es la velocidad con que
podemos encontrar bloques libres (¡andar en una lista es caro en un
disco!).
Last edited June 3, 1996, by knabe@ing.puc.cl