Sistemas operativos modernos
misma descripción de seguridad. La lista de atributos es necesaria en caso de que los atributos no quepan en el registro MFT. En tal caso, este atributo indicará dónde hallar los registros de extensión. Cada entrada de la lista contiene un índice de 48 bits para la MFT, que indica dón de está el registro de extensión, y un número consecutivo de 16 bits que permite verificar que concuerden el registro de extensión y los registros base. El atributo de identificador de objeto da al archivo un nombre único. Hay ocasiones en que esto es necesario en forma interna. El punto de reanálisis indica al procedimiento que está anali zando el nombre del archivo que debe hacer algo especial. Este mecanismo se usa para montajes y enlaces simbólicos. Los dos atributos de volumen sólo sirven para identificar el volumen. Los siguientes tres atributos se ocupan de la implementación de directorios. Los pequeños no son más que listas de archivos, pero los grandes se implementan con árboles B+. El flujo utilitario de registro se usa en el sistema de archivos cifrador. Por último, llegamos al atributo que todos hemos estado esperando: los datos. El nombre del flujo, si existe, va en este encabezado de atributo. Después del encabezado viene una lista de direcciones de disco que indica los bloques contenidos en el archivo, o bien, en el caso de ar chivos de unos cuantos cientos de bytes (de los cuales hay muchos), el archivo mismo. Cuan do los datos reales del archivo se colocan en el registro MFT, se habla de un archivo inmediato (Mullender y Tanenbaum, 1984). Desde luego, lo más común es que los datos no quepan en ei registro MFT, así que este atributo por lo regular es no residente. Veamos ahora cómo NTFS se manfiene al tanto de la ubicación de los atributos no residentes, y en particular de los datos. El modelo para llevar el control de los bloques de disco es que siempre que es posible se asignan en series de bloques consecutivos, por mofivos de eficiencia. Por ejemplo, si el primer bloque lógico de un archivo se coloca en el bloque 20 del disco, el sistema hará un esfuerzo por colocar el segundo bloque lógico en el bloque 21 , el tercer bloque lógico en el 22 , y así en forma sucesiva. Una forma de lograr estas series consecutivas es asignar el espacio de disco en grupos de varios bloques, de ser posible. Los bloques de un archivo se describen mediante una secuencia de registros, cada uno de los cuales describe una serie de bloques lógicamente contiguos. En el caso de un archivo sin huecos, sólo habrá uno de esos registros. Los archivos que se escriben en orden de principio a fm pertenecen a esta categoría. Si un archivo contiene un hueco (por ejemplo, sólo están defi nidos los bloques 0-49 y 60-79), habrá dos registros. Un archivo así podría producirse escri biendo los primeros 50 bloques y avanzando entonces hasta el bloque lógico 60 para escribir otros 20 bloques. Cuando se lee un hueco, todos los bytes faltantes son ceros. Cada registro principia con un encabezado que da el desplazamiento del primer bloque dentro del archivo. Luego viene el desplazamiento del primer bloque que no cubre este regis tro. En el ejemplo anterior, el primer registro tendría como encabezado (O, 50) y proporciona ría las direcciones en disco de estos 50 bloques. El segundo tendría como encabezado (60, 80) y proporcionaría las direcciones en disco de estos 20 bloques. Cada encabezado de registro va seguido de uno o más pares, cada uno de los cuales da una dirección de disco y una longitud. La dirección en disco es el desplazamiento del bloque de dis co a partir del principio de su partición; la longitud es el número de bloques que hay en la se-
RkJQdWJsaXNoZXIy MjI4NDcx