DISEÑO DE ARCHIVOS DISTRIBUIDOS
Generalmente, un sistema de archivos distribuidos
consta de dos componentes muy distintos entre sí: el servicio de archivos y el servicio
de directorios.
La Interfaz del Servicio de Archivos
Un archivo es una secuencia de bytes
sin interpretación alguna. Esto quiere decir
que el contenido y estructura de un archivos es
interpretado por el software de aplicación mas no por el sistema operativo sobre el que se está
trabajando.
Un archivo se caracteriza por tener atributos, tales como: el propietario, el tamaño, la fecha de creación y el permiso de acceso.
La utilidad del servicio de archivos consiste en proporcionar una adecuada administración de los atributos, definidos por el usuario, que estas poseen. Lo más común es encontrar algunos sistemas avanzados que permitan modificarlos después de sus creación, pero en algunos sistemas distribuidos las únicas operaciones que pueden realizarse sobre un archivo es CREATE y READ (Crear y Leer). Es decir, una vez creado el archivo no puede modificarse. A este tipo de archivos se les denomina archivos inmutables.
Existen dos tipos de servicios de archivos distribuidos: modelo carga/descarga y modelo de acceso remoto.
Un archivo se caracteriza por tener atributos, tales como: el propietario, el tamaño, la fecha de creación y el permiso de acceso.
La utilidad del servicio de archivos consiste en proporcionar una adecuada administración de los atributos, definidos por el usuario, que estas poseen. Lo más común es encontrar algunos sistemas avanzados que permitan modificarlos después de sus creación, pero en algunos sistemas distribuidos las únicas operaciones que pueden realizarse sobre un archivo es CREATE y READ (Crear y Leer). Es decir, una vez creado el archivo no puede modificarse. A este tipo de archivos se les denomina archivos inmutables.
Existen dos tipos de servicios de archivos distribuidos: modelo carga/descarga y modelo de acceso remoto.
Modelo Carga/Descarga
Consiste básicamente en dos operaciones: lectura y escritura. Como se muestra en la Figura 1.1, la
primera operación consiste en la transferencia de un archivo completo desde el servidor hacia el cliente solicitante; la segunda
operación consiste en el envío de un archivo del cliente al servidor, es decir,
en sentido contrario. Mientras tanto los archivos pueden ser almacenados en memoria o en un disco local, según
sea el caso.
Modelo de Acceso Remoto
Este tipo de modelo consiste en que todas las
operaciones (abrir y cerrar, leer y escribir, etc.) se realizan en el servidor
mas no en los clientes. Esto se muestra claramente en la
Figura 1.2.
Figura 1.2. El modelo de acceso remoto
Figura 1.2. El modelo de acceso remoto
Estos dos modelos se diferencian en que en el
primero se debe transferir el archivo completo del servidor al cliente y
viceversa, lo que no es necesario en el modelo de acceso remoto.
Debemos tener en cuenta que el solo hecho de compartir archivos puede traer dos problemas principales por resolver: el permiso de acceso y la gestión de los accesos simultáneos.
Debemos tener en cuenta que el solo hecho de compartir archivos puede traer dos problemas principales por resolver: el permiso de acceso y la gestión de los accesos simultáneos.
·
Permisos
de Accesos:
Un sistema de archivos distribuidos provee al
usuario de una herramienta flexible que permite compartir archivos extensos
entre ellos. Esta herramienta actualmente utilizada con mucho éxito (pero con algunas
deficiencias) no es más que una lista de derechos de acceso los cuales pueden ser asignados a
un usuario en particular para un archivo en particular. Estos derechos de
acceso se muestran en la siguiente tabla:
Derecho de Acceso
|
Descripción
|
Ninguno
|
En el que el usuario no puede determinar la
existencia del archivo y mucho menos acceder a éste y sus directorios.
Tampoco puede conocer la ruta que especifica su ubicación actual.
|
Conocimiento
|
El usuario conoce sobre la existencia del
archivo y quién es su dueño. Puede solicitar tener algunos derechos de acceso
a este archivo.
|
Ejecución
|
El usuario puede ejecutar y cargar el programa pero no copiarlo.
|
Lectura
|
El usuario puede leer el archivo, también
copiarlo y ejecutarlo.
|
Adición
|
El usuario puede agregar datos al archivo (generalmente
al final), pero no puede modificar o borrar su contenido.
|
Actualización
|
El usuario puede modificar, borrar y
agregar datos al archivo.
|
Cambio de protección
|
El usuario puede cambiar los derechos de
acceso que han sido otorgados a los usuarios.
|
Borrado
|
El usuario puede borrar el archivo de su
ubicación actual.
|
Puede brindarse acceso a
las siguientes clases de usuario:
·
Usuario
específico: Usuarios individuales quienes son designados por su ID de usuario.
·
Grupos
de usuario: Conjunto de usuarios no definidos individualmente.
·
Todos:
Es decir, todos los usuarios que tengan acceso al sistema. Los archivos son
públicos.
·
Gestión
de Accesos Simultáneos
El sistema operativo o el sistema de gestión
de archivos permite al usuario (que previamente ha tenido acceso a determinado
archivo) que él mismo pueda bloquear el archivo cuando vaya a utilizarlo , o en
todo caso, bloquear los registros individuales durante la
actualización. Si no se considera ninguna de estas dos opciones, entonces se
analizará aspectos de exclusión mutua e interbloqueo.
La Interfaz del Servidor de Directorios
El propósito general del servidor de directorios es poder crear y eliminar directorios, nombrar o cambiar el nombre de archivos y mover éstos de un directorio a otro.
El sistema distribuido es el encargado de definir el alfabeto y la sintaxis para formar los nombres de los archivos y directorios. Por ejemplo, Windows divide los nombres de lo archivos en dos partes: nombre y extensión (tipo de archivo), los cuales se denotan separados por un punto: nombre_archivo.extensión; así tenemos que libro.txt es un archivo cuyo nombre es libro y es de tipo texto. En otros sistemas, como el UNIX, clasifican a los archivos según sus atributos (en UNIX un archivo ejecutable se pinta de otro color).
Todo sistema distribuido permite la existencia de subdirectorios (directorios dentro de otro directorio), permitiéndose a los usuarios clasificar sus archivos a sus gusto. Estos subdirectorios, a su vez, pueden contener otros subdirectorios lo que se conoce como sistema jerárquico de archivos.
Algunos sistemas distribuidos permiten crear apuntadores o enlaces a un directorio determinado, construyendo, de esta manera, no solamente árboles sino también gráficas de directorios los cuales son más consistentes.
Un árbol de directorios contenido en una
máquina
Esta diferencia entre árboles y gráficas es de gran importancia en un sistema distribuido y radica en la eliminación de enlaces entre un directorio y otro. Es decir, en un árbol se puede eliminar un enlace con un directorio si el directorio al cual se apunta es vacío, mientras que en una gráfica solo puede eliminarse enlaces mientras exista al menos otro enlace.
Esta diferencia entre árboles y gráficas es de gran importancia en un sistema distribuido y radica en la eliminación de enlaces entre un directorio y otro. Es decir, en un árbol se puede eliminar un enlace con un directorio si el directorio al cual se apunta es vacío, mientras que en una gráfica solo puede eliminarse enlaces mientras exista al menos otro enlace.
Una gráfica de directorios en dos máquinas
Semántica de los Archivos Distribuidos
Existen hasta cuatro métodos para utilizar los archivos compartidos en un sistema distribuido:
Semántica de los Archivos Distribuidos
Existen hasta cuatro métodos para utilizar los archivos compartidos en un sistema distribuido:
·
Semántica
de UNIX: En la que cada operación en un archivo es visible a todos los procesos de manera simultánea. Esto
implica que cada operación cumpla un estricto orden con respecto al tiempo,
puesto que el archivo es actualizado inmediatamente después de realizada cada
operación.
·
Semántica
de Sesión: En la que ningún cambio es visible a otros procesos hasta que l
archivo que está siendo utilizado se cierra. Esto produce un desfasamiento en
la actualización del archivo, puesto que un archivo puede estar siendo
utilizado por dos o más clientes en forma simultánea y se tendrá como resultado
el archivo cuyo cliente lo cierra después que todos los demás.
·
Archivos
inmutables: En la que no existen actualizaciones, puesto que una vez creado el
archivo no puede modificarse. Así es más fácil compartir y replicar archivos.
·
Transacciones:
En la que todos los cambios tienen la propiedad del todo o nada. Es decir,
cada operación que es llamada al sistema no se detiene hasta que finaliza
propiamente. De esta manera, si una operación es requerida mientras está siendo
utilizada por otra, esta última no se ejecutará hasta que finalice la ejecución
de la primera.
IMPLANTACION DE UN SISTEMA DISTRIBUIDO
Uso de Archivos
·
Mediciones
Estáticas: En este tipo de mediciones se observa el sistema en un determinado
momento, esto quiere decir que se verifica su estado en un instante de tiempo.
Entre algunas de estas mediciones estáticas podemos encontrar: la distribución de tamaños de los archivos,
la distribución de tipos de archivos y la cantidad de espacio que ocupan los
archivos de varios tamaños y tipos.
·
Mediciones
Dinámicas: Este tipo de mediciones se encarga de registrar todas las
operaciones en una bitácora para un análisis posterior. De esta manera
se tiene información respecto a la frecuencia con que se realizan ciertas
operaciones.
Según Satyanarayanan (1981), las propiedades
más comunes de los sistemas de archivos son las siguientes:
·
La
mayoría de los archivos son pequeños (menos de 10 K).
·
La
lectura es más común que la escritura.
·
La
lectura y escritura son secuenciales: es raro el acceso aleatorio.
·
La
mayoría de los archivos tienen una vida corta.
·
Es
poco usual compartir archivos.
·
Los
procesos promedio utilizan sólo unos cuantos archivos.
·
Existen
distintas clases de archivos con propiedades diferentes.
Estructura del Sistema
La estructura de un sistema es determinante para el servicio de archivos y
directorios, para eso se debe diferenciar entre quiénes son los clientes y
quiénes son los servidores.
En algunos sistemas el servidor solamente puede actuar como servidor y el cliente solamente como cliente. Esto puede tener sus ventajas y desventajas puesto si en algún momento el servidor falla, entonces todo el sistema se paralizaría. En otros sistemas, sin embargo, el servidor de archivos y el de directorios son solamente programas del usuario, de esta manera se puede configurar el sistema para que ejecute o no el software de cliente o servidor en la misma máquina, como se desee.
Pero se ha de considerar el aspecto estructural de los servidores de archivos y directorios, en cuanto a que deben o no contener los estados de los clientes. Es decir, existen dos tipos de pensamiento con respecto a este tema: los servidores sin estado y los servidores con estado.
En algunos sistemas el servidor solamente puede actuar como servidor y el cliente solamente como cliente. Esto puede tener sus ventajas y desventajas puesto si en algún momento el servidor falla, entonces todo el sistema se paralizaría. En otros sistemas, sin embargo, el servidor de archivos y el de directorios son solamente programas del usuario, de esta manera se puede configurar el sistema para que ejecute o no el software de cliente o servidor en la misma máquina, como se desee.
Pero se ha de considerar el aspecto estructural de los servidores de archivos y directorios, en cuanto a que deben o no contener los estados de los clientes. Es decir, existen dos tipos de pensamiento con respecto a este tema: los servidores sin estado y los servidores con estado.
·
Servidores
sin Estado: Consiste en que cuando un cliente envía una solicitud a un
servidor, éste la lleva a cabo, envía la respuesta y elimina de sus tablas
internas toda la información correspondiente a dicha solicitud. El servidor no
guarda la información relativa a los clientes entre las solicitudes.
Ventajas:
·
Tolerancia
de fallas
·
No
necesita llamadas OPEN/CLOSE
·
No
se desperdicia el espacio del servidor en tablas
·
No
existe límite para el número de archivos abiertos
·
No
hay problemas si un cliente falla
·
Servidores
con Estado: Conservan la información de estado de los clientes entre las
solicitudes. Esto es lo que ocurre en los sistemas centralizados.
El sistema de archivos es un elemento esencial de un sistema distribuido Su tarea fundamental es almacenar los programas y datos y tenerlos disponibles cuando sean necesarios y cabe resaltar los aspectos que los diferencían de los sistemas de archivs centralizados.
ResponderEliminarTambien es muy importante distinguir entre los conceptos de servicio
de archivos y servidor de archivos.
El servicio de archivos especifica la interfaz del sistema de archivos con los clientes. describen los parámetros que utilizan y las acciones que llevan a cabo.
Un servidor de archivos es un proceso que se ejecuta en alguna máquina y ayuda a implantar el servicio de archivos. Un sistema puede tener uno o varios servidores de archivos, pero los clientes no deben conocer el número de servidores de archivos, su posición o función. Todo lo que saben es que al solicitar un servicio, este se lleva a cabo de alguna manera