Logo Studenta

Serna_Jose_SO - Jose SernaS (1)

¡Este material tiene más páginas!

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.

Continuar navegando