CUESTIONARIO DE REPASO.
Cuestiones de Repaso:
12.1. ¿Cuál es la diferencia entre un campo y un registro?
Un campo es un elemento básico de datos y un registro es una agrupación de campos.
12.2. ¿Cuál es la diferencia entre un archivo y una base de datos?
Un archivo es una agrupación de registros similares y una base de datos es un conjunto de datos relacionados, normalmente una base de datos está diseñada para ser usada por varias aplicaciones diferentes y un archivo no.
12.3. ¿Qué es un sistema de gestión de archivos?
Un sistema de gestión de archivos es un conjunto de software del sistema que ofrece a los usuarios y a las aplicaciones servicios relativos al empleo de archivos. (página 515)
12.4. ¿Qué criterios son importantes en la elección de una organización de archivos?
· acceso rápido
· facilidad de actualización
· economía de almacenamiento
· mantenimiento sencillo
· fiabilidad
12.5. Enumere y defina brevemente cinco organizaciones de archivos.
· pilas
· archivos secuenciales
· archivos secuenciales indexados
· archivos indexados
· archivos directos o de dispersión (hash) página 519
12.6. ¿Por qué es el tiempo medio de búsqueda de un registro menor en un archivo secuencial indexado que en un archivo secuencial?
Porque se accede directamente a través del índice.
12.7. ¿Cuáles son las operaciones típicas que se pueden realizar sobre un directorio'?
· buscar
· crear directorio
· borrar archivo
· Enumerar directorio
· Actualizar directorio (página 525)
12.8. ¿Cuál es la relación entre un nombre de ruta y un directorio de trabajo?
Un nombre de ruta termina con el nombre de un archivo y el directorio de trabajo es el que está asociado a ese archivo.
12.9. ¿Cuáles son los derechos de acceso típicos que se pueden conceder o denegar a un usuario sobre un archivo?
· ninguno
· conocimiento
· ejecución
· lectura
· adición
· actualización
· cambio de protección
· borrado (página 528)
12.10. Enumere y defina brevemente tres métodos de agrupamiento
· Bloques fijos: se usan registros de longitud fija, guardándose en cada bloque un número entero de registros. Puede existir espacio sin usar al final de cada bloque. Esto se denomina fragmentación interna.
· Bloques de longitud variable con tramos: se usan registros de longitud variable que se agrupan en bloques sin dejar espacio sin usar. De este modo, algunos registros deben abarcar dos bloques, indicando el tramo de continuación con un puntero al bloque siguiente.
· Bloques de longitud variable sin tramos: se usan registros de longitud variable, pero no se dividen en tramos. En la mayoría de los bloques habrá un espacio desperdiciado, debido a la imposibilidad de aprovechar el resto del bloque si el registro siguiente es mayor que el espacio sin usar restante.
12.10. Enumere y defina brevemente tres métodos de asignación de archivos
·Asignación contigua: cuando se crea una archivo se crea un único conjunto contiguo de bloques, los bloques están juntos en el disco.
·Asignación encadenada: cada bloque del archivo contiene un puntero al siguiente bloque, los bloques pueden estar dispersos en el disco.
·Asignación indexada: hay un índice que contiene las direcciones de los bloques del archivo, los bloques pueden estar dispersos en el disco.
Problemas:
12.4. Los directorios se pueden implementar como <<ficheros especiales>> que solo se pueden acceder de una forma limitada o como ficheros de datos ordinarios ¿Cuáles son las ventajas y desventajas de cada opción?
Directorios implementados como ficheros especiales con acceso de de manera limitada:
Los directorios accesados de manera limitada, comúnmente son directorios en los cuales esta almacenada información referente al sistema operativo, o utilidades necesarias para la correcta ejecución del sistema operativo. Además de los archivos normales de datos, dentro de la estructura de un sistema UNIX existen unos archivos especiales. Los nombres de estos archivos identifican los dispositivos físicos hardware del equipo:
• Discos magnéticos
• Cintas magnéticas
• Terminales
• Líneas de comunicaciones
• Etc.
Todos los dispositivos tienen un controlador responsable de comunicarse con este dispositivo. Dentro del sistema hay una tabla que apunta a los diferentes controladores de los dispositivos. Todos los dispositivos son tratados como archivos. Existen archivos especiales para cada línea de comunicaciones, disco, unidad de cinta magnética, memoria principal, etc. Estos archivos en realidad están vacíos. Tienen por misión asociar entre sí los dispositivos y sus respectivos drivers.
El sistema emplea dos números enteros, denominados número principal (14 bits) y número secundario (18 bits) y almacenados en el i-nodo del archivo, para acceder al dispositivo asociado. El número principal identifica una clase de dispositivo y el número secundario identifica a un elemento de dicha clase.
Las ventajas de tratar las unidades de entrada/salida de esta forma son:
•Los archivos y dispositivos son tratados lo más similarmente posible.
•Los nombres de ambos son pasados a los programas de la misma forma.
•Los archivos especiales están sujetos al mismo tipo de protección de acceso que los archivos y directorios ordinarios.
Entre sus desventajas están:
•Como son estandarizados, la ruta de acceso a los mismos, es similar en diversos terminales, lo que crea un riesgo de accesibilidad por programas o utilidades no deseadas.
•Puede haber conflictos cuando más de un controlador es asignado al mismo dispositivo y ambos tratan de ejecutarse como controlador actual.
Directorios como archivos ordinarios de datos:
Los directorios que son accesados como archivos ordinarios de datos son los que han sido creados la mayoría de las veces por parte del usuario, o aplicaciones generales, no relativas al sistema operativo, como utilidades.
Entre sus ventajas están:
•Son de fácil entendimiento para el usuario, ya que comúnmente los nombres lógicos han sido asignados por el usuario o son entendibles o asociables a las aplicaciones.
•Están sujetos a protecciones de acceso por el sistema operativo. Son de fácil navegación a través de los nombres, y suelen identificar claramente el contenido interno de los mismos.
Entre sus desventajas están:
•Son relativos al sistema, y características especiales definidas por el usuario, por lo cual, no es necesariamente entendible por usuarios en otros idiomas.
•Puede crear conflicto de referencias cuando una aplicación busca ciertas utilidades bajo un nombre, pero no las encuentra porque el directorio de acceso posee nombres diferentes en otros idiomas.
12.5. Algunos sistemas operativos poseen un sistema de ficheros estructurado en árbol, pero limitan la profundidad del árbol hasta un número pequeño de niveles. ¿Qué efecto causa este límite en los usuarios? ¿Cómo simplifica esto el diseño del sistema operativo (si lo hace)?
El sistema operativo UNIX está diseñado para manejar información contenida normalmente en discos. Para que esta manipulación sea realmente efectiva, es necesario que la información esté organizada de alguna forma. La manera estándar de organizar la información es en archivos. Los archivos son localizados dentro del disco porque son apuntados desde un lugar determinado, a este lugar se le denomina directorio.
Por otro lado, en UNIX no se utiliza un único directorio para apuntar a todos los archivos del, sino que se crea una estructura jerárquica de directorios conocida como estructura en árbol.
Aunque en un principio pueda parecer una estructura excesivamente complicada por la amplia ramificación de los directorios, esta organización permite agrupar los archivos de los diferentes usuarios e incluso de las diferentes aplicaciones en directorios separados, con lo que se evita el que se interfieran entre sí. Por otro lado, un mismo usuario puede organizar su propia información separando los archivos en diferentes directorios de acuerdo a su contenido.
Los usuarios comúnmente no notarían el límite de la profundidad de los árboles, pues es más común que guarden sus archivos dentro del mismo nivel, o creen otros directorios al mismo nivel, más probable sería que las aplicaciones demandaran más profundidad, pero tampoco sucede, pues con el objetivo de simplificar las rutas de acceso a los archivos y librerías, se opta por crear dentro de un archivo, varios subdirectorios, pero los mismos no alcanzan una profundidad excesiva.
Esto simplifica el diseño del sistema de archivo, por ejemplo en UNIX, al momento de crear las tablas de i-nodos pues se evita que los i-nodos sean dependientes de una ruta de acceso, creando problemas si se corrompe la lista, por lo cual las locaciones serian más fáciles de recuperarse si el árbol posee una menor profundidad.
12.6. Considérese un sistema de archivos jerárquico en el que el espacio libre se mantiene mediante una lista de espacio libre. •Supóngase que el puntero al espacio libre se pierde. ¿Puede el sistema reconstruir la lista de espacio libre?
Si el puntero al espacio libre se pierde, es muy probable que si solo se usaba una técnica indexada, se pierda la lista actual de espacio libre, mas existen muchas y diversas técnicas que permiten la creación de la lista del espacio libre, como por ejemplo el vector bit, que posee una ventaja ya que muchos procesadores cuentan con instrucciones de manipulación de bits, y este método es usado por el MacOS, e Intel a partir del 80386 y Motorola a partir del 68020 tienen instrucciones que ayudan a la creación del vector bit. El único problema es si el vector no se mantiene en memoria, pero como solución, el disco duro puede ser partido en clusters, y muchos sistemas operativos cuentan con utilidades de análisis de unidades fijas, lo que ayuda a reconstruir la lista de espacio libre, así como detectar sectores defectuosos.
Además, en sistemas de archivos como FAT, la administración de espacio libre está incorporada en la propia estructura de asignación.
•Sugiérase un esquema que garantice que el puntero nunca se pierde como resultado de un único fallo de memoria.
Un esquema que garantice que el puntero no se pierda como resultado de un fallo en memoria puede ser el usado por UNIX, el de mantener los bloques de índice cerca de los bloques de datos, para reducir el tiempo de búsqueda, o usar la técnica de agrupamiento, que es una modificación de la técnica de lista enlazada, en agrupamiento, se aprovecha el espacio de los bloques libres para almacenar las direcciones de estos bloques libres, lo que permite encontrar más rápidamente las direcciones de los bloques libres, y como las mismas están almacenadas en varios bloques, es más fácil evitar la pérdida del puntero lógico.