Sistemas operativos modernos

Bloque de Super- arranque bloque / / Nodos-i Bloques de datos i . r Figura 10-31. Organización del disco en los sistemas UNIX clásicos. cuantos centenares de entradas). La destrucción del superbloque hace que el sistema de archivos ya no pueda leerse. Después del superbloque vienen los nod(^<í (abreviatura de nodos índice, aunque nunca se les llama asO, que están numerados del uno hasta algún máximo. Cada nodo-i tiene 64 bytes de largo y describe exactamente un archivo. Un nodo-i contiene información de contabilidad (inclui­ da toda la información devuelta por stat, que tan sólo la toma del nodo-i), así como suficiente in­ formación para localizar todos los bloques de disco que contienen los datos del archivo. Después de los nodos-i están los bloques de datos. Aquí se almacenan todos los archivos y directorios. Si un archivo o directorio consta de más de un bloque, los bloques no necesitan estar contiguos en el disco. De hecho, lo más probable es que los bloques de un archivo grande estén dispersos por todo el disco. Es precisamente esta dispersión lo que se buscó reducir con las me­ joras de Berkeley. Un directorio en el sistema de archivos tradicional (es decir, V7) consiste en una colección no ordenada de entradas de 16 bytes. Cada entrada contiene un nombre de archivo (hasta 14 caracteres arbitrarios) y el número del nodo-i del archivo, como se muestra en la figura 6-37. Para abrir el archivo en el directorio de trabajo, el sistema tan sólo lee el directorio y compara el nombre buscado con cada entrada hasta encontrar el nombre, o bien concluye que no está presente. Si el archivo está presente, el sistema extrae el número de nodo-i y lo usa como índice pa­ ra consultar la tabla de nodos-i (en disco), localizar el nodo-i correspondiente y traerlo a la me­ moria. El nodo-i se coloca en la tabla de nodos-i, una estructura de datos del kemel que contiene los nodos-i de todos los archivos y directorios que están abiertos en ese momento. El formato de las entradas de nodo-i varía un tanto de una versión de UNIX a otra. Como míni­ mo, todos los campos devueltos por la llamada al sistema stat deben estar presentes para que stat pueda funcionar (vea la figura 10-29). En la figura 10-32 mostramos el formato emplea­ do por todas las versiones AT&T desde la Versión 7 hasta System V. La búsqueda en tablas de un nombre de ruta absoluto como /usr/ast/archivo es un poco más complicada. Primero, el sistema localiza el directorio raíz, que por lo general usa el nodo-i 2, so­ bre todo si el nodo-i 1 está reservado para manejar bloques defectuosos. Luego busca la cadena “usr” en el directorio raíz para obtener el número de nodo-i del directorio /usr. Ese nodo-i se trae del disco y se extraen de él los bloques de disco para poder leer el directorio /usr y buscar en él la cadena “ast”. Una vez hallada esta entrada, puede tomarse de ella el número de nodo-i del directorio /usr/ast. Ahora puede leerse ese nodo-i y localizar los bloques del directorio. Por últi­ mo, se busca “archivo” en este directorio y se encuentra su número de nodo-i. Como puede ver, el uso de un nombre de ruta relativo no sólo es más cómodo para el usuario, sino que ahorra una cantidad considerable de trabajo al sistema.

RkJQdWJsaXNoZXIy MjI4NDcx