• Introducción: Es la parte del S.O. encargada de administrar el almacenamiento secundario. Las funciones básicas que debe realizar un sistema de gestión de archivos son: ♦ Crear un archivo, mediante la definición del nombre, el espacio necesario, etc. ♦ Borrar un archivo, liberando el espacio que este ocupaba. ♦ Abrir un archivo, se puede abrir para realizar varias operaciones(lectura, escritura, ejecución). ♦ Cerrar un archivo o fichero. ♦ Consulta. Aparte de las funciones básicas el sistema de archivos debe proporcionar otro tipo de ayudas, como por ejemplo: − Compartir archivos entre los usuarios. − Permitir la transferencia de datos de unos archivos a otros. − Gestión de soportes físicos. − Seguridad y protección de archivos. − Facilitar a los usuarios la posibilidad de estructurar los archivos de la manera más adecuada. En general, un sistema de gestión de archivos debe dar una visión lógica de la organización de los datos. Los datos están jerarquizados según un modelo general: &En el 1er nivel están los bit (0,1). &En el 2º nivel está el byte o carácter(8 bits). &En el 3er nivel está el campo, es un conjunto de caracteres relacionados. &En el 4º nivel está el registro, son los campos relacionados. &En el 5º nivel están los ficheros o archivos, que son registros relacionados. &En el 6º nivel están las B.D., que son un conjunto de archivos relacionados. Las RUTINAS BÁSICAS de un sistema de gestión de archivos son las siguientes: • Rutina de sistema de archivo simbólico: A través del nombre del archivo se crea un identificador único. • Rutina de archivos básicos: Mediante el identificador único se localiza la entrada del directorio básico, que contiene el tamaño, el nº de registros, la dirección de comienzo y el tipo de acceso. • Rutina de control de acceso: Se encarga de verificar el control del acceso al archivo. • Rutina de asignación: Controla los bloques no utilizados en los dispositivos. • Rutina de estrategia para dispositivos: Se encarga de convertir el nº de bloque al formato requerido por el dispositivo. • Rutina de planificación de E/S: Son las encargadas de realizar la lectura o escritura en el bloque solicitado. 1 • Ficheros o Archivos. Un fichero es un conjunto de información lógica relacionada entre si. Conjunto de bits, bytes o registros cuyo significado lo proporciona el diseñador del fichero. Para referirnos a un fichero debemos proporcionarle un nombre y algunas características como pueden ser el tipo de fichero, la forma de acceso, etc. Los métodos de organización lógica más frecuentes son los siguientes: • Organización Secuencial: Un archivo con OS es una sucesión de registros almacenados consecutivamente sobre el soporte externo, de tal modo que para acceder al registro n es obligatorio pasar por todos los registros n −1 que le preceden. Los registros se graban consecutivamente cuando el archivo se crea, y se debe acceder consecutivamente cuando se leen los registros. El orden físico en el que se grabaron los registros es el orden el que se leerán los mismos. Todos los tipos de dispositivos de memoria auxiliar soportan la ordenación secuencial. • Organización Secuencial Indexada: Un archivo está organizado en forma OSI si el tipo de sus registros contiene un campo clave identificador. Los registros están situados en un soporte direccionable por el orden de los valores indicados por la clave. Un índice para cada posición direccionable, la dirección de la posición y el valor de la clave; En esencia el índice contiene la clave del último registro y la dirección de acceso al primer registro del bloque. • Organización Directa O Relativa: Un archivo está organizado de modo directo o relativo cuando el orden físico no corresponde con el orden lógico, accede a los datos mediante su posición, es decir, el lugar relativo que ocupa. El programador creará una relación perfectamente definida entre la clave indicativa de cada registro y su posición física, a esto se llama función de conversión de claves o HASH. Las operaciones que podemos realizar sobre un fichero son las siguientes: • Creación • Lectura • Escritura • Borrado. • Modificar • Apertura y Cierre • Restaurar • Editar • Copiar • Renombrar 3. Organización de los discos. Nos remitimos a la organización del disco duro. 4. Planificación de los discos. En sistemas multiprogramados se producen peticiones para leer o escribir registros de cómo puedan ser atendidas por el sistema de discos, con lo cual es frecuente encontrarse colas de espera en los dispositivos de discos. La mejor planificación es aquella que requiere menos movimientos mecánicos del sistema del disco; Los algoritmos que vamos a tratar intentan optimizar la búsqueda de información con cabezas móviles. Los planificadores son los siguientes: • Planificación FCFS: La primera petición que llega es la primera en servirse y no hay reordenamiento en la cola. 2 Supongamos una cola del disco con las siguientes pistas solicitadas: 37,98,75,96,125,212,15,18 y la cabeza de lectura y escritura está en la pista 220, veamos los movimientos que debemos hacer para atender las peticiones. E/S=62. 62 37 98 75 96 125 212 15 18 25 61 23 21 29 87 127 3 446 • Planificación SSTF: Sirve la petición que se encuentra a la distancia más corta de la pista que se acaba de servir. El problema de este algoritmo es que las pistas centrales reciben más atención que las exteriores. 62 75 96 98 125 212 37 18 15 13 21 2 27 87 175 19 3 347 • Planificación SCAN: Selecciona la petición que da una distancia de búsqueda más corta pero en una sola dirección. Si mientras se van atendiendo las solicitudes aparecen otras nuevas, estas serán atendidas pero produciendo esperas para las solicitudes anteriores. El sentido ha de ser indicado bien de forma explícita o diciendo dónde esta la cabeza y cuál fue la última pista atendida. 62 75 96 98 125 212 220 37 18 15 • (C)LOOK: No llega a los extremos. 5. Gestión del espacio libre Es necesario que el sistema controle los bloques libres, ya que los ficheros se crean y borran frecuentemente. Una de las formas de tener localizados los huecos libres consiste en una lista, la cual podemos implementar de dos formas • Lista en la que cada bloque tiene un puntero al siguiente bloque no asignado. B. libre Puntero LISTA A • Lista indicando el nº de bloques libres consecutivos que hay a continuación del bloque referenciado. B.libre Nº Libres LISTA B • A través de un mapa de bits, tantos bits como bloques libres. Si es 0 está asignado, si es 1 está asignado. Tendrá tantos bits como bloques tenga el disco. Ej: 100100101001 6. Asignación del almacenamiento: La estrategia de asignación del almacenamiento secundario está relacionada con la eficacia de los accesos a los ficheros. El tiempo que tarde en variarse un proceso variará en función del tiempo que se requiera para acceder a los bloques que contienen la información necesaria. Existen 2 estrategias básicas de asignación: • ASIGNACIÓN CONTIGUA: Cada fichero ocupa un conjunto de bloques contiguos en el disco, con la 3 dirección de comienzo y el tamaño podemos acceder a cualquier bloque del fichero. Uno de los problemas que nos podemos encontrar con esta asignación es la asignación de espacios nuevos a ficheros. F2 F4 = 3 bloques, no puedes meterlo DISCO porque los 3 bloques que tienes no son contiguos F1 F3 • ASIGNACIÓN NO CONTIGUA: al no conocerse de antemano el tamaño de los ficheros los S.O. usan la asignación no contigua. La forma de implantar la asignación no contigua puede ser a través de: • Listas enlazadas: En las que cada fichero es una lista enlazada de bloques, el 1er bloque está en una dirección marcada por un puntero de encabezamiento grabado en el directorio. B0 = Bloque inicial del fichero es igual a6, apunta al sig. bloque donde continua el fichero. • Asignación Indexada: El directorio contiene la dirección del bloque de índices donde están contenidos los punteros a los bloques del fichero. 4 2 3 5 6 . . . 3 5 4 6 8 . . . 2 5 8 10 13 . . . 1 1 0 1 5 . . . 5