

Unidad 4 - Sistema de Ficheros
4.1 Funciones del sistema de ficheros.
Con este sistema los usuarios deben poder crear, modificar y borrar archivos así como también se podrán compartir los archivos de una manera cuidadosamente controlada. Además de poder ordenar la transferencia de información entre archivos. Se deben proporcionar posibilidades de “respaldo” y “recuperación” para prevenirse contra:
• La pérdida accidental de información.
• La destrucción maliciosa de información.
También se podrá realizar la referencia a los archivos mediante “Nombres Simbólicos”, brindando “Independencia de Dispositivos”. En ambientes sensibles, el sistema de archivos debe proporcionar posibilidades de “Cifrado” y “Descifrado”. El sistema de archivos brindará una interface favorable al usuario:
• Debe suministrar una “visión lógica” de los datos y de las funciones que serán ejecutadas, en vez de una “visión física”.
• El usuario no debe tener que preocuparse por:
• Los dispositivos particulares.
• Dónde serán almacenados los datos.
• El formato de los datos en los dispositivos.
4.2 Fichero.
Conjunto de información al que se le ha asignado un nombre. Ejemplos de fichero son un mensaje de correo, o un programa que puede ser ejecutado. Esencialmente, cualquier cosa salvada en el disco es guardada en un fichero individual.
Los ficheros son identificados por sus nombres. Por ejemplo, el fichero que contiene su historial podría ser salvado con el nombre history-paper. Estos nombres usualmente identifican el fichero y su contenido de alguna forma significativa. No hay un formato estándar para los nombres de los ficheros como lo hay en MS-DOS y en otros sistemas operativos; en general estos pueden contener cualquier carácter (excepto /_), y están limitados a 256 caracteres de longitud.


