Sie sind auf Seite 1von 7

2010

Sistemas Operativos I
IMPLEMENTACIN DE SISTEMAS DE ARCHIVOS

Catedrtico: Ing. Jairo Martnez

Alumno: Javier Valladares

Cta.: TG200530127

IMPLEMENTACIN DE SISTEMAS DE ARCHIVOS Ya es momento de pasar de la perspectiva del usuario del sistema de archivos a la perspectiva del implementador. A los usuarios les interesa la forma de nombrar los archivos, las operaciones que pueden efectuarse con ellos, el aspecto que tiene el rbol de directorios y cuestiones de interfaz por el estilo. A los implementadores les interesa cmo estn almacenados los archivos y directorios, cmo se administra el espacio en disco y cmo puede hacerse que todo funcione de forma eficiente y confiable. En las secciones siguientes examinaremos varias de estas reas para conocer los problemas y las concesiones.

Implementacin de archivos Tal vez el aspecto ms importante de la implementacin del almacenamiento en archivos sea poder relacionar bloques de disco con archivos. Se emplean diversos mtodos en los diferentes sistemas operativos. En esta seccin examinaremos algunos de ellos.

Asignacin contigua El esquema de asignacin ms sencillo es almacenar cada archivo como un bloque contiguo de datos en el disco. As, en un disco con bloques de 1K, a un archivo de 50K se le asignaran 50 bloques consecutivos. Este esquema tiene dos ventajas importantes. Primera, la implementacin es sencilla porque para saber dnde estn los bloques de un archivo basta con recordar un nmero, la direccin en disco del primer bloque. Segunda, el rendimiento es excelente porque es posible leer todo el archivo del disco en una sola operacin. Desafortunadamente, la asignacin contigua tiene tambin dos ventajas igualmente importantes. Primera, no es factible si no se conoce el tamao mximo del archiv en el momento en que se crea el archivo. Sin esta informacin, el sistema operativo no sabr cunto espacio en disco debe reservar. Sin embargo, en los sistemas en los que los archivos deben escribirse de un solo golpe, el mtodo puede usarse con gran provecho. La segunda desventaja es la fragmentacin del disco que resulta de esta poltica de asignacin. Se desperdicia espacio que de otra forma podra haberse aprovechado. La compactacin del disco suele tener un costo prohibitivo, aunque tal vez podra efectuarse de noche cuando el sistema estara ocioso.

Asignacin por lista enlazada

El segundo mtodo para almacenar archivos es guardar cada uno como una lista enlazada de bloques de disco, como se muestra en la Fig. 5-8. La primera palabra de cada bloque se emplea como apuntador al siguiente. El resto del bloque se destina a datos. A diferencia de la asignacin contigua, con este mtodo es posible utilizar todos los bloques. No se pierde espacio por fragmentacin del disco (excepto por fragmentacin interna en el ltimo bloque). Adems, basta con que en la entrada de directorio se almacene la direccin en disco del primer bloque. El resto del archivo puede encontrarse siguiendo los enlaces. Por otro lado, aunque la lectura secuencial de un archivo es sencilla, el acceso aleatorio es extremadamente lento. Adems, la cantidad de almacenamiento de datos en un bloque ya no es una potencia de dos porque el apuntador ocupa unos cuantos bytes. Si bien tener un tamao peculiar no es fatal, resulta menos eficiente porque muchos programas leen y escriben en bloques cuyo tamao es una potencia de dos.

Asignacin por lista enlazada empleando un ndice

Las dos desventajas de la asignacin por lista enlazada pueden eliminarse si se toma la palabra de apuntador de cada bloque y se le coloca en una tabla o ndice en la memoria. La Fig. 5-9 muestra el aspecto que la tabla tendra para el ejemplo de la Fig. 5-8. En ambas figuras, tenemos dos archivos. El archivo A usa los bloques de disco 4,7,2,10 y 12, en ese orden, y el archivo B usa los bloques de disco 6, 3, 11 y 14, en ese orden. Si usamos la tabla de la Fig. 5-9, podemos comenzar en el bloque 4 y seguir la cadena hasta el final. Lo mismo puede hacerse comenzando en el bloque 6.

Si se emplea esta organizacin, todo el bloque est disponible para datos. Adems, el acceso directo es mucho ms fcil. Aunque todava hay que seguir la cadena para encontrar una distancia dada dentro de un archivo, la cadena est por completo en la memoria, y puede seguirse sin tener que consultar el disco. Al igual que con el mtodo anterior, basta con guardar un solo entero (el nmero del bloque inicial) en la entrada de directorio para poder localizar todos los bloques, por ms grande que sea el archivo. MS-DOS emplea este mtodo para la asignacin en disco. La desventaja primordial de este mtodo es que toda la tabla debe estar en la memoria todo el tiempo para que funcione. En el caso de un disco grande con,

