Sistemas Operativos [El sistema de archivos]

Sistemas Operativos [El sistema de archivos] ´ ´ M. en C. Sergio Luis Perez Perez ´ UAM C UAJIMALPA , M EXICO , D. F. Trimestre 13-O ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 1 / 79 Archivos Archivos I ´ que permite Un archivo es un mecanismo de abstraccion ´ en un dispositivo de almacenamiento y almacenar informacion ´ leerla despues. ´ Es importante distinguir entre archivo f´ısico y archivo logico. ´ de bytes almacenados en Un archivo f´ısico es una coleccion algun ´ dispositivo. ´ ´ Un archivo logico es como un programa visualiza un archivo. Dicho programa no tiene por que saber donde son escritos o le´ıdos los datos. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 2 / 79 Archivos Archivos II ´ de archivos debe ser transparente para el La administracion usuario. Las reglas para nombrar archivos var´ıan de un sistema a otro. Algunos sistemas permiten nombres de hasta 255 caracteres de longitud. Algunos sistemas de archivos distinguen entre mayusculas y ´ minusculas (Unix-Linux) mientras que otros no (Windows). ´ Windows 95 y 98 utilizaban el sistema de archivos de MS-DOS, y las versiones posteriores utilizaban NTFS. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 3 / 79 Archivos Archivos III NTFS (New Technology File System) es un sistema de archivos basado en el sistema de archivos HPFS de IBM/Microsoft usado en el sistema operativo OS/2. ´ posee caracter´ısticas del formato de archivos HFS NTFS tambien ˜ disenado por Apple. HPFS (High Performance File System) fue un sistema de archivos creado espec´ıficamente para el OS/2. El objetivo de HPFS era mejorar las limitaciones del sistema de archivos FAT. HPFS fue escrito por Gordon Letwin. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 4 / 79 Archivos Archivos IV FAT (file allocation table) es un sistema de archivos desarrollado ´ el sistema de archivos principal de las para MS-DOS y, ademas, ediciones no empresariales de Microsoft Windows. Los sistemas de archivos suelen considerar dos partes para el nombre del archivo, ambas separadas por un punto. La primera parte es el nombre que el usuario desea para el ´ se utiliza para archivo y la segunda parte, llamada extension, ayudar a determinar el tipo de archivo. ´ convenciones mientras En Unix los nombres de archivo son solo que en Windows se suele asociar un significado. Algunas formas de estructuras archivos son: ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 5 / 79 Archivos Archivos V ´ no estructura de ´ de bytes. Se cuenta con una sucesion Sucesion bytes y el SO no sabe y no le interesa el contenido del archivo. ´ de registros. En este tipo de estructura los archivos son Sucesion ´ de registros de longitud fija. En este modo las una sucesion operaciones de lectura devuelven un registro y las de escritura sobreescriben o anexan otro. ´ ´ Arboles. El archivo consiste de un arbol de registros no necesariamente de la misma longitud. ´ ¿Que´ tipos de estructura de arbol conoce? Algunos tipos de archivos son: ´ de usuario. Pueden Archivos normales. Contienen informacion ser ASCII o binarios. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 6 / 79 Archivos Archivos VI Directorios. Son archivos del sistema que permiten mantener la estructura del sistema de archivos. Archivos especiales de caracteres. Sirven para modelar los dispositivos E/S en serie. Archivos especiales de bloques. Sirven para modelar discos. Los archivos ASCII tienen la ventaja de que pueden editarse con cualquier editor de texto. ASCII (American Standard Code for Information Interchange es ´ un codigo de caracteres basado en el alfabeto latino, tal como se ´ moderno y en otras lenguas occidentales. usa en el ingles ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 7 / 79 Archivos Archivos VII ´ El codigo ASCII se creo´ en 1963 por el ANSI (American National Standards Institute). En 1967 se incluyeron las minusculas y se redefinieron algunos ´ ´ codigos de control, lo que dio pie al US-ASCII. ´ Los archivos binarios mantienen una estructura que solo pueden entender los programas que lo usan. Un archivo binario ejecutable tiene la siguiente estructura: Encabezado. Se compone de un identificador de archivo ˜ de texto, tamano ˜ de datos, tamano ˜ de los bits ejecutable, tamano ´ tamano ˜ de tabla de s´ımbolos y punto de ingreso. de reubicacion, Texto. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 8 / 79 Archivos Archivos VIII Datos. ´ Bits de reubicacion. Tabla de s´ımbolos. Un archivo binario permanente consiste de los siguiente: ´ Encabezado. Se compone del nombre del modulo, la fecha, el ´ y el tamano. ˜ propietario, la proteccion ´ Modulos que lo conforman. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 9 / 79 Archivos Archivos IX Tipos de acceso a archivos Acceso secuencial. Un archivo es accedido leyendo sus bytes en orden comenzando por el primer byte o registro. Generalmente se utilizaba cuando el dispositivo de almacenamiento era una ´ cinta magnetica. Acceso aleatorio. En este tipo de archivo los bytes o registros pueden leerse en cualquier orden. Su uso es fundamental en diversas aplicaciones tales como bases de datos. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 10 / 79 Archivos Archivos X Atributos de archivos I ´ Los atributos de archivo permiten asociar alguna informacion adicional a los archivos. Algunos atributos de archivo son: ´ puede tener acceso al archivo. ´ Indican quien Proteccion. ˜ Es la clave necesaria para tener acceso al archivo. Contrasena. Creador. Es el identificador de la persona que crea el archivo. ˜ Indica el propietario actual. Dueno. ´ ´ lectura. 0 para leer/escribir. 1 para solo Indicador de solo lectura. Indicador de oculto. 0 para normal. 1 para no mostrarlo en listados. Indicador de sistema. 0 para archivos normales. 1 para archivo de sistema. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 11 / 79 Archivos Archivos XI Atributos de archivos II Indicador de archivado. 0 para ya respaldado. 1 para respaldarse. Indicador de ASCII/binario. 0 para archivo ASCII. 1 para archivo binario. ´ acceso secuencial. 1 Indicador de acceso aleatorio. 0 para solo para acceso aleatorio. Indicador de temporal. 0 para normal. 1 para borrarlo al terminar el proceso. Indicadores de bloqueo. 0 para sin bloqueo. Distinto de cero si esta´ bloqueado. Longitud de registro. Numero de bytes en un registro. ´ ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 12 / 79 Archivos Archivos XII Atributos de archivos III ´ de clave. Distancia a la clave, dentro de cada registro. Posicion Longitud de clave. Numero de bytes en el campo clave. ´ ´ Fecha y hora en que se creo´ el archivo. Hora de creacion. Hora de ultimo ´ acceso. Fecha y hora en que se tuvo acceso por ultima vez al archivo. ´ Hora de ultimo ´ cambio. Fecha y hora en que se modifico´ por ultima vez el archivo. ´ ˜ actual. Numero Tamano de bytes en el archivo. ´ ˜ maximo. ´ Tamano Numero de bytes que puede alcanzar el ´ archivo. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 13 / 79 Archivos Archivos XIII Operaciones con archivos I ´ comunes relacionadas con archivos son: La llamadas al sistema mas ´ algunos valores Create. Se crea un archivo sin datos con solo iniciales por defecto. Delete. Elimina el archivo para desocupar el espacio en disco. Open. Permite abrir un archivo para luego usarlo. Close. Se utiliza para cerrar el archivo toda vez que se han terminado los accesos. ´ Read. Permite leer los datos del archivo desde una posicion actual. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 14 / 79 Archivos Archivos XIV Operaciones con archivos II ´ Write. Se escriben datos en el archivo a partir de una posicion actual. Append. Es una forma restrictiva del write pues solo puede agregar datos al final del archivo. Seek. Permite reubicar el apuntador de archivo en algun ´ punto ´ espec´ıfico de este. Get attributes. Permite leer los atributos de un archivo. Set attributes. Permite establecer o modificar los atributos de un archivo. Rename. Permite cambiar el nombre de un archivo existente. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 15 / 79 Directorios Directorios I Los directorios permiten llevar el control de los archivos. Algunas formas de organizar el sistema de directorios son: ´ nivel. Sistemas de directorios de un solo Sistemas de directorios de dos niveles. ´ Sistemas de directorios jerarquicos. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 16 / 79 Directorios Directorios II ´ nivel Sistemas de directorios de un solo ´ directorio que contiene a todos los archivos. Consiste de un solo Generalmente se denomina directorio ra´ız. ´ de los archivos con Es un esquema sencillo y permite la ubicacion rapidez. Los problemas ocurren cuando se tienen multiples usuarios para ´ un solo directorio. Este esquema no se utiliza en sistemas multiusuario pero podr´ıa utilizarse en un sistema empotrado. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 17 / 79 Directorios Directorios III Sistemas de directorios de dos niveles En este esquema se da a cada usuario un directorio privado. De este modo se elimina el problema de que varios usuarios utilicen el mismo dispositivo de almacenamiento. Este esquema requer´ıa que los usuarios utilizaran un nombre de usuario y password para acceder a sus propios directorios. Sin embargo es posible ejecutar archivos de otros usuarios (en otros directorios). Lo anterior se requiere para poder ejecutar los programas de usuario que todos desean utilizar. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 18 / 79 Directorios Directorios IV ´ Sistemas de directorios jerarquicos I ´ Establece un arbol de directorios tal que cada usuario puede tener tantos directorios como necesite. De este modo los usuarios pueden organizar mejor su trabajo. Casi todos los sistemas de archivos actuales se encuentran organizados de este modo. Para especificar los nombres de archivo pueden utilizarse dos ´ metodos: nombre de ruta absoluta y nombre de ruta relativa. El nombre de ruta absoluta considera el camino que debe seguirse para llegar al archivo desde el directorio ra´ız. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 19 / 79 Directorios Directorios V ´ Sistemas de directorios jerarquicos I ´ considera el nombre de un El nombre de ruta relativa solo archivo sin la ruta desde el directorio ra´ız, siempre y cuando se encuentre en el directorio de trabajo. El directorio de trabajo o directorio actual se refiere al directorio en el que un usuario se encuentra ubicado actualmente. En Unix el separador para distinguir entre directorios es ‘/’ mientras que en Windows el separador comun ´ es ‘\’ aunque ´ se puede utilizar el de Unix. tambien El directorio ra´ız en Unix se denota con ‘/’, mientras que en Windows se debe especificar primero una unidad de almacenamiento digamos “C:”. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 20 / 79 Directorios Directorios VI Operaciones con directorios I ´ comunes para administrar directorios son: La llamadas al sistema mas Create. Crea un directorio el cual esta´ casi vac´ıo, pues contiene por defecto los directorios punto y punto punto. Delete. Elimina el directorio siempre y cuando este´ vac´ıo (aunque contenga los directorios punto y punto punto). Opendir. Permite abrir un directorio para luego usarlo. Closedir. Se utiliza para cerrar el directorio. Readdir. Permite leer la siguiente entrada de un directorio abierto. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 21 / 79 Directorios Directorios VII Operaciones con directorios II Rename. Permite cambiar el nombre de un directorio existente. Link. Se utiliza para permitir que un archivo pueda aparecer en ´ de un directorio. Esta llamada requiere de un nombre de mas archivo y el nombre de la ruta que se desea ligar al archivo. ´ se Unlink. Borra un archivo del sistema de archivos si es que solo ´ elimina la referencia encuentra en un directorio, de otro modo solo del archivo del directorio actual. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 22 / 79 ´ del sistema de archivos Construccion ´ del sistema de archivos I Construccion El sistema de archivos estara´ almacenado en el disco. Si el disco se divide en varias particiones entonces cada una de ellas tendra´ su propio sistema de archivos. El sector 0 del disco se conoce como registro maestro de arranque MBR (Master Boot Record) y es el que arranca la computadora. Al final del MBR se encuentra una tabla de particiones que ´ contiene las direcciones inicial y final de cada particion. ¿Que´ ocurre cuando se enciende la computadora? ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 23 / 79 ´ del sistema de archivos Construccion ´ del sistema de archivos II Construccion 1 El BIOS (Basic Input-Output System) lee el MBR del disco y lo ejecuta. 2 ´ activa y lee el primer bloque, El MBR primero localiza la particion ´ llamado bloque de arranque, y lo ejecuta. tambien 3 Entonces el programa del bloque de arranque carga el SO ´ Todas las particiones cuentan con un contenido en esa particion. bloque de arranque. ´ ´ de archivos son: Algunos metodos para realizar la implementacion ´ contigua. Asignacion ´ por lista enlazada. Asignacion ´ por lista enlazada mediante una tabla en memoria. Asignacion Estructura de datos de nodo-´ındice. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 24 / 79 ´ del sistema de archivos Construccion ´ del sistema de archivos III Construccion ´ contigua I Asignacion Cada archivo es almacenado en una serie contigua de bloques. Este esquema es sencillo de implementar ya que para saber ´ ´ se requiere donde se encuentran los bloques de un archivo solo ´ del primer bloque y el tamano. ˜ conocer la direccion ´ ´ Otra ventaja es que la lectura es muy rapida pues se necesita solo un desplazamiento del brazo y luego leer los bloques contiguos. La desventaja es que al borrar archivos se van creando huecos ´ en el disco y es necesario realizar una compactacion. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 25 / 79 ´ del sistema de archivos Construccion ´ del sistema de archivos IV Construccion ´ contigua II Asignacion ´ puede ser ayudada al solicitar al usuario el La compactacion ˜ del archivo que va a crear para ubicarlo en el mejor hueco tamano ´ y as´ı evitar hasta donde sea posible la compactacion. ´ desde el punto de vista del usuario? ¿Es esta una buena solucion ¿En que´ tipo de hardware puede utilizarse el esquema de ´ contigua sin problemas? asignacion ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 26 / 79 ´ del sistema de archivos Construccion ´ del sistema de archivos V Construccion ´ por lista enlazada Asignacion Se crea una lista enlazada de bloques para cada archivo. La primera palabra de cada bloque se utiliza como apuntador al siguiente bloque del archivo. ´ ´ de disco. En este caso no existe perdida por la fragmentacion El problema es que el acceso se vuelve pseudo-aleatorio y por tanto bastante lento. Otro problema es que los primeros bytes o palabra de cada ´ que no es propia del bloque del archivo contiene informacion archivo. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 27 / 79 ´ del sistema de archivos Construccion ´ del sistema de archivos VI Construccion ´ por lista enlazada mediante una tabla en memoria Asignacion Es igual que el anterior pero en lugar de poner las referencias junto con el bloque, se utiliza una tabla en memoria. ´ con una tabla en memoria se conoce Este tipo de asignacion como FAT (File Allocation Table). Dado que la secuencia de referencias de bloques de un archivo ´ facil ´ ir a una parte en se encuentra en memoria, es mas espec´ıfica del archivo. ´ se almacenar´ıa la referencia a la En el directorio de archivos solo ´ en la tabla del primer bloque de un archivo. posicion La desventaja es que para que esto funcione la tabla debe estar en memoria siempre. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 28 / 79 ´ del sistema de archivos Construccion ´ del sistema de archivos VII Construccion Estructura de datos de nodo-´ındice Se utiliza una estructura de datos llamada nodo-´ındice los atributos y direcciones en disco de los bloques de un archivo. ˜ fijo n. Suele ser de tamano ´ Si k es el numero maximo de archivos que pueden estar abiertos ´ ´ se requiere n ∗ k espacio en al mismo tiempo entonces solo memoria. ´ de n bytes para poder ser ¿Que´ hacer si un archivo requiere mas referenciado? ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 29 / 79 ´ del sistema de archivos Construccion ´ del sistema de archivos I Construccion ¿Que´ ocurre con el sistema de archivos cuando se abre un archivo? Al abrirse un archivo el SO utiliza el nombre proporcionado por el usuario para localizar la entrada correspondiente en el directorio. ´ necesaria Dicha entrada de directorio provee la informacion para encontrar los bloques de disco. El objetivo principal del sistema de directorios es establecer una ´ correspondencia entre el nombre de archivo y la informacion necesaria para localizar los datos. Algunos sistemas de archivos guardan todos los atributos de un archivo junto con la entrada correspondiente en el directorio (MS-DOS). ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 30 / 79 ´ del sistema de archivos Construccion ´ del sistema de archivos II Construccion ´ suelen mantener nombres de archivo de longitud fija. Tambien ´ mantienen en la entrada del directorio el Otros sistemas solo nombre del archivo y la referencia al nodo-´ındice (UNIX). ´ ´ fija en cada entrada de Otro metodo es utilizar una porcion ´ variable. directorio y una porcion ´ fija comienza con una longitud de entrada del archivo y La porcion ´ continua con una serie de parametros de longitud fija. ´ variable es el nombre del archivo y debe terminar con La porcion el caracter nulo. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 31 / 79 ´ del sistema de archivos Construccion ´ del sistema de archivos III Construccion Otra alternativa es que todas las porciones fijas de cada entrada de directorio se almacenen de forma consecutiva y en otro lugar los nombres de directorio en una especie de mont´ıculo (heap). ´ es utilizar tablas de dispersion ´ (hash): Otra opcion ˜ de la tabla es n. Supongamos que el tamano 1 2 3 Primero, se utiliza algun ´ criterio para asociar al nombre del archivo un valor entre 0 y n − 1. ´ Luego, se examina la entrada de la tabla correspondiente al codigo obtenido. Si la ranura ya esta usada se construye una lista ligada que para ´ ah´ı encadenar todas las entradas con el mismo codigo. Para consultar un archivo se sigue un proceso parecido al anterior. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 32 / 79 Ejemplos de sistemas de archivos Ejemplos de sistemas de archivos I Algunos ejemplos de sistemas de archivos son: Sistemas de archivos de CD-ROM. Sistema de archivos de MS-DOS. Sistema de archivos de Windows 98. Sistema de archivos de Windows 2000. Sistema de archivos de UNIX V7. Sistema de archivos de UNIX. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 33 / 79 Ejemplos de sistemas de archivos Sistemas de archivos de CD-ROM Sistemas de archivos de CD-ROM I Un CD-ROM (Compact Disc - Read Only Memory) es un prensado disco compacto que contiene los datos de acceso, sin permisos de escritura. ´ El CD-ROM estandar fue creado en 1985 por Sony y Philips. Los sistemas de archivos de CD-ROM son sencillos pues trabajan ´ se escribe una vez. bajo el supuesto de que solo ´ ´ comun El estandar mas ´ para sistemas de archivos de CD-ROM es el ISO 9660 y fue establecido en 1998. Los CD-ROM se componen de una sola espiral continua que ´ lineal. contiene los bits en sucesion ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 34 / 79 Ejemplos de sistemas de archivos Sistemas de archivos de CD-ROM Sistemas de archivos de CD-ROM II ´ Los bits de la espiral se dividen en bloques logicos, llamados sectores, de 2352 bytes. ´ de errores y Algunos de esos bytes se utilizan para la correccion ´ 2048 bytes son utiles. otros gastos adicionales y solo ´ ´ y Cuando se graba musica, para dejar los espacios entre cancion ´ ´ lo que ocurre es que se dejan bloques sin grabar. cancion, Esto se logra teniendo en cuenta que cierto numero de bloques ´ es igual a un segundo. ´ ´ de los primeros 16 bloques Bajo el estandar ISO 9660, la funcion ´ definidos. de un CD-ROM no estan ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 35 / 79 Ejemplos de sistemas de archivos Sistemas de archivos de CD-ROM Sistemas de archivos de CD-ROM III Dichos bloques podr´ıan utilizarse para crear un disco de arranque. ´ de dichos bloques, viene el descriptor de volumen Despues primario que se compone de: Identificador del sistema (32 bytes). Identificador de volumen (32 bytes). Identificador del productor (128 bytes). Identificador del preparador de datos (128 bytes). Archivo de resumen. Archivo de derechos de autor. ´ bibliografica. ´ Informacion ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 36 / 79 Ejemplos de sistemas de archivos Sistemas de archivos de CD-ROM Sistemas de archivos de CD-ROM IV ˜ del bloque logico ´ Tamano (potencias de 2, como 2048, 4096 y 8192). Numero de bloques del CD-ROM. ´ ´ y de expiracion. ´ Fechas de creacion ´ del contenido del directorio ra´ız (donde inicia el Informacion sistema de archivos). ´ directorios constan de un El directorio ra´ız as´ı como los demas numero variable de entradas. ´ ´ es de longitud variable y se Cada entrada de directorio tambien compone de: Longitud de entrada de directorio (1 byte). ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 37 / 79 Ejemplos de sistemas de archivos Sistemas de archivos de CD-ROM Sistemas de archivos de CD-ROM V Longitud de registro de atributos extendidos (1 byte). Es la longitud de los atributos extendidos pero suelen ser opcionales. ´ del bloque ´ del archivo (8 bytes). Basta con la ubicacion Ubicacion ˜ para determinar la ubicacion ´ de todos los inicial y el tamano bloques. ˜ del archivo (8 bytes). Tamano ˜ mes, d´ıa, hora, Fecha y hora (7 bytes). Contiene campos para ano, ˜ se empezaron a minuto, segundo y uso horario. Dado que los anos ˜ 2156 habra´ problemas, ¿por que?. ´ contar de 1900, en el ano Marcadores (1 byte). Contiene bits de significado como: bit de entrada oculta, bit para distinguir entre archivo y directorio, bit para habilitar los atributos extendidos, entre otros. ´ (1 byte). Intercalacion ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 38 / 79 Ejemplos de sistemas de archivos Sistemas de archivos de CD-ROM Sistemas de archivos de CD-ROM VI Numero ´ de CD (4 bytes). Permite indicar que corresponde a una entrada de directorio de un archivo situado en otro CD-ROM. Nombre del archivo (Longitud variable). Relleno. Permite que toda entrada de directorio tenga un numero ´ par de bytes. Es importante mencionar que cada campo binario se encuentra codificado dos veces: big endian (Motorola) y little endian (Intel). ´ Dentro de un directorio las entradas aparecen en orden alfabetico ´ de las dos primeras que representan el directorio con excepcion en s´ı y su padre (como . y .. de Unix). No hay l´ımite de archivos por directorio. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 39 / 79 Ejemplos de sistemas de archivos Sistemas de archivos de CD-ROM Sistemas de archivos de CD-ROM VII La profundidad l´ımite para los directorios a partir de la ra´ız es ocho. ISO 9660 define tres niveles de uso: 1 ´ tres para Nivel 1: Limita el nombre del archivo a 8 caracteres y solo ´ la extension. 2 Nivel 2: Permite nombres de archivos de hasta 31 caracteres. 3 Nivel 3: Igual que el nivel 2 para la parte de nombres pero permite que un archivo pueda estar dividido en secciones no necesariamente contiguas. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 40 / 79 Ejemplos de sistemas de archivos Sistema de archivos de MS-DOS Sistema de archivos de MS-DOS I ´ de MS-DOS (MS-DOS 1.0) se limito´ a un solo La primera version directorio. A partir del MS-DOS 2.0 se permitio´ que la profundidad de los directorio fuera arbitraria. El numero de archivos o directorios a crear en cada directorio ´ ´ esta´ limitado por el espacio en disco. solo Uno de los problemas de MS-DOS es que no existe el concepto ´ puede de usuario por cada archivo por lo que el que inicie sesion tener acceso a todos los archivos. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 41 / 79 Ejemplos de sistemas de archivos Sistema de archivos de MS-DOS Sistema de archivos de MS-DOS II ´ de La entradas de directorio son de 32 bytes pero la informacion directorio es de longitud variable. Una entrada de directorio de MS-DOS contiene la siguiente ´ informacion: Nombre de archivo (8 bytes). ´ (3 bytes). Extension ´ lectura, bit de respaldo Atributos (1 byte). Bit de oculto, bit de solo y bit de archivo de sistema. Reservado (10 bytes). No se usan. Hora (2 bytes). Tiene una exactitud de ±2 segundos pues 2 bytes ´ permiten almacenar hasta 65536 valores mientras que el d´ıa solo tiene 86400 segundos. De modo que para la hora se utilizan 5 bits, 6 para el minuto y 5 para los segundos. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 42 / 79 Ejemplos de sistemas de archivos Sistema de archivos de MS-DOS Sistema de archivos de MS-DOS III Fecha (2 bytes). Se utilizan 5 bits para el d´ıa, 4 para el mes y 7 ˜ contando a partir de 1980. para el ano Numero ´ del primer bloque (2 bytes). ˜ de archivo (4 bytes). Dado que la cuenta es de bytes se Tamano pueden tener archivos hasta de 4GB (en teor´ıa). MS-DOS lleva el control de los bloques de archivo por medio de ´ de archivos (FAT) en memoria. una tabla de asignacion El numero de primer bloque se utiliza como ´ındice para consultar ´ la tabla FAT de 64K entradas. El sistema de archivos FAT viene en tres versiones para MS-DOS: FAT-12, FAT-16 y FAT-32. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 43 / 79 Ejemplos de sistemas de archivos Sistema de archivos de MS-DOS Sistema de archivos de MS-DOS IV ´ en Con FAT-N, N denota el numero de bits que tiene una direccion ´ disco, aunque FAT-32 en realidad tiene 28 bits. En todas las versiones FAT el bloque de disco debe ser un multiplo de 512 bytes. ´ Cuando aparecieron los discos duros se comenzaron a manejar ˜ de bloque de 1, 2 y 4 KB. tamanos ˜ de bloque de 4 KB se pod´ıan tener particiones de Con tamanos disco de hasta 16 MB para FAT-12 (212 ∗ 212 ). Como MS-DOS reconoc´ıa cuatro particiones por unidad de disco entonces pod´ıa utilizarse en discos de hasta 64 MB. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 44 / 79 Ejemplos de sistemas de archivos Sistema de archivos de MS-DOS Sistema de archivos de MS-DOS V ˜ maximo ´ La siguiente tabla muestra el tamano que puede manejar ´ MS-DOS para diferentes versiones FAT y tamanos ˜ una particion de bloque. ˜ de bloque FAT-12 FAT-16 Tamano FAT-32 0.5 KB 2 MB 1 KB 4 MB 2 KB 8 MB 128 MB 4 KB 16 MB 256 MB 1 TB 8 KB 512 MB 2 TB 16 KB 1024 MB 2 TB 32 KB 2048 MB 2 TB ´ de Windows 95. FAT-32 aparecio´ a partir de la segunda version ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 45 / 79 Ejemplos de sistemas de archivos Sistema de archivos de Windows 98 Sistema de archivos de Windows 98 I Para que el sistema de archivos de Windows 98 fuera compatible con Windows 95 y Windows 3, Microsoft decidio´ mantener un tipo de estructura de datos compatible con tales versiones. ´ en FAT-32 permitio´ resolver ese problema y se utilizar´ıa tambien Windows ME y NT. Las entradas de directorio continuaron siendo de 32 bytes pero se utilizaron los 10 bytes que se ten´ıan reservados anteriormente. Una entrada de directorio de Windows 98 contiene la siguiente ´ informacion: Nombre de archivo (8 bytes). ´ (3 bytes). Extension ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 46 / 79 Ejemplos de sistemas de archivos Sistema de archivos de Windows 98 Sistema de archivos de Windows 98 II Atributos (1 byte). NT (1 byte). Este campo permite asegurar la compatibilidad con Windows NT, desplegando los nombres de archivo en el caso ´ se permit´ıan mayusculas). correcto (para MS-DOS solo ´ Seg (1 byte). Es un campo complementario para la fecha y hora de ´ lo que permite una precision ´ de hasta 10 ms. creacion Fecha y hora (4 bytes). Ultimo acceso (2 bytes). Almacena la fecha de ultimo acceso (pero no la hora). 16 bits superiores del bloque inicial (2 bytes) . Con esto se permite que los numeros de bloque sean de 32 bits. ´ Fecha y hora de ultima ´ escritura (4 bytes). ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 47 / 79 Ejemplos de sistemas de archivos Sistema de archivos de Windows 98 Sistema de archivos de Windows 98 III 16 bits superiores del bloque inicial (2 bytes). ˜ de archivo (4 bytes). Dado que la cuenta es de bytes se Tamano pueden tener archivos hasta de 4GB (en teor´ıa). ´ para que se pudieran crear nombres de archivo largos La solucion y se mantuviera la compatibilidad con MS-DOS fue asociar a cada archivo dos nombres. Uno era el nombre largo que permit´ıa caracteres Unicode para la compatibilidad con Windows NT y el otro corto para la compatibilidad con MS-DOS. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 48 / 79 Ejemplos de sistemas de archivos Sistema de archivos de Windows 98 Sistema de archivos de Windows 98 IV Para convertir un nombre largo en un nombre corto se tomaban ´ los primero seis caracteres validos del nombre largo y se anexaba el sufijo ∼ N donde N es un numero consecutivo. ´ Si el archivo ten´ıa un nombre largo y deseaba almacenarse en MS-DOS entonces se agregaban bloques de entrada que conten´ıan el resto del nombre del archivo. Cada bloque adicional al de la entrada principal permit´ıa agregar 13 caracteres Unicode del modo siguiente: Secuencia (1 byte). 5 caracteres (10 bytes). Atributos (1 byte). ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 49 / 79 Ejemplos de sistemas de archivos Sistema de archivos de Windows 98 Sistema de archivos de Windows 98 V 0 (1 byte). ´ (1 byte). Suma de comprobacion 6 caracteres (12 bytes). 0 (2 bytes). 2 caracteres (4 bytes) . Para que Windows 98 distinguiera entre bloques de entrada y bloques correspondientes a nombres de archivo largos, se utilizaba el valor 0 en los atributos. ´ 0 es un valor invalido para los atributos, por lo que los programas de MS-DOS viejos ignoran tales bloques. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 50 / 79 Ejemplos de sistemas de archivos Sistema de archivos de Windows 98 Sistema de archivos de Windows 98 VI Para llevar la cuenta de bloques que componen el nombre largo se utiliza el primer byte de la entrada (Secuencia). Puesto que el primer campo de Secuencia es de un byte podr´ıa pensarse en utilizar nombres tan largos como 28 ∗ 13 caracteres Unicode. ´ se utilizan 6 bits de ese byte y de hecho solo ´ se Sin embargo solo permiten nombres de hasta 260 caracteres Unicode. Los nombres largos se almacenan del siguiente modo: Se crea el nombre de archivo MS-DOS y correspondera´ a la ultima ´ entrada de directorio del archivo. Al nombre MS-DOS lo precede la primera parte del nombre largo, que a su vez es precedida por el resto del nombre. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 51 / 79 Ejemplos de sistemas de archivos Sistema de archivos de Windows 98 Sistema de archivos de Windows 98 VII Al principio de todas las entradas se encontrara´ la ultima parte del archivo. ´ se utiliza para que Windows 98 se de La suma de comprobacion cuenta de que el nombre MS-DOS que sigue a un nombre largo en verdad corresponde a dicha entrada. ´ crea tantas FAT-32 tiene la ventaja (sobre FAT-16) de que solo entradas de archivo como necesite. ´ no mantiene todas las entradas siempre en memoria, Ademas ´ una parte de ellas. sino solo ´ ¿Como se almacenar´ıa el nombre largo “Este es un nombre largo”? ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 52 / 79 Ejemplos de sistemas de archivos Sistema de archivos de Windows 2000 Sistema de archivos de Windows 2000 I Windows 2000 reconoce los sistemas de archivos FAT-16, FAT-32 y NTFS. NTFS fue creado espec´ıficamente para Windows NT e incorporado en Windows 2000. NTFS utiliza direcciones de disco de 64 bits y puede manejar particiones de hasta 264 bytes (en teor´ıa). Las caracter´ısticas principales de NTFS son: ´ limitados a 255 caracteres y se Los nombres de archivo estan permite Unicode. ´ limitadas a 32767 Las rutas completas de un archivo estan caracteres. ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 53 / 79 Ejemplos de sistemas de archivos Sistema de archivos de Windows 2000 Sistema de archivos de Windows 2000 II Distingue entre mayusculas y minusculas (la API Win32 es la que ´ ´ no reconoce tal diferencia). Un archivo consiste de multiples atributos representados mediante ´ un flujo de bytes. Todos los archivos contienen algunos flujos cortos y algunos largos. Ejemplos de flujos cortos son el nombre del archivo y su identificador de objeto (de 64 bits). Ejemplos de flujos largos son todos los que contienen los datos del archivo. ´ La longitud maxima de un flujo es 264 bytes. La apertura de archivos devuelve un identificador (que se utiliza para leer y escribir el archivo). ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 54 / 79 Ejemplos de sistemas de archivos Sistema de archivos de Windows 2000 Sistema de archivos de Windows 2000 III La idea del uso de flujos se tomo´ de Apple Macintosh donde los archivos tienen dos flujos: la rama de datos y la rama de recursos. Los flujos de archivo permiten que un archivo pueda utilizarse con mayor eficiencia. ´ de texto Un ejemplo del uso de flujos de archivo es en la edicion ´ temporal donde se utilizan dos flujos: uno se utiliza para la version ´ final. del archivo (que se esta editando) y el otro para la version Las llamadas a funciones de la API Win32 para manipular archivos y directorios son similares a las equivalentes en Unix. ´ se presentan las principales funciones API Win32: A continuacion ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 55 / 79 Ejemplos de sistemas de archivos Sistema de archivos de Windows 2000 Sistema de archivos de Windows 2000 IV Principales funciones de la API Win32 para E/S de archivos CreateFile. Devuelve un identificador que permite crear o abrir un archivo. DeleteFile. Destruye un archivo. CloseHandle. Cierra un archivo. ReadFile. Lee los datos de un archivo. WriteFile. Escribe datos en un archivo. ´ SetFilePointer. Coloca el apuntador de archivo en una posicion espec´ıfica. GetFileAttributes. Devuelve las propiedades de archivo. ´ del archivo para exclusion ´ mutua. LockFile. Bloquea una region ´ del archivo. UnlockFile. Desbloquea una region ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 56 / 79 Ejemplos de sistemas de archivos Sistema de archivos de Windows 2000 Sistema de archivos de Windows 2000 V /*Ejemplo de uso de algunas funciones de la API de Windows*/ void copiarArchivo(){ HANDLE original, copia; DWORD cont; int s; char buffer[TAM BUFFER+1]; original = CreateFile(“APIWindows.c”, GENERIC READ, 0, NULL, OPEN EXISTING, 0, NULL); copia = CreateFile(“APIWindows(copia).c”, GENERIC WRITE, 0, NULL, CREATE ALWAYS, FILE ATTRIBUTE NORMAL, NULL); ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 57 / 79 Ejemplos de sistemas de archivos Sistema de archivos de Windows 2000 Sistema de archivos de Windows 2000 VI do{ s = ReadFile(original, buffer, TAM BUFFER, &cont, NULL); printf(“s = %d %d\n”, s, cont); if(s && cont > 0) WriteFile(copia, buffer, cont, &cont, NULL); }while(s > 0 && cont > 0); CloseHandle(original); CloseHandle(copia); return; } ´ Sergio Luis Perez (UAM C UAJIMALPA) Curso de Sistemas Operativos 58 / 79 Ejemplos de sistemas de archivos Sistema de archivos de Windows 2000 Sistema de archivos de Windows 2000 VII Principales funciones de la API Win32 para administrar directorios CreateDirectory. Crea un nuevo directorio. RemoveDirectory. Elimina un directorio siempre y cu

0 downloads 136 Views 626KB Size

Story Transcript

Sistemas Operativos [El sistema de archivos] ´ ´ M. en C. Sergio Luis Perez Perez

´ UAM C UAJIMALPA , M EXICO , D. F. Trimestre 13-O

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

1 / 79

Archivos

Archivos I

´ que permite Un archivo es un mecanismo de abstraccion ´ en un dispositivo de almacenamiento y almacenar informacion ´ leerla despues. ´ Es importante distinguir entre archivo f´ısico y archivo logico. ´ de bytes almacenados en Un archivo f´ısico es una coleccion algun ´ dispositivo. ´ ´ Un archivo logico es como un programa visualiza un archivo. Dicho programa no tiene por que saber donde son escritos o le´ıdos los datos.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

2 / 79

Archivos

Archivos II ´ de archivos debe ser transparente para el La administracion usuario. Las reglas para nombrar archivos var´ıan de un sistema a otro. Algunos sistemas permiten nombres de hasta 255 caracteres de longitud. Algunos sistemas de archivos distinguen entre mayusculas y ´ minusculas (Unix-Linux) mientras que otros no (Windows). ´ Windows 95 y 98 utilizaban el sistema de archivos de MS-DOS, y las versiones posteriores utilizaban NTFS.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

3 / 79

Archivos

Archivos III NTFS (New Technology File System) es un sistema de archivos basado en el sistema de archivos HPFS de IBM/Microsoft usado en el sistema operativo OS/2. ´ posee caracter´ısticas del formato de archivos HFS NTFS tambien ˜ disenado por Apple. HPFS (High Performance File System) fue un sistema de archivos creado espec´ıficamente para el OS/2. El objetivo de HPFS era mejorar las limitaciones del sistema de archivos FAT. HPFS fue escrito por Gordon Letwin. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

4 / 79

Archivos

Archivos IV FAT (file allocation table) es un sistema de archivos desarrollado ´ el sistema de archivos principal de las para MS-DOS y, ademas, ediciones no empresariales de Microsoft Windows. Los sistemas de archivos suelen considerar dos partes para el nombre del archivo, ambas separadas por un punto. La primera parte es el nombre que el usuario desea para el ´ se utiliza para archivo y la segunda parte, llamada extension, ayudar a determinar el tipo de archivo. ´ convenciones mientras En Unix los nombres de archivo son solo que en Windows se suele asociar un significado. Algunas formas de estructuras archivos son: ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

5 / 79

Archivos

Archivos V ´ no estructura de ´ de bytes. Se cuenta con una sucesion Sucesion bytes y el SO no sabe y no le interesa el contenido del archivo. ´ de registros. En este tipo de estructura los archivos son Sucesion ´ de registros de longitud fija. En este modo las una sucesion operaciones de lectura devuelven un registro y las de escritura sobreescriben o anexan otro. ´ ´ Arboles. El archivo consiste de un arbol de registros no necesariamente de la misma longitud.

´ ¿Que´ tipos de estructura de arbol conoce? Algunos tipos de archivos son: ´ de usuario. Pueden Archivos normales. Contienen informacion ser ASCII o binarios.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

6 / 79

Archivos

Archivos VI Directorios. Son archivos del sistema que permiten mantener la estructura del sistema de archivos. Archivos especiales de caracteres. Sirven para modelar los dispositivos E/S en serie. Archivos especiales de bloques. Sirven para modelar discos.

Los archivos ASCII tienen la ventaja de que pueden editarse con cualquier editor de texto. ASCII (American Standard Code for Information Interchange es ´ un codigo de caracteres basado en el alfabeto latino, tal como se ´ moderno y en otras lenguas occidentales. usa en el ingles

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

7 / 79

Archivos

Archivos VII ´ El codigo ASCII se creo´ en 1963 por el ANSI (American National Standards Institute). En 1967 se incluyeron las minusculas y se redefinieron algunos ´ ´ codigos de control, lo que dio pie al US-ASCII. ´ Los archivos binarios mantienen una estructura que solo pueden entender los programas que lo usan. Un archivo binario ejecutable tiene la siguiente estructura: Encabezado. Se compone de un identificador de archivo ˜ de texto, tamano ˜ de datos, tamano ˜ de los bits ejecutable, tamano ´ tamano ˜ de tabla de s´ımbolos y punto de ingreso. de reubicacion, Texto. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

8 / 79

Archivos

Archivos VIII

Datos. ´ Bits de reubicacion. Tabla de s´ımbolos.

Un archivo binario permanente consiste de los siguiente: ´ Encabezado. Se compone del nombre del modulo, la fecha, el ´ y el tamano. ˜ propietario, la proteccion ´ Modulos que lo conforman.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

9 / 79

Archivos

Archivos IX

Tipos de acceso a archivos Acceso secuencial. Un archivo es accedido leyendo sus bytes en orden comenzando por el primer byte o registro. Generalmente se utilizaba cuando el dispositivo de almacenamiento era una ´ cinta magnetica. Acceso aleatorio. En este tipo de archivo los bytes o registros pueden leerse en cualquier orden. Su uso es fundamental en diversas aplicaciones tales como bases de datos.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

10 / 79

Archivos

Archivos X Atributos de archivos I ´ Los atributos de archivo permiten asociar alguna informacion adicional a los archivos. Algunos atributos de archivo son: ´ puede tener acceso al archivo. ´ Indican quien Proteccion. ˜ Es la clave necesaria para tener acceso al archivo. Contrasena. Creador. Es el identificador de la persona que crea el archivo. ˜ Indica el propietario actual. Dueno. ´ ´ lectura. 0 para leer/escribir. 1 para solo Indicador de solo lectura. Indicador de oculto. 0 para normal. 1 para no mostrarlo en listados. Indicador de sistema. 0 para archivos normales. 1 para archivo de sistema. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

11 / 79

Archivos

Archivos XI Atributos de archivos II Indicador de archivado. 0 para ya respaldado. 1 para respaldarse. Indicador de ASCII/binario. 0 para archivo ASCII. 1 para archivo binario. ´ acceso secuencial. 1 Indicador de acceso aleatorio. 0 para solo para acceso aleatorio. Indicador de temporal. 0 para normal. 1 para borrarlo al terminar el proceso. Indicadores de bloqueo. 0 para sin bloqueo. Distinto de cero si esta´ bloqueado. Longitud de registro. Numero de bytes en un registro. ´

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

12 / 79

Archivos

Archivos XII Atributos de archivos III ´ de clave. Distancia a la clave, dentro de cada registro. Posicion Longitud de clave. Numero de bytes en el campo clave. ´ ´ Fecha y hora en que se creo´ el archivo. Hora de creacion. Hora de ultimo ´ acceso. Fecha y hora en que se tuvo acceso por ultima vez al archivo. ´ Hora de ultimo ´ cambio. Fecha y hora en que se modifico´ por ultima vez el archivo. ´ ˜ actual. Numero Tamano de bytes en el archivo. ´ ˜ maximo. ´ Tamano Numero de bytes que puede alcanzar el ´ archivo. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

13 / 79

Archivos

Archivos XIII Operaciones con archivos I ´ comunes relacionadas con archivos son: La llamadas al sistema mas ´ algunos valores Create. Se crea un archivo sin datos con solo iniciales por defecto. Delete. Elimina el archivo para desocupar el espacio en disco. Open. Permite abrir un archivo para luego usarlo. Close. Se utiliza para cerrar el archivo toda vez que se han terminado los accesos. ´ Read. Permite leer los datos del archivo desde una posicion actual.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

14 / 79

Archivos

Archivos XIV Operaciones con archivos II ´ Write. Se escriben datos en el archivo a partir de una posicion actual. Append. Es una forma restrictiva del write pues solo puede agregar datos al final del archivo. Seek. Permite reubicar el apuntador de archivo en algun ´ punto ´ espec´ıfico de este. Get attributes. Permite leer los atributos de un archivo. Set attributes. Permite establecer o modificar los atributos de un archivo. Rename. Permite cambiar el nombre de un archivo existente. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

15 / 79

Directorios

Directorios I

Los directorios permiten llevar el control de los archivos. Algunas formas de organizar el sistema de directorios son: ´ nivel. Sistemas de directorios de un solo Sistemas de directorios de dos niveles. ´ Sistemas de directorios jerarquicos.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

16 / 79

Directorios

Directorios II ´ nivel Sistemas de directorios de un solo ´ directorio que contiene a todos los archivos. Consiste de un solo Generalmente se denomina directorio ra´ız. ´ de los archivos con Es un esquema sencillo y permite la ubicacion rapidez. Los problemas ocurren cuando se tienen multiples usuarios para ´ un solo directorio. Este esquema no se utiliza en sistemas multiusuario pero podr´ıa utilizarse en un sistema empotrado.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

17 / 79

Directorios

Directorios III Sistemas de directorios de dos niveles En este esquema se da a cada usuario un directorio privado. De este modo se elimina el problema de que varios usuarios utilicen el mismo dispositivo de almacenamiento. Este esquema requer´ıa que los usuarios utilizaran un nombre de usuario y password para acceder a sus propios directorios. Sin embargo es posible ejecutar archivos de otros usuarios (en otros directorios). Lo anterior se requiere para poder ejecutar los programas de usuario que todos desean utilizar.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

18 / 79

Directorios

Directorios IV ´ Sistemas de directorios jerarquicos I ´ Establece un arbol de directorios tal que cada usuario puede tener tantos directorios como necesite. De este modo los usuarios pueden organizar mejor su trabajo. Casi todos los sistemas de archivos actuales se encuentran organizados de este modo. Para especificar los nombres de archivo pueden utilizarse dos ´ metodos: nombre de ruta absoluta y nombre de ruta relativa. El nombre de ruta absoluta considera el camino que debe seguirse para llegar al archivo desde el directorio ra´ız.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

19 / 79

Directorios

Directorios V ´ Sistemas de directorios jerarquicos I ´ considera el nombre de un El nombre de ruta relativa solo archivo sin la ruta desde el directorio ra´ız, siempre y cuando se encuentre en el directorio de trabajo. El directorio de trabajo o directorio actual se refiere al directorio en el que un usuario se encuentra ubicado actualmente. En Unix el separador para distinguir entre directorios es ‘/’ mientras que en Windows el separador comun ´ es ‘\’ aunque ´ se puede utilizar el de Unix. tambien El directorio ra´ız en Unix se denota con ‘/’, mientras que en Windows se debe especificar primero una unidad de almacenamiento digamos “C:”. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

20 / 79

Directorios

Directorios VI Operaciones con directorios I ´ comunes para administrar directorios son: La llamadas al sistema mas Create. Crea un directorio el cual esta´ casi vac´ıo, pues contiene por defecto los directorios punto y punto punto. Delete. Elimina el directorio siempre y cuando este´ vac´ıo (aunque contenga los directorios punto y punto punto). Opendir. Permite abrir un directorio para luego usarlo. Closedir. Se utiliza para cerrar el directorio. Readdir. Permite leer la siguiente entrada de un directorio abierto.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

21 / 79

Directorios

Directorios VII

Operaciones con directorios II Rename. Permite cambiar el nombre de un directorio existente. Link. Se utiliza para permitir que un archivo pueda aparecer en ´ de un directorio. Esta llamada requiere de un nombre de mas archivo y el nombre de la ruta que se desea ligar al archivo. ´ se Unlink. Borra un archivo del sistema de archivos si es que solo ´ elimina la referencia encuentra en un directorio, de otro modo solo del archivo del directorio actual.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

22 / 79

´ del sistema de archivos Construccion

´ del sistema de archivos I Construccion El sistema de archivos estara´ almacenado en el disco. Si el disco se divide en varias particiones entonces cada una de ellas tendra´ su propio sistema de archivos. El sector 0 del disco se conoce como registro maestro de arranque MBR (Master Boot Record) y es el que arranca la computadora. Al final del MBR se encuentra una tabla de particiones que ´ contiene las direcciones inicial y final de cada particion. ¿Que´ ocurre cuando se enciende la computadora?

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

23 / 79

´ del sistema de archivos Construccion

´ del sistema de archivos II Construccion 1

El BIOS (Basic Input-Output System) lee el MBR del disco y lo ejecuta.

2

´ activa y lee el primer bloque, El MBR primero localiza la particion ´ llamado bloque de arranque, y lo ejecuta. tambien

3

Entonces el programa del bloque de arranque carga el SO ´ Todas las particiones cuentan con un contenido en esa particion. bloque de arranque.

´ ´ de archivos son: Algunos metodos para realizar la implementacion ´ contigua. Asignacion ´ por lista enlazada. Asignacion ´ por lista enlazada mediante una tabla en memoria. Asignacion Estructura de datos de nodo-´ındice. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

24 / 79

´ del sistema de archivos Construccion

´ del sistema de archivos III Construccion ´ contigua I Asignacion Cada archivo es almacenado en una serie contigua de bloques. Este esquema es sencillo de implementar ya que para saber ´ ´ se requiere donde se encuentran los bloques de un archivo solo ´ del primer bloque y el tamano. ˜ conocer la direccion ´ ´ Otra ventaja es que la lectura es muy rapida pues se necesita solo un desplazamiento del brazo y luego leer los bloques contiguos. La desventaja es que al borrar archivos se van creando huecos ´ en el disco y es necesario realizar una compactacion.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

25 / 79

´ del sistema de archivos Construccion

´ del sistema de archivos IV Construccion

´ contigua II Asignacion ´ puede ser ayudada al solicitar al usuario el La compactacion ˜ del archivo que va a crear para ubicarlo en el mejor hueco tamano ´ y as´ı evitar hasta donde sea posible la compactacion. ´ desde el punto de vista del usuario? ¿Es esta una buena solucion ¿En que´ tipo de hardware puede utilizarse el esquema de ´ contigua sin problemas? asignacion

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

26 / 79

´ del sistema de archivos Construccion

´ del sistema de archivos V Construccion ´ por lista enlazada Asignacion Se crea una lista enlazada de bloques para cada archivo. La primera palabra de cada bloque se utiliza como apuntador al siguiente bloque del archivo. ´ ´ de disco. En este caso no existe perdida por la fragmentacion El problema es que el acceso se vuelve pseudo-aleatorio y por tanto bastante lento. Otro problema es que los primeros bytes o palabra de cada ´ que no es propia del bloque del archivo contiene informacion archivo.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

27 / 79

´ del sistema de archivos Construccion

´ del sistema de archivos VI Construccion ´ por lista enlazada mediante una tabla en memoria Asignacion Es igual que el anterior pero en lugar de poner las referencias junto con el bloque, se utiliza una tabla en memoria. ´ con una tabla en memoria se conoce Este tipo de asignacion como FAT (File Allocation Table). Dado que la secuencia de referencias de bloques de un archivo ´ facil ´ ir a una parte en se encuentra en memoria, es mas espec´ıfica del archivo. ´ se almacenar´ıa la referencia a la En el directorio de archivos solo ´ en la tabla del primer bloque de un archivo. posicion La desventaja es que para que esto funcione la tabla debe estar en memoria siempre. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

28 / 79

´ del sistema de archivos Construccion

´ del sistema de archivos VII Construccion

Estructura de datos de nodo-´ındice Se utiliza una estructura de datos llamada nodo-´ındice los atributos y direcciones en disco de los bloques de un archivo. ˜ fijo n. Suele ser de tamano ´ Si k es el numero maximo de archivos que pueden estar abiertos ´ ´ se requiere n ∗ k espacio en al mismo tiempo entonces solo memoria. ´ de n bytes para poder ser ¿Que´ hacer si un archivo requiere mas referenciado?

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

29 / 79

´ del sistema de archivos Construccion

´ del sistema de archivos I Construccion ¿Que´ ocurre con el sistema de archivos cuando se abre un archivo? Al abrirse un archivo el SO utiliza el nombre proporcionado por el usuario para localizar la entrada correspondiente en el directorio. ´ necesaria Dicha entrada de directorio provee la informacion para encontrar los bloques de disco. El objetivo principal del sistema de directorios es establecer una ´ correspondencia entre el nombre de archivo y la informacion necesaria para localizar los datos. Algunos sistemas de archivos guardan todos los atributos de un archivo junto con la entrada correspondiente en el directorio (MS-DOS). ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

30 / 79

´ del sistema de archivos Construccion

´ del sistema de archivos II Construccion ´ suelen mantener nombres de archivo de longitud fija. Tambien ´ mantienen en la entrada del directorio el Otros sistemas solo nombre del archivo y la referencia al nodo-´ındice (UNIX). ´ ´ fija en cada entrada de Otro metodo es utilizar una porcion ´ variable. directorio y una porcion ´ fija comienza con una longitud de entrada del archivo y La porcion ´ continua con una serie de parametros de longitud fija. ´ variable es el nombre del archivo y debe terminar con La porcion el caracter nulo.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

31 / 79

´ del sistema de archivos Construccion

´ del sistema de archivos III Construccion Otra alternativa es que todas las porciones fijas de cada entrada de directorio se almacenen de forma consecutiva y en otro lugar los nombres de directorio en una especie de mont´ıculo (heap). ´ es utilizar tablas de dispersion ´ (hash): Otra opcion ˜ de la tabla es n. Supongamos que el tamano 1

2

3

Primero, se utiliza algun ´ criterio para asociar al nombre del archivo un valor entre 0 y n − 1. ´ Luego, se examina la entrada de la tabla correspondiente al codigo obtenido. Si la ranura ya esta usada se construye una lista ligada que para ´ ah´ı encadenar todas las entradas con el mismo codigo.

Para consultar un archivo se sigue un proceso parecido al anterior. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

32 / 79

Ejemplos de sistemas de archivos

Ejemplos de sistemas de archivos I Algunos ejemplos de sistemas de archivos son: Sistemas de archivos de CD-ROM. Sistema de archivos de MS-DOS. Sistema de archivos de Windows 98. Sistema de archivos de Windows 2000. Sistema de archivos de UNIX V7. Sistema de archivos de UNIX.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

33 / 79

Ejemplos de sistemas de archivos

Sistemas de archivos de CD-ROM

Sistemas de archivos de CD-ROM I Un CD-ROM (Compact Disc - Read Only Memory) es un prensado disco compacto que contiene los datos de acceso, sin permisos de escritura. ´ El CD-ROM estandar fue creado en 1985 por Sony y Philips. Los sistemas de archivos de CD-ROM son sencillos pues trabajan ´ se escribe una vez. bajo el supuesto de que solo ´ ´ comun El estandar mas ´ para sistemas de archivos de CD-ROM es el ISO 9660 y fue establecido en 1998. Los CD-ROM se componen de una sola espiral continua que ´ lineal. contiene los bits en sucesion ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

34 / 79

Ejemplos de sistemas de archivos

Sistemas de archivos de CD-ROM

Sistemas de archivos de CD-ROM II ´ Los bits de la espiral se dividen en bloques logicos, llamados sectores, de 2352 bytes. ´ de errores y Algunos de esos bytes se utilizan para la correccion ´ 2048 bytes son utiles. otros gastos adicionales y solo ´ ´ y Cuando se graba musica, para dejar los espacios entre cancion ´ ´ lo que ocurre es que se dejan bloques sin grabar. cancion, Esto se logra teniendo en cuenta que cierto numero de bloques ´ es igual a un segundo. ´ ´ de los primeros 16 bloques Bajo el estandar ISO 9660, la funcion ´ definidos. de un CD-ROM no estan ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

35 / 79

Ejemplos de sistemas de archivos

Sistemas de archivos de CD-ROM

Sistemas de archivos de CD-ROM III Dichos bloques podr´ıan utilizarse para crear un disco de arranque. ´ de dichos bloques, viene el descriptor de volumen Despues primario que se compone de: Identificador del sistema (32 bytes). Identificador de volumen (32 bytes). Identificador del productor (128 bytes). Identificador del preparador de datos (128 bytes). Archivo de resumen. Archivo de derechos de autor. ´ bibliografica. ´ Informacion ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

36 / 79

Ejemplos de sistemas de archivos

Sistemas de archivos de CD-ROM

Sistemas de archivos de CD-ROM IV ˜ del bloque logico ´ Tamano (potencias de 2, como 2048, 4096 y 8192). Numero de bloques del CD-ROM. ´ ´ y de expiracion. ´ Fechas de creacion ´ del contenido del directorio ra´ız (donde inicia el Informacion sistema de archivos).

´ directorios constan de un El directorio ra´ız as´ı como los demas numero variable de entradas. ´ ´ es de longitud variable y se Cada entrada de directorio tambien compone de: Longitud de entrada de directorio (1 byte). ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

37 / 79

Ejemplos de sistemas de archivos

Sistemas de archivos de CD-ROM

Sistemas de archivos de CD-ROM V Longitud de registro de atributos extendidos (1 byte). Es la longitud de los atributos extendidos pero suelen ser opcionales. ´ del bloque ´ del archivo (8 bytes). Basta con la ubicacion Ubicacion ˜ para determinar la ubicacion ´ de todos los inicial y el tamano bloques. ˜ del archivo (8 bytes). Tamano ˜ mes, d´ıa, hora, Fecha y hora (7 bytes). Contiene campos para ano, ˜ se empezaron a minuto, segundo y uso horario. Dado que los anos ˜ 2156 habra´ problemas, ¿por que?. ´ contar de 1900, en el ano Marcadores (1 byte). Contiene bits de significado como: bit de entrada oculta, bit para distinguir entre archivo y directorio, bit para habilitar los atributos extendidos, entre otros. ´ (1 byte). Intercalacion ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

38 / 79

Ejemplos de sistemas de archivos

Sistemas de archivos de CD-ROM

Sistemas de archivos de CD-ROM VI Numero ´ de CD (4 bytes). Permite indicar que corresponde a una entrada de directorio de un archivo situado en otro CD-ROM. Nombre del archivo (Longitud variable). Relleno. Permite que toda entrada de directorio tenga un numero ´ par de bytes.

Es importante mencionar que cada campo binario se encuentra codificado dos veces: big endian (Motorola) y little endian (Intel). ´ Dentro de un directorio las entradas aparecen en orden alfabetico ´ de las dos primeras que representan el directorio con excepcion en s´ı y su padre (como . y .. de Unix). No hay l´ımite de archivos por directorio. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

39 / 79

Ejemplos de sistemas de archivos

Sistemas de archivos de CD-ROM

Sistemas de archivos de CD-ROM VII La profundidad l´ımite para los directorios a partir de la ra´ız es ocho. ISO 9660 define tres niveles de uso: 1

´ tres para Nivel 1: Limita el nombre del archivo a 8 caracteres y solo ´ la extension.

2

Nivel 2: Permite nombres de archivos de hasta 31 caracteres.

3

Nivel 3: Igual que el nivel 2 para la parte de nombres pero permite que un archivo pueda estar dividido en secciones no necesariamente contiguas.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

40 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de MS-DOS

Sistema de archivos de MS-DOS I

´ de MS-DOS (MS-DOS 1.0) se limito´ a un solo La primera version directorio. A partir del MS-DOS 2.0 se permitio´ que la profundidad de los directorio fuera arbitraria. El numero de archivos o directorios a crear en cada directorio ´ ´ esta´ limitado por el espacio en disco. solo Uno de los problemas de MS-DOS es que no existe el concepto ´ puede de usuario por cada archivo por lo que el que inicie sesion tener acceso a todos los archivos.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

41 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de MS-DOS

Sistema de archivos de MS-DOS II ´ de La entradas de directorio son de 32 bytes pero la informacion directorio es de longitud variable. Una entrada de directorio de MS-DOS contiene la siguiente ´ informacion: Nombre de archivo (8 bytes). ´ (3 bytes). Extension ´ lectura, bit de respaldo Atributos (1 byte). Bit de oculto, bit de solo y bit de archivo de sistema. Reservado (10 bytes). No se usan. Hora (2 bytes). Tiene una exactitud de ±2 segundos pues 2 bytes ´ permiten almacenar hasta 65536 valores mientras que el d´ıa solo tiene 86400 segundos. De modo que para la hora se utilizan 5 bits, 6 para el minuto y 5 para los segundos. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

42 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de MS-DOS

Sistema de archivos de MS-DOS III Fecha (2 bytes). Se utilizan 5 bits para el d´ıa, 4 para el mes y 7 ˜ contando a partir de 1980. para el ano Numero ´ del primer bloque (2 bytes). ˜ de archivo (4 bytes). Dado que la cuenta es de bytes se Tamano pueden tener archivos hasta de 4GB (en teor´ıa).

MS-DOS lleva el control de los bloques de archivo por medio de ´ de archivos (FAT) en memoria. una tabla de asignacion El numero de primer bloque se utiliza como ´ındice para consultar ´ la tabla FAT de 64K entradas. El sistema de archivos FAT viene en tres versiones para MS-DOS: FAT-12, FAT-16 y FAT-32. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

43 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de MS-DOS

Sistema de archivos de MS-DOS IV ´ en Con FAT-N, N denota el numero de bits que tiene una direccion ´ disco, aunque FAT-32 en realidad tiene 28 bits. En todas las versiones FAT el bloque de disco debe ser un multiplo de 512 bytes. ´ Cuando aparecieron los discos duros se comenzaron a manejar ˜ de bloque de 1, 2 y 4 KB. tamanos ˜ de bloque de 4 KB se pod´ıan tener particiones de Con tamanos disco de hasta 16 MB para FAT-12 (212 ∗ 212 ). Como MS-DOS reconoc´ıa cuatro particiones por unidad de disco entonces pod´ıa utilizarse en discos de hasta 64 MB. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

44 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de MS-DOS

Sistema de archivos de MS-DOS V ˜ maximo ´ La siguiente tabla muestra el tamano que puede manejar ´ MS-DOS para diferentes versiones FAT y tamanos ˜ una particion de bloque. ˜ de bloque FAT-12 FAT-16 Tamano FAT-32 0.5 KB 2 MB 1 KB 4 MB 2 KB 8 MB 128 MB 4 KB 16 MB 256 MB 1 TB 8 KB 512 MB 2 TB 16 KB 1024 MB 2 TB 32 KB 2048 MB 2 TB ´ de Windows 95. FAT-32 aparecio´ a partir de la segunda version

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

45 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 98

Sistema de archivos de Windows 98 I Para que el sistema de archivos de Windows 98 fuera compatible con Windows 95 y Windows 3, Microsoft decidio´ mantener un tipo de estructura de datos compatible con tales versiones. ´ en FAT-32 permitio´ resolver ese problema y se utilizar´ıa tambien Windows ME y NT. Las entradas de directorio continuaron siendo de 32 bytes pero se utilizaron los 10 bytes que se ten´ıan reservados anteriormente. Una entrada de directorio de Windows 98 contiene la siguiente ´ informacion: Nombre de archivo (8 bytes). ´ (3 bytes). Extension ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

46 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 98

Sistema de archivos de Windows 98 II Atributos (1 byte). NT (1 byte). Este campo permite asegurar la compatibilidad con Windows NT, desplegando los nombres de archivo en el caso ´ se permit´ıan mayusculas). correcto (para MS-DOS solo ´ Seg (1 byte). Es un campo complementario para la fecha y hora de ´ lo que permite una precision ´ de hasta 10 ms. creacion Fecha y hora (4 bytes). Ultimo acceso (2 bytes). Almacena la fecha de ultimo acceso (pero no la hora). 16 bits superiores del bloque inicial (2 bytes) . Con esto se permite que los numeros de bloque sean de 32 bits. ´ Fecha y hora de ultima ´ escritura (4 bytes). ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

47 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 98

Sistema de archivos de Windows 98 III 16 bits superiores del bloque inicial (2 bytes). ˜ de archivo (4 bytes). Dado que la cuenta es de bytes se Tamano pueden tener archivos hasta de 4GB (en teor´ıa).

´ para que se pudieran crear nombres de archivo largos La solucion y se mantuviera la compatibilidad con MS-DOS fue asociar a cada archivo dos nombres. Uno era el nombre largo que permit´ıa caracteres Unicode para la compatibilidad con Windows NT y el otro corto para la compatibilidad con MS-DOS.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

48 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 98

Sistema de archivos de Windows 98 IV Para convertir un nombre largo en un nombre corto se tomaban ´ los primero seis caracteres validos del nombre largo y se anexaba el sufijo ∼ N donde N es un numero consecutivo. ´ Si el archivo ten´ıa un nombre largo y deseaba almacenarse en MS-DOS entonces se agregaban bloques de entrada que conten´ıan el resto del nombre del archivo. Cada bloque adicional al de la entrada principal permit´ıa agregar 13 caracteres Unicode del modo siguiente: Secuencia (1 byte). 5 caracteres (10 bytes). Atributos (1 byte). ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

49 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 98

Sistema de archivos de Windows 98 V 0 (1 byte). ´ (1 byte). Suma de comprobacion 6 caracteres (12 bytes). 0 (2 bytes). 2 caracteres (4 bytes) .

Para que Windows 98 distinguiera entre bloques de entrada y bloques correspondientes a nombres de archivo largos, se utilizaba el valor 0 en los atributos. ´ 0 es un valor invalido para los atributos, por lo que los programas de MS-DOS viejos ignoran tales bloques. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

50 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 98

Sistema de archivos de Windows 98 VI Para llevar la cuenta de bloques que componen el nombre largo se utiliza el primer byte de la entrada (Secuencia). Puesto que el primer campo de Secuencia es de un byte podr´ıa pensarse en utilizar nombres tan largos como 28 ∗ 13 caracteres Unicode. ´ se utilizan 6 bits de ese byte y de hecho solo ´ se Sin embargo solo permiten nombres de hasta 260 caracteres Unicode. Los nombres largos se almacenan del siguiente modo: Se crea el nombre de archivo MS-DOS y correspondera´ a la ultima ´ entrada de directorio del archivo. Al nombre MS-DOS lo precede la primera parte del nombre largo, que a su vez es precedida por el resto del nombre. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

51 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 98

Sistema de archivos de Windows 98 VII Al principio de todas las entradas se encontrara´ la ultima parte del archivo.

´ se utiliza para que Windows 98 se de La suma de comprobacion cuenta de que el nombre MS-DOS que sigue a un nombre largo en verdad corresponde a dicha entrada. ´ crea tantas FAT-32 tiene la ventaja (sobre FAT-16) de que solo entradas de archivo como necesite. ´ no mantiene todas las entradas siempre en memoria, Ademas ´ una parte de ellas. sino solo ´ ¿Como se almacenar´ıa el nombre largo “Este es un nombre largo”? ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

52 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 2000

Sistema de archivos de Windows 2000 I Windows 2000 reconoce los sistemas de archivos FAT-16, FAT-32 y NTFS. NTFS fue creado espec´ıficamente para Windows NT e incorporado en Windows 2000. NTFS utiliza direcciones de disco de 64 bits y puede manejar particiones de hasta 264 bytes (en teor´ıa). Las caracter´ısticas principales de NTFS son: ´ limitados a 255 caracteres y se Los nombres de archivo estan permite Unicode. ´ limitadas a 32767 Las rutas completas de un archivo estan caracteres. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

53 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 2000

Sistema de archivos de Windows 2000 II Distingue entre mayusculas y minusculas (la API Win32 es la que ´ ´ no reconoce tal diferencia). Un archivo consiste de multiples atributos representados mediante ´ un flujo de bytes. Todos los archivos contienen algunos flujos cortos y algunos largos. Ejemplos de flujos cortos son el nombre del archivo y su identificador de objeto (de 64 bits). Ejemplos de flujos largos son todos los que contienen los datos del archivo. ´ La longitud maxima de un flujo es 264 bytes. La apertura de archivos devuelve un identificador (que se utiliza para leer y escribir el archivo). ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

54 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 2000

Sistema de archivos de Windows 2000 III La idea del uso de flujos se tomo´ de Apple Macintosh donde los archivos tienen dos flujos: la rama de datos y la rama de recursos. Los flujos de archivo permiten que un archivo pueda utilizarse con mayor eficiencia. ´ de texto Un ejemplo del uso de flujos de archivo es en la edicion ´ temporal donde se utilizan dos flujos: uno se utiliza para la version ´ final. del archivo (que se esta editando) y el otro para la version Las llamadas a funciones de la API Win32 para manipular archivos y directorios son similares a las equivalentes en Unix. ´ se presentan las principales funciones API Win32: A continuacion ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

55 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 2000

Sistema de archivos de Windows 2000 IV Principales funciones de la API Win32 para E/S de archivos CreateFile. Devuelve un identificador que permite crear o abrir un archivo. DeleteFile. Destruye un archivo. CloseHandle. Cierra un archivo. ReadFile. Lee los datos de un archivo. WriteFile. Escribe datos en un archivo. ´ SetFilePointer. Coloca el apuntador de archivo en una posicion espec´ıfica. GetFileAttributes. Devuelve las propiedades de archivo. ´ del archivo para exclusion ´ mutua. LockFile. Bloquea una region ´ del archivo. UnlockFile. Desbloquea una region ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

56 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 2000

Sistema de archivos de Windows 2000 V /*Ejemplo de uso de algunas funciones de la API de Windows*/ void copiarArchivo(){ HANDLE original, copia; DWORD cont; int s; char buffer[TAM BUFFER+1]; original = CreateFile(“APIWindows.c”, GENERIC READ, 0, NULL, OPEN EXISTING, 0, NULL); copia = CreateFile(“APIWindows(copia).c”, GENERIC WRITE, 0, NULL, CREATE ALWAYS, FILE ATTRIBUTE NORMAL, NULL);

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

57 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 2000

Sistema de archivos de Windows 2000 VI

do{ s = ReadFile(original, buffer, TAM BUFFER, &cont, NULL); printf(“s = %d %d\n”, s, cont); if(s && cont > 0) WriteFile(copia, buffer, cont, &cont, NULL); }while(s > 0 && cont > 0); CloseHandle(original); CloseHandle(copia); return; }

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

58 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 2000

Sistema de archivos de Windows 2000 VII Principales funciones de la API Win32 para administrar directorios CreateDirectory. Crea un nuevo directorio. RemoveDirectory. Elimina un directorio siempre y cuando este vac´ıo. FindFirstFile. Coloca el apuntador para comenzar a leer las entradas de un directorio. FindNextFile. Lee la siguiente entrada de directorio. MoveFile. Permite cambiar un archivo de directorio. SetCurrentDirectory. Cambia el directorio de trabajo actual.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

59 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 2000

Sistema de archivos de Windows 2000 VIII ´ NTFS es un sistema de archivos jerarquico y mantiene los conceptos de directorio de trabajo actual, de ruta absoluta y de ruta relativa. Cada volumen NTFS se conforma de archivos, directorios, mapas de bits y otras estructuras de datos. ´ lineal de bloques Cada volumen se organiza como una sucesion que puede variar entre los 512 bytes y 64 KB. La principal estructura de datos de cada volumen es la tabla maestra de archivos (MFT: Master File Table). ´ lineal de registros de tamano ˜ fijo (1 KB) La MFT es una sucesion y se compone de 13 elementos: ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

60 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 2000

Sistema de archivos de Windows 2000 IX 1

´ estandar: ´ Informacion contiene los bits indicadores, las marcas de hora, entre otros.

2

Nombre de archivo: en formato Unicode y de ser necesario se duplica para la compatibilidad con MS-DOS.

3

Descriptor de seguridad: ya no se utiliza este campo.

4

´ de registros MFT adicionales. Lista de atributos: ubicacion

5

Identificador de objeto: identificador de archivo de 64 bits unico ´ en este volumen.

6

´ ´ Punto de re-analisis: permite montajes y enlaces simbolicos.

7

Nombre de volumen: nombre del volumen al que pertenece.

8

´ del volumen al que pertenece. ´ de volumen: version Informacion

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

61 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 2000

Sistema de archivos de Windows 2000 X 9

Ra´ız ´ındice: para directorios.

10

´ de ´ındice: para directorios grandes. Asignacion

11

Mapa de bits: para directorios grandes.

12

Flujo unitario de registro: permite llevar el control de las entradas.

13

Datos: datos de flujo.

´ reservados para archivos de Los primeros 16 registros MFT estan metadatos de NTFS. Cada registro describe un archivo como cualquier otro. El nombre de estos archivos comienza con $ para denotar que son archivos de metadatos. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

62 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 2000

Sistema de archivos de Windows 2000 XI ´ se describen los 16 registros reservados de la A continuacion MFT. 1

´ situados los $Mft: tabla maestra de archivos. Indica donde estan bloques del archivo MFT para que el sistema pueda encontrar el archivo.

2

$MftMirr: es una copia de respaldo del archivo $Mft.

3

´ Permite $LogFile: es el archivo de registro de recuperacion. ´ antes de que se realice un cambio respaldar la informacion estructural en el sistema de archivos (como borrar o crear directorios).

4

´ acerca del volumen. $Volume: contiene informacion

5

´ de los atributos. $AttrDef: contiene la definicion

6

$: es el directorio ra´ız.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

63 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de Windows 2000

Sistema de archivos de Windows 2000 XII 7

$Bitmap: permite llevar el control del espacio utilizado mediante un mapa de bits.

8

$Boot: es el archivo cargador de auto-arranque.

9

´ $BadClus: indica cuales son los bloques defectuosos.

10

$Secure: contiene los descriptores de seguridad para todos los archivos.

11

´ de mayusculas $Upcase: es la tabla de conversion a minusculas. ´ ´

12

$Extend: es un directorio que contiene archivos para fines diversos.

´ reservados para uso Los ultimos cuatro bloques de la MFT estan ´ futuro. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

64 / 79

Ejemplos de sistemas de archivos

Breve historia de Unix

Breve historia de Unix I ´ a Unix fue el sistema MULTICS La primera aproximacion (MULTiplexed Information and Computing Service), creado por parcialmente por el MIT, GE y los Bell Labs en los 70’s. Luego Ken Thompson de los Bell Labs decidio´ escribir por su ´ sencilla de MULTICS en una PDP-7. cuenta una version ´ de los Bell Labs) Brian Kernighan (en ese entonces tambien ´ de Thompson UNICS (UNiplexed decidio´ llamar a la version ´ cambiar´ıa su Information and Computing Service) que despues nombre a UNIX. ´ de un Denis Ritchie comenzo´ a colaborar con ellos en la creacion nuevo UNIX para las PDP-11/20, PDP-11/45 y PDP-11/75. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

65 / 79

Ejemplos de sistemas de archivos

Breve historia de Unix

Breve historia de Unix II Para no estar re-escribiendo el SO para cada nuevo tipo de ´ maquina, Thompson decidio´ re-escribir Unix en un lenguaje de alto nivel: B . ´ Ritchie disenar´ ˜ ıa el sucesor de B, el lenguaje C, junto Despues con un excelente compilador. Luego Thompson y Ritchie re-escribir´ıan Unix en lenguaje C. En 1974 Thompson y Ritchie escribireron un excelente art´ıculo acerca de Unix y en 1984 recibir´ıan el premio Turing gracias a eso. A partir de ese momento se comenzaron a organizar numerosas reuniones cient´ıficas entorno a Unix. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

66 / 79

Ejemplos de sistemas de archivos

Breve historia de Unix

Breve historia de Unix III ´ 6 de Unix ven´ıa el codigo ´ Con el libro de la version fuente: 8,200 l´ıneas en C y 900 en ensamblador. ´ 7 fue la primer version ´ portatil ´ de Unix, disenada ˜ La version para la PDP-11. ´ 7 ten´ıa varias mejoras y su codigo ´ La version fuente consist´ıs de: 18,800 l´ıneas en C y 2,100 en ensamblador. A mediados de los 80 Unix se usaba ampliamente en mini-computadoras y estaciones de trabajo. ´ 7 y la Incluso Microsoft adquirio´ la licencia de la version ´ re-escribio´ vendiendola como XENIX. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

67 / 79

Ejemplos de sistemas de archivos

Breve historia de Unix

Breve historia de Unix IV ´ la universidad de Berkeley adquirio´ la version ´ 6y Despues, escribio´ una mejora considerable del sistema llamada Berkeley Unix. Para estandarizar las diferentes versiones de Unix que se iban ´ desarrollando se decidio´ hacer el estandar POSIX (Portable Operating System unIX). ˜ de En 1987, Tanenbaum escribio´ MINIX basado en un diseno microkernel. MINIX pretend´ıa proporcionar un m´ınimo de funcionalidad en el Kernel.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

68 / 79

Ejemplos de sistemas de archivos

Breve historia de Unix

Breve historia de Unix V ´ sencillos de entender que las Los microkernel suelen ser mas versiones monol´ıticas de los sistemas. ´ Linus Torvalds, Luego en 1991, el estudiante Finlandes, escribio´ Linux 0.01 en base a Unix. ´ El codigo de Linux 0.01 eran: 9,300 l´ıneas en C y 950 en ensamblador. ´ En 1994, salio´ Linux 1.0, con 195,000 l´ıneas de codigo en C y menos de 8,000 en ensamblador. ´ En 1996, salio´ Linux 120, con 487,000 l´ıneas de codigo en C y 8,000 en ensamblador. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

69 / 79

Ejemplos de sistemas de archivos

Breve historia de Unix

Breve historia de Unix VI Linux maneja un modelo de negocio de software libre. La licencia de Linux fue desarrollada por Richard Stallman, fundador de Free Software Foundation. Aunque Linux es gratuito, GPL (Licencia Publica de GNU) ´ ´ especifica lo que el usuario puede y no puede hacer al codigo. Los usuarios pueden usar, copiar, modificar y redistribuirlo. ´ es que Linux no puede venderse o La principal restriccion ´ redistribuirse sin incluir el codigo. ´ visite www.linux.org. Para mas informacion ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

70 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de UNIX V7

Sistema de archivos de UNIX V7 I El sistema de archivos V7 fue empleado en la PDP-11. ´ El sistema de archivos tiene la estructura de un arbol que comienza en el directorio ra´ız. ´ Este sistema permite agregar enlaces formando una grafica ac´ıclica dirigida. Los nombres de archivo pueden medir hasta 14 caracteres ASCII ´ de / y ’\0’. con excepcion Una entrada de directorio Unix contiene una entrada para cada archivo de ese directorio. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

71 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de UNIX V7

Sistema de archivos de UNIX V7 II ´ 16 bytes (2 para el Cada entrada de directorio contiene solo numero del nodo-´ındice y 14 para el nombre). ´ ˜ del nodo-´ındice limita el numero El tamano de archivos a 64 KB. ´ ´ de algunos atributos Los nodos-´ındice contienen la informacion como: ˜ del archivo. El tamano ´ La hora de creacion. La hora del ultimo acceso. ´ ´ La hora de la ultima modificacion. ´ ˜ El dueno. El grupo. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

72 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de UNIX V7

Sistema de archivos de UNIX V7 III ´ de proteccion. ´ La informacion La cuenta del numero de entradas del directorio. ´

Los nodos-´ındice cuentan con espacio para indicar hasta 10 direcciones de disco donde se encuentra el archivo. ´ de 10 direcciones entonces se Si los archivos requieren mas ´ de un utiliza una de las direcciones para indicar la direccion bloque llamado bloque indirecto. ´ Si dicho bloque no es suficiente entonces se utiliza una direccion que permite referenciar a un segundo bloque llamado bloque indirecto doble e incluso hasta un tercer bloque llamado bloque indirecto triple. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

73 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de UNIX V7

Sistema de archivos de UNIX V7 IV

Figura : Estructura del nodo-´ındice de Unix. Tomado de http://es.wikipedia.org/wiki/Inodo

. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

74 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de UNIX V7

Sistema de archivos de UNIX V7 V Cuando se abre un archivo el sistema de archivos debe tomar el nombre y localizar los bloques de disco. ´ de nombres de archivo es el El algoritmo de localizacion siguiente: 1

El sistema de archivos localiza el directorio ra´ız. ´ de localizar pues el nodo-´ındice de este se encuentra Este es facil en un lugar fijo.

2

Se comienzan a buscar cada uno de los componentes de la ruta. ´ de los nodos-´ındice en el disco es facil ´ pues todos La localizacion ´ fija en el disco y siempre se conoce su numero. tienen una posicion ´

3

´ Cuando se llega al archivo deseado se lee el nodo-´ındice de este y se coloca en la memoria.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

75 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de UNIX V7

Sistema de archivos de UNIX V7 VI

Gracias a que los directorios contienen entradas para los archivos ´ obtener los numeros . y .. es facil de nodo-´ındice. ´ La entrada . tiene el numero de nodo-´ındice del directorio actual y ´ .. la del directorio padre. No se requiere manejo especial para los nombres . y .. pues para el sistema son simplemente nombres ordinarios de archivos.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

76 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de UNIX

Sistema de archivos de UNIX I ´ entre tipos de archivo (ASCII, En Unix no se hace distincion binarios, etc.). ˜ de archivo fue incrementado a 255 caracteres a partir El tamano del sistema Berkeley Unix. En este caso, las extensiones de los archivos pueden tener cualquier longitud e incluso puede haber varias extensiones para un mismo archivo. ´ se llama “/”. El directorio ra´ız tambien Los principales directorios del sistema son: bin. Contiene los programas binarios. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

77 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de UNIX

Sistema de archivos de UNIX II

dev. Contiene los archivos especiales para los dispositivos de E/S. etc. Contiene los archivos de sistema diversos. lib. Contiene las bibliotecas. usr. Contiene los directorios de usuarios.

´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

78 / 79

Ejemplos de sistemas de archivos

Sistema de archivos de UNIX

Sistema de archivos de UNIX III Principales llamadas al sistema en Unix para E/S create(name, mode): permite crear un archivo nuevo open(file, how, . . . ): abre un archivo para lectura/escritura. close(ref name): cierra un archivo abierto. read(ref name, buffer, nbytes): lee datos de un archivo. write(ref name, buffer, nbytes): escribe datos en un archivo. lseek(ref name, offset, whence): posiciona en otro lugar el apuntador de archivo. ´ de los atributos. stat(name, &buf): obtiene la informacion ´ pipe(&ref name[0]): crea una canalizacion. fcntl(ref name, cmd, . . . ): para bloqueos. ´ Sergio Luis Perez (UAM C UAJIMALPA)

Curso de Sistemas Operativos

79 / 79

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.