4.3 El fichero como tipo abstracto de datos: operaciones. Tipos de ficheros. Bloques lógicos.
• Windows: regulares, directorios
• Unix: regulares, directorios, especiales, pseudoficheros
• Regulares: información del usuario, del tipo
• Binarios: ejecutables, archivos
• ASCII: líneas de texto acabadas en: cr o
• lf (UNIX), o crlf (MSDOS)
• Directorios: mantienen la estructura del sistema de ficheros
• Especiales de caracteres: impresora, terminal, network
• Especiales de bloques: discos, disquetes
4.4 Operaciones de ficheros.
Las operaciones que ofrece el sistema de ficheros suelen ser: Create, Delete, Open, Close, Read, Write, Append, Seek, Get Attributes, Set Attributes y Rename .
• Create. El archivo se crea sin datos. El propósito de la llamada es anunciar que va a haber un archivo y establecer algunos de los atributos.
• Delete. Cuando el archivo ya no se necesita, es preciso eliminarlo para desocupar el espacio en disco. Siempre hay una llamada al sistema para este fin.
• Open. Antes de usar un archivo , un proceso debe abrirlo. El propósito de la llamada Open es permitir al sistema que obtenga los atributos y la lista de direcciones de disco. Es decir, el sistema se prepara para hacer uso del fichero.
• Close. Una vez concluidos todos los accesos, los atributos y las direcciones de disco ya no son necesarios, por lo que se debe cerrar el archivo para liberar el espacio correspondiente en las tablas internas. Muchos sistemas fomentan esto limitando a los procesos a un número máximo de archivos abiertos.
• Read. Se leen datos del archivo. Por lo regular, los bytes leídos provienen de la posición actual dentro del fichero abierto. Es decir, si en una operación anterior se había leído hasta un determinado byte, en la siguiente lectura se comienza a leer desde la posición donde anteriormente nos habíamos quedado. El invocador debe especificar cuántos datos se necesitan y también debe suministrar un buffer para colocarlos.
• Write. Se escriben datos en el archivo, también por lo general, en la posición actual como ocurría con la lectura. Si dicha posición está al final del archivo, el tamaño del archivo aumenta en tantos bytes como contengan los datos escritos. Si la posición actual no está al final del archivo, se sobreescriben en los datos existentes.
• Append. Esta llamada es una forma restringida de Write que solo puede agregar datos al final del archivo. Los sistemas que ofrecen un juego mínimo de llamadas al sistema generalmente no cuentan con Append.
• Seek. En el caso de archivos de acceso aleatorio, se requiere de un método para especificar de donde extraer los datos. Un enfoque común es tener una llamada al sistema, que ajuste el apuntador a la posición actual haciéndole que apunte a un lugar específico del archivo. Una vez efectuada esta llamada, se pueden leer datos de esa posición o escribirlos en ella.
• Get Attributes. Es frecuente que los procesos necesiten leer los atributos de un archivo para realizar su trabajo. Para eso existe esta llamada que se encarga de leerlos y devolvérselos al proceso que los haya solicitado.
• Set Attributes. Algunos de los archivos pueden ser establecidos por el usuario y modificarse después de que se creo el archivo. Esta llamada al sistema lo hace posible. Por ejemplo se usa para modificar los flags del fichero.
• Rename. Es común que un usuario necesite cambiar el nombre de un archivo existente. Esta llamada permite hacerlo, aunque no siempre es indispensable, ya que el archivo por lo regular puede copiarse en un archivo nuevo con el nombre, eliminando después el viejo.
4.5 Métodos de acceso: directo, secuencial, indexado.
Método de acceso directo a memoria: (DMA, del inglés direct memory access) permite a cierto tipo de componentes de una computadora acceder a la memoria del sistema para leer o escribir independientemente de la unidad central de procesamiento (CPU) principal. Muchos sistemas hardware utilizan DMA, incluyendo controladores de unidades de disco, tarjetas gráficas y tarjetas de sonido. DMA es una característica esencial en todos los ordenadores modernos, ya que permite a dispositivos de diferentes velocidades comunicarse sin someter a la CPU a una carga masiva de interrupciones. Método secuencial: significa que un grupo de elementos es accedido en un predeterminado orden secuencial.
Método Indexado: Estos retienen la limitación del archivo secuencial: la eficacia del proceso se limita al basado en un único campo de archivo. Protocolos de uso de ficheros: Un protocolo para la transferencia de archivos o de protocolo de transferencia de archivos es una convención o una norma que controla o permite la transferencia de archivos entre dos computadoras.
Semánticas de consistencia: En lógica, la consistencia o consistencia lógica es una propiedad que pueden tener los conjuntos de fórmulas.
4.6 Organización del sistema de ficheros.
Se refiere a las diferentes maneras en las que puede ser organizada la información de los archivos, así como las diferentes maneras en que ésta puede ser accesada. Dado que hay 2 niveles de visión de los archivos (físico y lógico), se puede hablar también de 2 aspectos de organización de archivos: Organización de archivos lógicos y de archivos físicos. Una forma de organización de un sistema de archivos puede ser la siguiente:
• Se utiliza una “raíz” para indicar en qué parte del disco comienza el “directorio raíz”.
• El “directorio raíz” apunta a los “directorios de usuarios”.
• Un “directorio de usuario” contiene una entrada para cada uno de los archivos del usuario.
• Cada entrada de archivo apunta al lugar del disco donde está almacenado el archivo referenciado.
Los nombres de archivos solo necesitan ser únicos dentro de un directorio de usuario dado. El nombre del sistema para un archivo dado debe ser único para el sistema de archivos. En sistemas de archivo “jerárquicos” el nombre del sistema para un archivo suele estar formado como el “nombre de la trayectoria” del directorio raíz al archivo.

4.7 Directorios.