digamos, 500 000 bloques de 1K (500M), l tabla tendr 500 000 entradas, cada una de las cuales tendr que tener un mnimo de 3 bytes. Si se desea acelerar las bsquedas, se necesitarn 4 bytes. As, la tabla ocupar de 1.5 a 2 megabytes todo el tiempo, dependiendo de si el sistema se optimiza en cuanto al espacio o en cuanto al tiempo. Aunque MS-DOS emplea este mecanismo, evita manejar tablas muy grandes empleando bloques grandes (de hasta 32K) en los discos de gran tamao.

Nodos-i Nuestro ltimo mtodo para saber cules bloques pertenecen a cul archivo consiste en asociar a cada archivo una pequea tabla llamada nodo-i (nodondice), que lista los atributos y las direcciones en disco de los bloques del archivo, como se muestra en la Fig.

Las primeras pocas direcciones de disco se almacenan en el nodo-i mismo, as que en el caso de archivos pequeos toda la informacin est contenida en el nodo-i, que se trae del disco a la memoria principal cuando se abre el archivo. En el caso de archivos ms grandes, una de las direcciones del nodo-i es la direccin de un bloque de disco llamado bloque de indireccin sencilla. Este bloque contiene direcciones de disco adicionales. Si esto todava no es suficiente, otra direccin del nodo-i, llamada bloque de indireccin doble, contiene la direccin de un bloque

que contiene una lista de bloques de indireccin sencilla. Cada uno de estos bloques de indireccin sencilla apunta a unos cuantos cientos de bloques de datos. Si ni siquiera con esto basta, se puede usar tambin un bloque de direccin triple. UNIX emplea este esquema.

Implementacin de directorios Antes de poder leer un archivo, hay que abrirlo. Cuando se abre un archivo, el sistema operativo usa el nombre de ruta proporcionado por el usuario para localizar la entrada de directorio. Esta entrada proporciona la informacin necesaria para encontrar los bloques de disco. Dependiendo del sistema, esta informacin puede ser la direccin en disco de todo el archivo (asignacin contigua), el nmero del primer bloque (ambos esquemas de lista enlazada) o el nmero del nodo-i. En todos los casos, la funcin principal del sistema de directorios es transformar el nombre ASCII del archivo en la informacin necesaria para localizar los datos. Un problema muy relacionado con el anterior es dnde deben almacenarse los atributos. Una posibilidad obvia es almacenarlos directamente en la entrada de directorio. Muchos sistemas hacen precisamente esto. En el caso de sistemas que usan nodos-i, otra posibilidad es almacenar los atributos en el nodo-i, en lugar de en la entrada de directorio. Como veremos ms adelante, este mtodo tiene ciertas ventajas respecto a la colocacin de los atributos en la entrada de directorio.

Directorios en CP/M Iniciemos nuestro estudio de los directorios con un ejemplo especialmente sencillo, el de CP/M (Golden y Pechura, 1986), ilustrado en la Fig. 5-11. En este sistema, slo hay un directorio, as que todo lo que el sistema de archivos tiene que hacer para consultar un nombre de archivo es buscarlo en el nico directorio. Una vez que encuentra la entrada, tambin tiene los nmeros de bloque en el disco, ya que estn almacenados ah mismo, en la entrada, lo mismo que todos los atributos. Si el archivo ocupa ms bloques de disco de los que caben en una entrada, se asignan al archivo entradas de directorio adicionales.

Los campos de la Fig. tienen los siguientes significados. El campo de cdigo de usuario indica qu usuario es el propietario del archivo. Durante una bsqueda, slo se examinan las entradas que pertenecen al usuario que est actualmente en sesin. Los siguientes dos campos dan el nombre y la extensin del archivo. El campo alcance (extent) es necesario porque un archivo con ms de 16 bloques ocupa mltiples entradas de directorio. Este campo sirve para saber cul entrada es primero, cul segunda, etc. El campo de cuenta de bloques indica cuntas de las 16 posibles entradas de bloque se estn usando. Los ltimos 16 campos contienen los nmeros de bloque de disco mismos. Es posible que el ltimo bloque no est lleno, as que el sistema no tiene forma de conocer el tamao exacto de un archivo hasta el ltimo byte (es decir, registra los tamaos de archivo en bloques, no en bytes).

Das könnte Ihnen auch gefallen