Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
1 Universidad de Guadalajara Centro Universitario de Ciencias Exactas e Ingenierías Ingeniería en Computación Departamento De Ciencias Computacionales Asignatura: Sistemas Operativos Alumno: Jose Luis Serna Serna Código: 218292327 Profesor: Martha del Carmen Gutiérrez Salmerón Ingeniería en Computación Actividad de cierre III Sección: D02 28/11/2020 2 Índice Índice 2 Introducción 3 Contenido 4 Generalidades de conceptos de archivos 4 Conceptos básicos de archivos 4 Operaciones sobre archivos 5 Conceptos básicos de directorios 6 Operaciones sobre directorios 7 Manipulación de archivos 8 Almacenamiento a través de buffers 8 Asignación contigua de espacio en la gestión de archivos 9 Asignación No contigua de espacio en la gestión de archivos 9 Conclusión 11 Bibliografía 11 3 Introducción Muchas veces cuando un usuario quiere almacenar información para realizarle un tratamiento más adelante, se enfrenta con al menos dos problemas principales; En primer lugar, la memoria es volátil, o sea que cuando el proceso actual termina o se apaga el sistema se pierde la información almacenada en dicha memoria, además de que en algunas aplicaciones de grandes requerimientos y de alta exigencia (sistemas bancarios, sistemas de bases de datos, etc.) se necesita un mayor almacenamiento del que proporciona la memoria principal. En segundo lugar, se encuentra con el tema de la compartición de información, por ejemplo, a la información que se encuentra en el espacio de direcciones de un proceso solo puede acceder dicho proceso, para que varios procesos puedan acceder en el mismo espacio de tiempo es necesario que la información sea independiente de los procesos. Resumiendo, para que el almacenamiento de la información permanezca a largo plazo es necesario que se cumplan tres condiciones; o La información tiene que permanecer aun cuando el proceso haya terminado. o Debe poderse almacenar una gran cantidad de información o Debe existir la posibilidad de que varios procesos tengan acceso concurrente a la información. La solución para garantizar que se cumplan dichas condiciones es un sistema de gestión de archivos, o una estructura de archivos. Por esto es necesario que exista dicho sistema de gestión de archivos que garantice que se puedan realizar todo tipo de acciones que permitan manejar la información entre los procesos y todo lo que involucra, en la presente actividad se realizara un resumen de los conceptos y puntos más relevantes de un sistema de gestión de archivos. 4 Contenido Generalidades de conceptos de archivos Un archivo se define como un conjunto de bytes que son almacenados en un dispositivo, se identifica mediante un nombre y la descripción de la carpeta o directorio que lo contiene. Los archivos son persistentes, es decir, no desaparecen cuando termina un proceso, solo pueden ser borrados cuando el usuario/propietario emite la orden explícitamente de eliminarlos, generalmente para la mayoría de los usuarios, el sistema de archivos es el aspecto más visible dentro de un sistema operativo. Los sistemas de archivos es posible estudiarlos desde distintos puntos; desde el punto de vista de los usuarios, lo más relevante es la manera de nombrar los archivos, las operaciones que se permiten sobre ellos, la apariencia del árbol de directorios y los aspectos que se relacionan con la interfaz; desde el punto de vista de los diseñadores, se preocupan más por la forma de almacenamiento de los directorios y archivos, la administración del espacio del disco y buscar la manera de que la utilización del sistema de archivos sea eficiente y de alto grado de confianza para el usuario. Conceptos básicos de archivos La gestión de archivos es de los servicios más apreciados dentro de un sistema operativo, en una computadora es posible almacenar información en distintos dispositivos físicos, como, por ejemplo, discos magnéticos, CD-ROM's, discos ópticos, etc., cada dispositivo tiene ciertas características, el sistema operativo se encarga de dar una visión uniforme a todos los sistemas de almacenamiento, mediante la definición de una unidad lógica de almacenamiento a la que se le denomina archivo. El sistema operativo se encarga de asignar el contenido del archivo a ciertos espacios del dispositivo físico de almacenamiento. A un archivo se le puede considerar como un conjunto de información relacionada que es definida por el creador, por lo regular los archivos corresponden a programas (ya sean fuente u objeto) y a datos, que pueden ser de distintos tipos (numéricos, alfanuméricos, gráficos, secuencias de imágenes, etc.). Generalmente un archivo es una serie de bits, bytes o registros cuyo significado se define por el autor y usuarios. Los archivos tienen que ser nombrados y referenciados por su nombre, la forma en que se nombran dichos archivos generalmente cambia entre un sistema operativo y otro. Por regla general son cadenas de caracteres alfanuméricos, también se usa algunos caracteres especiales como puntos, guiones, o inclusive blancos. Los archivos, además del nombre, tienen otras propiedades como sus tipo, fecha y hora de creación, nombre o identificador del creador, longitud, entre otros, a dichas propiedades se les llama regularmente atributos y varían entre sistema operativo y otro. 5 Operaciones sobre archivos El principal objetivo de un archivo es almacenar información para poder recuperarla después, para poder cumplir con dicho objetivo existen distintas operaciones que permiten realizar un manejo adecuado de los archivos las principales operaciones sobre archivos son las siguientes. CREATE (crear) Se realizan las siguientes acciones: 1. Buscar si ya existe el archivo 2. Asignarle una entrada en el directorio 3. Asignarle espacio en el disco 4. Registrar los atributos del archivo en el directorio OPEN (abrir) Establece un enlace entre el programa y el archivo, para ello se trasladan los atributos y la lista de direcciones del archivo, que están en el disco, a la memoria principal, para permitir un rápido acceso en futuras llamadas. SEEK (buscar) Se cambia la posición del apuntador para señalar al byte o registro cuya dirección lógica es suministrada en la llamada. READ (leer) Por lo general la lectura se realiza en la posición actual, en caso contrario se tiene que hacer una búsqueda con anterioridad, en la llamada al sistema se especifica la cantidad de datos necesarios y proporcionar un buffer para su transmisión. WRITE (escribir) La diferencia con READ, es que, en vez de leer la información en dicha posición, WRITE la registra. Los sistemas con las funciones OPEN y CLOSE requieren que los archivos se abran ante de poder leer o escribir. CLOSE (cerrar) Cuando un archivo deja de utilizarse es necesario que se cierre, de forma que se libere la tabla con la lista de atributos y direcciones que se mantenía en la memoria principal y que no se necesita más. Lo que se hace es cerrar las referencias al archivo. DELETE (borrar) Para realizar esta acción se hace el proceso contrario a crear, borrando del directorio la entrada al archivo y liberando el espacio de disco asignado. 6 Existen sistemas operativos que mantienen una copia de los archivos borrados hasta que reciben la orden expresa de liberar este espacio. RENAME (renombrar) Esta operación cambia el nombre del archivo en la tabla del directorio correspondiente. Lectura y modificación de atributos en muchos sistemas operativos es permitido el cambio o por lo menos la lectura de algunos atributos. COPYFILE (copiar) Esta función lleva implícita la creación de un nuevo archivo, aunque en algunas versiones se permite copiar en unarchivo ya existente grabando la información sobre el mismo. Conceptos básicos de directorios Los directorios básicamente son tablas simbólicas de archivos, de manera típica la entrada de un directorio puede contener esta información: o Nombre, tipo y número de versión del archivo. o Puntero de acceso al archivo, dirección de comienzo en el disco. o Lista de atributos: tamaño, estructura, dueño, modos de protección, fecha de creación, fecha de la última copia de seguridad, fecha de la última modificación o referencia, etc. Ejemplo. [imagen tomada del libro de SISTEMAS OPERATIVOS: TEORÍA Y PROBLEMAS. Alamansa…(N/E)] En muchos sistemas, la tabla del directorio se divide en dos partes; en una solo se mantienen los nombres de los archivos con un número de identificación, el cual da acceso a la otra que es donde se tiene el puntero de acceso al archivo y la lista de atributos. La ventaja de esto es que la separación de la tabla de nombres de los archivos de la de la descripción de estos, agiliza la gestión de los enlaces, la generación de alias y los homónimos. Ejemplo. 7 [imagen tomada del libro de SISTEMAS OPERATIVOS: TEORÍA Y PROBLEMAS, Alamansa…(N/E)] Operaciones sobre directorios Las operaciones con los directorios tienen variación entre sistema operativo y otro, las operaciones más típicas e importantes son las siguientes: MAKEDIR (crear directorio) En esta operación en el directorio actual se crea una entrada para un nuevo subdirectorio y un subdirectorio que estará vacío salvo las entradas por defecto relativas a él mismo, ".", y al directorio padre, "..". REMOVEDIR (borrar directorio) Para eliminar un directorio se supone que está vacío, si el directorio no está vacío, es decir que contiene entradas de archivos o de subdirectorios, se pueden realizar las siguientes dos acciones; la primera es no permitir borrar un directorio que no esté vacío; la otra es suponer que cuando se hace la petición de eliminar un directorio se quiere borrar todos los archivos y subdirectorios que contiene, esta segunda acción es más fácil de realizar, pero evidentemente de mayor peligro para el usuario. OPENDIR (abrir directorio) y CLOSEDIR (cerrar directorio) Esta operación supone copiar las tablas del directorio a la memoria principal para agilizar la gestión, una vez terminando de utilizar el directorio se cierra, actualizando en el disco las tablas de este. READDIR (leer directorio) Esta operación devuelve en un formato estándar la entrada actual del directorio. RENAMEDIR (cambiar de nombre) De manera similar a la operación de renombrar archivo, se puede cambiar el nombre al directorio haciendo una llamada al sistema. LINK (enlazar) Esta operación es una forma de hacer que un archivo o subdirectorio aparezca en varios directorios. En la llamada a esta función se especifica el nombre del 8 archivo y el camino de acceso, creándose un enlace entre este camino y el archivo ya existente. UNLINK (desenlazar) Es la operación contraria a LINK, realiza la eliminación del enlace y borra la correspondiente entrada en el directorio. Manipulación de archivos El usuario comúnmente puede ver a un archivo como un tipo de dato abstracto que se puede crear, abrir, escribir, leer, cerrar y borrar, pero por dentro hay una manipulación interna de dichos archivos que el usuario no puede ver. Desde la perspectiva del diseño del sistema operativo uno de los mayores problemas es como diseñar los archivos, como asignarles espacio de forma que la memoria del disco sea utilizada eficientemente y que a los archivos se pueda acceder de manera rápida. Para ello es necesario elegir una política de asignación de espacio a los archivos y de gestión del espacio libre del disco, así como una estructura adecuada de estructura de archivos y de directorios que garantice un acceso a los archivos rápido, seguro y confiable. El problema de asignación de espacio del disco a los archivos es muy similar al de la gestión de la memoria principal, de manera general existen dos estrategias para almacenar un archivo de n bytes: o Asignar n bytes consecutivos al espacio del disco o Dividir el archivo en bloques que no necesitan estar adyacentes. en la asignación del espacio del disco los tres métodos más usados son: o Asignación contigua o Por medio de listas enlazadas o Mediante índices Almacenamiento a través de buffers Un buffer es un área de memoria principal que se reserva para contener los datos leídos de un archivo mientras se están utilizando. Cuando esta área temporal se encuentra llena, al programa le es posible empezar a utilizar estos datos. Llevar un adecuado Manejo de un buffer implica trabajar con grandes grupos de datos de memoria RAM para que el número de accesos al almacenamiento se reduzca. La ventaja de utilizar buffers es que se obtiene más velocidad de acceso al almacenamiento donde se encuentran los archivos, ya que se suben a memoria principal los archivos o la tabla de índices de estos que sean más requeridos en ese momento, para así conocer la dirección exacta donde se accederá para obtener el archivo deseado, en cierta manera se trabaja bajo demanda, se trae a memoria principal solo lo más requerido o utilizado en el momento que se requiere. 9 Asignación contigua de espacio en la gestión de archivos Se asigna un único conjunto contiguo de bloques en tiempo de creación de los ficheros. Por lo tanto, existe una estrategia de preasignación que usa porciones de tamaño variable. La tabla de asignación de ficheros necesita sólo una entrada para cada fichero, mostrando el bloque inicial y la longitud del fichero. La asignación contigua es la mejor desde el punto de vista del fichero secuencial individual. Múltiples bloques se pueden leer de una vez para mejorar el rendimiento de E/S en procesamiento secuencial. Es también fácil obtener un único bloque. Por ejemplo, si un fichero comienza en el bloque b y se quiere acceder al bloque iésimo del fichero, su ubicación en almacenamiento secundario es simplemente b + i – 1. La asignación contigua presenta algunos problemas. Existirá fragmentación externa, haciendo difícil encontrar bloques contiguos de espacio de suficiente longitud. De vez en cuando, será necesario llevar a cabo un algoritmo de compactación para liberar espacio adicional en el disco. Además, con preasignación, es necesario declarar el tamaño del fichero en el tiempo de creación, con los problemas mencionados anteriormente. Asignación No contigua de espacio en la gestión de archivos Asignación encadenada. Regularmente, la asignación se realiza a nivel de bloques individuales. Cada bloque contiene un puntero al siguiente bloque en la cadena. De nuevo, la tabla de asignación de ficheros necesita sólo una entrada para cada fichero, mostrando el bloque inicial y la longitud del fichero. Aunque la preasignación es posible, es más común asignar bloques cuando se necesita. La selección de bloques es ahora una cuestión sencilla: cualquier bloque libre se puede añadir a una cadena. No hay fragmentación externa de la que preocuparse porque sólo se necesita un bloque cada vez. Este tipo de organización física se adapta mejor a ficheros secuenciales que se procesan secuencialmente. Seleccionar un bloque individual de un fichero requiere seguir la cadena hasta alcanzar el bloque deseado. Una consecuencia del encadenamiento, tal como se describe, es que no existe principio de proximidad. Por tanto, si es necesario traer varios bloques de fichero a la vez, como en el procesamiento secuencial, se requiere una serie de accesos a diferentes partes del disco. Esto es tal vez un efecto más significativo en un sistema monousuario, pero también podría ser preocupante en el caso de un sistema compartido. Para resolver este problema, algunos sistemas consolidan ficheros periódicamente. Asignación indexada La asignación indexada resuelve muchos de los problemas de la asignación contigua y encadenada. En este caso, la tabla de asignación de ficheros contiene un índice separado de un nivel por cada fichero; el índice tiene una entrada por cada porción asignada al fichero. Típicamente, los índices de fichero no se almacenan físicamente como parte de la tabla de asignación de ficheros. Por el contrario, el índice de ficheros para un fichero se guarda en un bloque separado 10 y la entrada para fichero en la tabla de asignación de ficheros apunta a dicho bloque. La asignación puede realizarse mediante bloques de tamaño fijo o porciones de tamaño variable. La asignación por bloques elimina la fragmentación externa, mientras que la asignación por porciones de tamaño variable mejora la proximidad. En cualquier caso, la consolidación de ficheros se puede realizar de vez en cuando. La consolidación de ficheros reduce el tamaño del índice en el caso de porciones de tamaño variable, pero no en el caso de asignación de bloques. La asignación indexada da soporte tanto a acceso secuencial como directo a los ficheros y por tanto es la forma más popular de asignación de ficheros. 11 Conclusión Yo como usuario comúnmente puedo ver a un archivo como un tipo de dato abstracto en el que se puede realizar distintas operaciones muy comunes porque las uso casi a diario, como por ejemplo crear, abrir, escribir, leer, cerrar y borrar archivos, sin embargo, por dentro existe una manipulación interna de dichos archivos que yo no me doy cuenta de cómo es que funciona dicha organización. Por dentro, el sistema operativo está trabajando y realizando muchas acciones que hacen posible que lo que estoy realizando parezca una tarea sencilla, desde la perspectiva del diseño del sistema operativo uno de los mayores problemas es como diseñar los archivos, como asignarles espacio de forma que la memoria del disco sea utilizada eficientemente y que a los archivos se pueda acceder de manera rápida. Para ello es necesario elegir una política de asignación de espacio a los archivos y de gestión del espacio libre del disco, así como una estructura adecuada de estructura de archivos y de directorios que garantice un acceso a los archivos rápido, seguro y confiable. En esta actividad se estudiaron conceptos muy importantes y relevantes con respecto al sistema de gestión de archivos, como por ejemplo los tipos, atributos, características y operaciones de los archivos, que considero una de las tareas mas importantes del sistema operativo, también los conceptos principales de los directorios y sus operaciones principales, es muy interesante como se maneja la información de los directorios mediante tablas, lo cual ayuda agilizar toda su gestión, por último la asignación de espacio a los archivos también es un punto muy importante a tener en cuenta, ya que siempre se debe buscar la forma de utilizar el almacenamiento de la manera más optima, así como también se debe buscar un que el acceso a los archivos se realice de manera eficiente y rápida. Bibliografía Stallings, W. (2012). Operating Systems: Internals and Design Principles. Prentince Hall. 7th edition. Lake Street, Upper Saddle River 07458, New Jersey, Estados Unidos: Recuperado el 28 de noviembre de 2020. Joaquín Aranda Alamansa, Ma. Antonia Canto Diaz, Jesús Manuel De La Cruz García, Sebastián Dormido Bencomo, Carolina Mañoso Hierro. (N/E). SISTEMAS OPERATIVOS: TEORÍA Y PROBLEMAS. Madrid: SANZ Y TORRES, S.L. Gunnar Wolf, Esteban Ruiz, Federico Bergero Erwin Meza. (2015). FUNDAMENTOS DE SISTEMAS OPERATIVOS. México D.F: Biblioteca Nacional de México.
Compartir