4.8 Concepto. Nominación de ficheros: rutas. Organización en dos niveles. Organizaciones jerárquicas en árbol. Organizaciones no arbóreas: enlaces, alias. Implementación.
EL ÁRBOL DE DIRECTORIOS La mayoría de los sistemas UNIX tienen una distribución de ficheros estándar, de forma que recursos y ficheros puedan ser fácilmente localizados. Esta distribución forma el árbol de directorios, el cual comienza en el directorio "/", también conocido como "directorio raíz". Directamente por debajo de / hay algunos subdirectorios importantes: /bin, /etc, /dev y /usr, entre otros. Estos a su vez contienen otros directorios con ficheros de configuración del sistema, programas, etc.
En particular, cada usuario tiene un directorio "home". Este es el directorio en el que el usuario guardara sus ficheros. Usualmente, los directorios home de los usuarios cuelgan de /home y son nombrados con el nombre del usuario al que pertenecen.
EL DIRECTORIO RAÍZ
BinBinarios de comandos esenciales
boot Archivos estáticos de cargador arranque (boot-loader)
dev Archivos de dispositivos
etcConfiguración del sistema local-máquina
home Directorios home de los usuarios
lib Librerías compartidas
mnt Punto de montaje de particiones temporales
root Directorio hogar del usuario root
sbizBinarios del sistema esenciales
tmp Archivos temporales
usr Segunda jerarquía mayor
var Información variable
IMPLEMENTACION: La implementación es el proceso mediante el cual se distribuye una aplicación o componente finalizado para su instalación en otros equipos. La implementación es un proceso de varias fases que empieza cuando se crea una aplicación en el equipo de un desarrollador y termina cuando está instalada y lista para ejecutarse en el equipo de un usuario.
4.9 Protección.
Control de acceso que hace referencia a las características de seguridad que controlan quien puede obtener acceso a los recursos de un sistema operativo. Las aplicaciones llaman a las funciones de control de acceso para establecer quién puede obtener acceso a los recursos específicos o controlar el acceso a los recursos proporcionados por la aplicación. Este deberá tener la flexibilidad suficiente para poder imponer una diversidad de políticas y mecanismos.
La protección se refiere a los mecanismos para controlar el acceso de programas, procesos, o usuarios a los recursos definidos por un sistema de computación. Seguridad es la serie de problemas relativos a asegurar la integridad del sistema y sus datos.
4.10 Listas de control de acceso. Tipos de operaciones. Propietarios.
Permisos. Listas de control de acceso: Una Lista de Control de Acceso o ACL un concepto de seguridad informática usado para fomentar la separación de privilegios. Es una forma de determinar los permisos de acceso apropiados a un determinado objeto, dependiendo de ciertos aspectos del proceso que hace el pedido.
Las ACLs permiten controlar el flujo del tráfico en equipos de redes, tales como routers y switches. Su principal objetivo es filtrar tráfico, permitiendo o denegando el tráfico de red de acuerdo a alguna condición. Sin embargo, también tienen usos adicionales, como por ejemplo, distinguir “tráfico interesante” (tráfico suficientemente importante como para activar o mantener una conexión) en ISDN.
4.11 Implementación del sistema de ficheros.
Se emplean diversos métodos en los diferentes sistemas operativos. Algunos de ellos son:
Asignación Continua: El esquema de asignación más sencillo es almacenar cada archivo como un bloque contigua de datos en el disco. Asignación por Listas Enlazadas: Es guardar cada uno como una lista enlazada de bloques de disco. Con este método es posible utilizar todos los bloques. No se pierde espacio por fragmentación del disco.
4.12 Arquitecturas típicas.
La arquitectura de computadoras es el diseño conceptual y la estructura operacional fundamental de un sistema de computadora. Es decir, es un modelo y una descripción funcional de los requerimientos y las implementaciones de diseño para varias partes de una computadora, con especial interés en la forma en que la unidad central de proceso (UCP) trabaja internamente y accede a las direcciones de memoria. También suele definirse como la forma de seleccionar e interconectar componentes de hardware para crear computadoras según los requerimientos de funcionalidad, rendimiento y costo.
El ordenador recibe y envía la información a través de los periféricos por medio de los canales. La UCP es la encargada de procesar la información que le llega al ordenador. El intercambio de información se tiene que hacer con los periféricos y la UCP. Todas aquellas unidades de un sistema exceptuando la UCP se denomina periférico, por lo que el ordenador tiene dos partes bien diferenciadas, que son: la UCP (encargada de ejecutar programas y que está compuesta por la memoria principal, la UAL y la UC) y los periféricos (que pueden ser de entrada, salida, entrada-salida y comunicaciones).
4.14 Estructuras para directorios y ficheros. Nodos-i. Soporte de múltiples discos.

Bajo el concepto de estructura hipertextual se suelen agrupar 3 conceptos distintos que hacen referencia a diferentes aspectos del hipertexto. Arquitectura estructural (nivel lógico): forma de estructurar los directorios, archivos y documentos que conforman el hipertexto y que permiten establecer relaciones entre ellos. Tiene que ver con la estructura del conocimiento o estructura conceptual de la información ofrecida.
Arquitectura navegacional (nivel de usuario): formas y herramientas de acceso a la información y navegación por los nodos de información contenida en los archivos y documentos, generalmente atendiendo a una estructura conceptual o temática.
Arquitectura funcional (nivel físico): componentes, mecanismos y herramientas esenciales que hacen posible el establecimiento de la propia arquitectura estructural y navegacional del hipertexto. Representa los aspectos de almacenamiento de la información, la morfología de los nodos y sus relaciones, los sistemas y herramientas de hipermedia, las aplicaciones utilizadas y la puesta en marcha dinámica, los lenguajes de marcado para hiperdocumentos y en el caso de hipertexto en la WWW, la relación: servidor Web-clientes web -navegador, etc.

4.16 Tolerancia a fallos. Semánticas de consistencia. Transacciones.
De forma predeterminada, el manejo de la toleracia a fallos de conexiones se le deja al usuario. La aplicación es responsable de comprobar los valores devueltos de las funciones de bases de datos a las que llama y reaccionar a posibles errores. Si, por ejemplo, el complemento reconoce una consulta como de solo lectura para ser enviada a los servidores esclavos, y el servidor esclavo seleccionado por el complemento no está disponible, el complemento emitirá un error después de no ejecutar la sentencia. Predeterminado:
Tolerancia a fallos manual. Es responsabilidad de la aplicación manejar el error y, si fuera necesario, reemitir la consulta para desencadenar la selección de otro servidor esclavo para la ejecución de la sentencia. El complemento no intentará la tolerancia a fallos automáticamente, ya que no puede estar seguro de que una tolerancia a fallos automática cambie el estado de la conexión. Por ejemplo, la aplicación podría haber emitido una consulta que depende de variables SQL del usuario, las cuales están vinculadas a una conexión específica. Tal conexión podría devolver resultados incorrectos si el complemento intercambia la conexión implícitamente como parte de la tolerancia a fallos automática. Para asegurase de obtener resultados correctos, la aplicación debe ocuparse de la tolerancia a fallos, y reconstruir el estado de conexión requerido. Por lo tanto, de forma predeterminada, el complemento no realiza la tolerancia a fallos automática.
Tolerancia a fallos automática .La política de la tolerancia a fallos se configura en el fichero de configuración del complemento, usando la directiva de configuración failover. La tolerancia a fallos automática y silenciosa se puede habilitar a través de la directiva de configuración failover. La tolerancia a fallos automática se puede configurar para intentarla en exactamente un maestro después del fallo de un esclavo, o, alternativamente, iterando sobre los esclavos y maestros antes de devolver un error al usuario. El número de intentos de conexión se puede limitar, y los equipos anfitriones fallidos se pueden excluir de los intentos de equilibrado de carga futuros. La limitación del número de reintentos y el recuerdo de los equipos anfitriones fallidos son considerados características experimentales, aunque son razonablemente estables. La sintaxis y la semántica puede cambiar en versiones futuras.
Servidores de emergencia. Cuando ocurre un fallo en los servidores con una prioridad alta, aún se puede realizar la tolerancia a fallos en el sistema de emergencia, al cual se le ha dado una prioridad baja de equilibrado de carga asignándole un peso bajo. La tolerancia a fallos puede ser manual o automática. Si se realiza automáticamente se puede combinar con la opción remember_failed.
En este punto, no es posible ordenar al equilibrador de carga que no dirija ninguna petición al sistema de emergencia. Esto podría no ser una limitación dado que el mayor peso que se puede asignar a un servidor es 65535. Dados dos esclavos, uno de los cuales actuaría como de emergencia y al que se le ha asignado un peso de 1, el sistema de emergencia tendrá que manejar mucho menos del 1 por ciento del total del trabajo.
Transacción: Una transacción en un Sistema de Gestión de Bases de Datos (SGBD), es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica.
Un SGBD se dice transaccional, si es capaz de mantener la integridad de los datos, haciendo que estas transacciones no puedan finalizar en un estado intermedio. Cuando por alguna causa el sistema debe cancelar la transacción, empieza a deshacer las órdenes ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad), como si la orden de la transacción nunca se hubiese realizado.
Para esto, el lenguaje de consulta de datos SQL (Structured Query Language), provee los mecanismos para especificar que un conjunto de acciones deben constituir una transacción.
•BEGIN TRAN: Especifica que va a empezar una transacción.
•COMMIT TRAN: Le indica al motor que puede considerar la transacción completada con éxito.
•ROLLBACK TRAN: Indica que se ha alcanzado un fallo y que debe restablecer la base al punto de integridad.
En un sistema ideal, las transacciones deberían garantizar todas las propiedades ACID; en la práctica, a veces alguna de estas propiedades se simplifica o debilita con vistas a obtener un mejor rendimiento.