sábado, 8 de diciembre de 2012


MEMORIA GLOBAL DISTRIBUIDA



MEMORIA GLOBAL DISTRIBUIDA 
 CONCEPTO: 

la Distributed Shared Memory (DSM, o memoria distribuida compartida) es un tipo de implementación hardware y software, en la que cada nodo de un clustertiene acceso a una amplia memoria compartida que se añade a la memoria limitada privada, no compartida, propia de cada nodo.
Los sistemas de software DSM pueden ser implementados bajo un sistema operativo (SO), o como una biblioteca de programación. Los sistemas de software DSM implementados en el SO pueden concebirse como extensiones de la arquitectura de memoria virtual subyacente. Estos sistemas son transparentes al desarrollador, lo que significa que la memoria distribuida subyacente está completamente oculta para los usuarios. En contraste, los sistemas de software DSM implementados en una biblioteca no son transparentes y los desarrolladores tienen que programarlos separadamente. Sin embargo, estos últimos sistemas ofrecen mejores características de portabilidad en la implementación de sistemas DSM.

MODELOS DE SINCRONIZACION Y COHERENCIA 


Además de la comunicación entre procesos, es fundamental la forma en que los  procesos cooperan y se sincronizan entre sí. En los sistemas con un CPU, los problemas relativos a las regiones críticas, la exclusión mutua y la sincronización se resuelven en general mediante métodos  como:

· Los semáforos 
· Los monitores.

Estos métodos no son adecuados para su uso en los sistemas distribuidos, puesto que siempre se basan (de manera implícita) en la existencia de memoria compartida.

Sincronización de Relojes.

La sincronización es más compleja en los sistemas distribuidos que en los centralizados:

· En los primeros se debe utilizar algoritmos distribuidos. 
· Generalmente no es posible (o recomendable) reunir toda la información relativa al sistema en un lugar y después dejar que cierto proceso la  examine y tome la decisión, como se hace en el caso centralizado.

Los algoritmos distribuidos tienen las siguientes propiedades:

· La información relevante se distribuye entre varias maquinas.
· Los procesos toman las decisiones sólo con base en la información disponible en forma local. 


- Lo ideal es que un sistema distribuido debería de ser más confiable que las maquinas individuales. Si alguna de ellas falla, el resto puede continuar su funcionamiento.

El último punto también es crucial. 
· En un sistema centralizado, el tiempo no tiene ambigüedades. Cuando un proceso desea conocer la hora, llama al sistema y el núcleo se la dice. 

· En un sistema distribuido no es sencillo poner de acuerdo a todas las maquinas en la hora.
· Se requiere de un acuerdo global en el tiempo, pues la falta de sincronización en los relojes puede ser drástica en procesos dependientes del tiempo.

Relojes lógicos

Casi todas las computadoras tienen un circuito para el registro del tiempo. 
· A pesar del uso generalizado de la palabra "reloj" para hacer referencia a  dichos dispositivos, en realidad no son relojes en el sentido usual. 
· En realidad son un cronometro. Un cronómetro de computadora es por lo  general un cristal de cuarzo trabajado con precisión. Cuando se mantiene sujeto a tensión, un cristal de cuarzo oscila con una  frecuencia bien definida:
- Que depende del tipo de cristal,
- La forma en que se corte 
- Y la magnitud de la tensión. 
-  A cada cristal se le asocian dos registros:
-  Un registro contador 
- Un registro mantenedor. 
            · Cada oscilación del cristal disminuye en 1 al contador. 
            · Cuando el contador toma el valor 0, 
- Se genera una interrupción y 
- el contador se vuelve a cargar mediante el registro mantenedor. 
        - De esta forma, es posible programar un cronómetro de modo que genere una interrupción 60 veces por cada segundo o con cualquier frecuencia que se desee. Cada interrupción recibe el nombre de marca de reloj.

Cuando se arranca por vez primera el sistema, por lo general se pide al operador que escriba la fecha y la hora, las cuales se convierten al número de marcas después de cierta fecha conocida y se guardan en la memoria. En cada marca de  reloj, el procedimiento de servicio de interrupciones añade  1 al tiempo guardado en memoria. De esta forma, el reloj (de software) se mantiene actualizado.
En el caso de una computadora y un reloj, no importa si éste se desfasa un poco.

· Puesto que todos los procesos de la máquina utilizan el mismo reloj, tendrán consistencia interna. 
· Todo lo que importa son los tiempos relativos.
En el caso de  varias máquinas, cada una con su propio reloj, la situación es distinta. 
· Aunque la frecuencia de un oscilador de cristal es muy estable, es imposible garantizar que los cristales de computadoras distintas oscilen  precisamente con la misma frecuencia. 
· Cuando un sistema tiene n computadoras, los en cristales, correspondientes oscilarán a tasas un poco distintas, lo que provoca una pérdida de sincronía en los relojes (de software) y que al leerlos tengan valores distintos. 
La diferencia entre los valores del tiempo se llama  distorsión del reloj. Como consecuencia de esta distorsión, podrían fallar los programas que esperan que el tiempo asociado  a un archivo, objeto, proceso o mensaje sea correcto e independiente del sitio donde haya sido generado (es decir, del reloj utilizado).
Lamport demostró que la sincronización de relojes es posible y presentó un algoritmo para lograr esto. Señaló que la sincronización de relojes no tiene que ser  absoluta:
· Si dos procesos no interactúan, no es necesario que sus relojes estén sincronizados, puesto que la carencia de sincronización no sería observable y por tanto no podría provocar problemas.
· Lo que importa por lo general, no es que todos los procesos concuerden de manera exacta en la hora, sino que coincidan en el orden en que ocurren los eventos. 
· Para la mayoría de los fines, basta que todas las máquinas coincidan en la misma hora.
· No es esencial que esta hora también coincida con la hora real.

miércoles, 5 de diciembre de 2012


 
 Arquitectura Cliente Servidor

 Definiciones Básicas
Para entender el concepto de la arquitectura de cliente servidor, antes es
necesario conocer algunas definiciones. Entre las principales definiciones se
tiene:
1. Desde un punto de vista conceptual:
«Es un modelo para construir sistemas de información, que se sustenta en la
idea de repartir el tratamiento de la información y los datos por todo el sistema
informático, permitiendo mejorar el rendimiento del sistema global de
información»

En términos de arquitectura:
Los distintos aspectos que caracterizan a una aplicación (proceso,
almacenamiento, control y operaciones de entrada y salida de datos) en el
sentido más amplio, están situados en más de un computador, los cuales se
encuentran interconectados mediante una red de comunicaciones.

 IBM define al modelo Cliente/Servidor
Es la tecnología que proporciona al usuario final el acceso transparente a las
aplicaciones, datos, servicios de cómputo o cualquier otro recurso del grupo de
trabajo y a través de la organización, en múltiples plataformas. El modelo/o,
soporta un medio ambiente distribuido en el cual los requerimientos de servicio
hechos por estaciones de trabajo inteligentes o "clientes'', resultan en un trabajo
realizado por otros computadores llamados servidores.
Para entender mejor las definiciones antes mencionadas, analizaremos ahora
algunos de los conceptos mencionados en dichas definiciones:
Un Cliente es el que inicia un requerimiento de servicio. El requerimiento inicial
puede convertirse en múltiples requerimientos de trabajo a través de redes LAN
o WAN. La ubicación de los datos o de las aplicaciones es totalmente
transparente para el cliente.
Un Servidor es cualquier recurso de cómputo dedicado a responder a los
requerimientos del cliente. Los servidores pueden estar conectados a los
clientes a través de redes LANs o WANs, para proveer de múltiples servicios a
los clientes tales como impresión, acceso a bases de datos, fax, procesamiento
de imágenes, etc. Es importante mencionar que un servidor no es
necesariamente un dispositivo físico (una computadora) sino que hay que
entender al servidor como un proceso que se encarga de atender las peticiones
de un cliente.
Con estos elementos podemos ya darnos una idea de lo que es el modelo
cliente servidor, sin embargo, es necesario analizar más a fondo las
características de la arquitectura si queremos llegar a entender por completo el
funcionamiento de la misma.

 Elementos de la Arquitectura Cliente/Servidor
Una arquitectura es un entramado de componentes funcionales que
aprovechando diferentes estándares, convenciones, reglas y procesos, permite
integrar una amplia gama de productos y servicios informáticos, de manera que
pueden ser utilizados eficazmente dentro de la organización.


Introducción a los Sistemas Distribuidos
Debemos señalar que para seleccionar el modelo de una arquitectura, hay que
partir del contexto tecnológico y organizativo del momento y, que la arquitectura
Cliente/Servidor requiere una determinada especialización de cada uno de los
diferente s componentes que la integran.
En esta aproximación, y con el objetivo de definir y delimitar el modelo de
referencia de una arquitectura Cliente/Servidor, debemos identificar los
componentes que permitan articular dicha arquitectura, considerando que toda
aplicación de un sistema de información está caracterizada por tres
componentes básicos:
• Presentación/Captación de Información
• Procesos
• Almacenamiento de la Información
Y se integran en una arquitectura Cliente/Servidor en base a los elementos que
caracterizan dicha arquitectura, es decir:
• Puestos de Trabajo
• Comunicaciones
• Servidores
De estos elementos debemos destacar:
• El Puesto de Trabajo o Cliente “Una Estación de trabajo o microcomputador
(PC: Computador Personal) conectado a una red, que le permite acceder y
gestionar una serie de recursos”, el cual se perfila como un puesto de trabajo
universal. Nos referimos a un microcomputador conectado al sistema de
información y en el que se realiza una parte mayoritaria de los procesos.
Se trata de un fenómeno en el sector informático. Aquellos responsables
informáticos que se oponen a la utilización de los terminales no programables,
acaban siendo marginados por la presión de los usuarios. Debemos destacar
que el puesto de trabajo basado en un microcomputador conectado a una red,
favorece la flexibilidad y el dinamismo en las organizaciones. Entre otras
razones, porque permite modificar la ubicación de los puestos de trabajo, dadas
las ventajas de la red.
• Los Servidores o Back-End. «Una máquina que suministra una serie de
servicios como Bases de Datos, Archivos, Comunicaciones,...)». Los Servidores,
según la especialización y los requerimientos de los servicios que debe
suministrar pueden ser:
o Mainframes
o Minicomputadoras
o Especializados (dispositivos de red, imagen, etc.)

Introducción a los Sistemas Distribuidos
Una característica a considerar es que los diferentes servicios, según el caso,
pueden ser suministrados por un único Servidor o por varios Servidores
especializados.
Las Comunicaciones en sus dos vertientes:
• Infraestructura de redes
Componentes Hardware y Software que garantizan la conexión física y la
transferencia de datos entre los distintos equipos de la red.
• Infraestructura de comunicaciones
Componentes Hardware y Software que permiten la comunicación y su gestión,
entre los clientes y los servidores.
La arquitectura Cliente/Servidor es el resultado de la integración de dos culturas.
Por un lado, la del Mainframe que aporta capacidad de almacenamiento,
integridad y acceso a la información y, por el otro, la del computador que aporta
facilidad de uso (cultura de PC), bajo costo, presentación atractiva (aspecto
lúdico) y una amplia oferta en productos y aplicaciones.
 Características del modelo Cliente/Servidor
En el modelo Cliente/Servidor podemos encontrar las siguientes características:
1. El Cliente y el Servidor pueden actuar como una sola entidad y también
pueden actuar como entidades separadas, realizando actividades o tareas
independientes.
2. Las funciones de Cliente y Servidor pueden estar en plataformas separadas, o
en la misma plataforma.
3. Un servidor proporciona servicio a múltiples clientes en forma concurrente.
4. Cada plataforma puede ser escalable independientemente. Los cambios
realizados en las plataformas de los Clientes o de los Servidores, ya sean por
actualización o por reemplazo tecnológico, se realizan de una manera
transparente para el usuario final.
5. La interrelación entre el hardware y el software están basados en una
infraestructura poderosa, de tal forma que el acceso a los recursos de la red no
muestra la complejidad de los diferentes tipos de formatos de datos y de los
protocolos. Un sistema de servidores realiza múltiples funciones al mismo
tiempo que presenta una imagen de un sólo sistema a las estaciones Clientes.
Esto se logra combinando los recursos de cómputo que se encuentran
físicamente separados en un sistema lógico, proporcionando de esta manera el
servicio más efectivo para el usuario final.

Comunicación entre Procesos
Objetivos
Objetivos Comunicación entre Procesos
Con la finalidad de enfatizar los conceptos más representativos del entorno de
comunicación entre procesos se realizarán dos ejercicios prácticos sobre el
manejo de sockets y RPC.
El protocolo TCP/IP y conjuntos de UDP son dominantes, incluso para los
sistemas distribuidos que son implementados sobre redes de área local. Los
sockets son mecanismos en estos protocolos que permiten que un cliente y
servidor puedan comunicarse escribiendo a o leyendo de sus sockets.
La mayoría de los servicios Web y las aplicaciones de acceso remoto actuales
utilizan un enfoque de llamadas a procedimientos remotos (RPC, Remote


RPC
Los RPC o Llamados a Procedimientos Remotos (“Remote Procedure Call”) son
mecanismos que permiten crear una comunicación entre procesos (cliente-
servidor), al igual que los Sockets, pero la diferencia con estos es que mientras
que los Sockets permiten enviar y transmitir caracteres, los RPC utilizan a los
Sockets para crear una comunicación de más alto nivel.
Los RPC permiten llamar a una función que está en otro programa y
generalmente en otra máquina, para lo cual el paso de parámetros a la función
remota se efectúa a través de algún protocolo de representación de datos (XDR,
eXternal Data Representation).
Mientras que a nivel de la capa de transporte el concepto de puerto existe para
poder enviar información entre procesos, los RPC definen un concepto llamado
número de programa. Este, junto con el uso de la versión del programa permite
que los servidores y clientes puedan comunicarse.
Programación con RPCs
Dentro de las funciones para programar con RPC existen tres niveles:

Nivel alto: En la práctica se usa sólo para aplicaciones muy específicas
con poca utilidad.
Nivel Bajo: Es en donde se pueden mezclar programación con RPCs y
Sockets.
Nivel Medio: Permite disponer de la mayor parte de las ventajas de RPCs
sin tener que entrar en el detalle de su implementación bajo Sockets. En
este nivel representaremos nuestro ejercicio práctico.




Sistemas Distribuidos UNIDAD II


2.1 COMUNICACIÓN
La comunicación entre procesos en sistemas con un único procesador se lleva a cabo mediante el uso de memoria compartida entre los procesos. En los sistemas distribuidos, al no haber conexión física entre las distintas memorias de los equipos, la comunicación se realiza mediante la transferencia de mensajes.

   2.1.1 Comunicación Cliente-Servidor
Sockets
Es un mecanismo de comunicación, Permite a los sistemas cliente/servidor ser desarrollados Localmente en una sola máquina A través de redes. Funciones tales como impresión, utilerías de red, tales como rlogin y ftp, usualmente usan sockets para comunicarse.

Socket designa un concepto abstracto por el cual dos programas (posiblemente situados en computadoras distintas) pueden intercambiarse cualquier flujo de datos, generalmente de manera fiable y ordenada.
Un socket queda definido por una dirección IP, un protocolo y un número de puerto.

Explicación detallada

Para que dos programas puedan comunicarse entre sí es necesario que se cumplan ciertos requisitos:
  • Que un programa sea capaz de localizar al otro.
  • Que ambos programas sean capaces de intercambiarse cualquier secuencia de octetos, es decir, datos relevantes a su finalidad.
  • Para ello son necesarios los tres recursos que originan el concepto de socket:
  • Un protocolo de comunicaciones, que permite el intercambio de octetos.
  • Una dirección del Protocolo de Red (Dirección IP, si se utiliza el Protocolo TCP/IP), que identifica una computadora.
Un número de puerto, que identifica a un programa dentro de una computadora.
Los sockets permiten implementar una arquitectura cliente-servidor. La comunicación ha de ser iniciada por uno de los programas que se denomina programa cliente. El segundo programa espera a que otro inicie la comunicación, por este motivo se denomina programa servidor.
Un socket es un fichero existente en la máquina cliente y en la máquina servidora, que sirve en última instancia para que el programa servidor y el cliente lean y escriban la información. Esta información será la transmitida por las diferentes capas de red.


   2.1.2 Comunicación RPC
Otro paso en el diseño de un sistema operativo distribuido plantea las llamadas a procedimientos remotos o RPCs. Los RPC amplían la llamada local a procedimientos, y los generalizan a una llamada a un procedimiento localizado en cualquier lugar de todo el sistema distribuido. En un sistema distribuido no se debería distinguir entre llamadas locales y RPCs, lo que favorece en gran medida la transparencia del sistema.Una de las dificultades más evidentes a las que se enfrenta el RPC es el formato de los parámetros de los procedimientos. Un ejemplo es la posibilidad de que en un sistema distribuido formado por diferentes tipos de ordenadores, un ordenador con formato little endian llamara a un procedimiento de otro ordenador con formato big endian, etc. Este problema se podría solucionar si tenemos en cuenta que ambos programas conocen el tipo de datos de los parámetros, o estableciendo un estándar en el formato de los parámetros, de forma que sea usado de forma única.

   2.1.3 Comunicación en grupo
La comunicación en grupo tiene que permitir la definición de grupos, así como características propias de los grupos, como la distinción entre grupos abiertos o que permiten el acceso y cerrados que lo limitan, o como la distinción del tipo de jerarquía dentro del grupo. Igualmente, los grupos han de tener operaciones relacionadas con su manejo, como la creación o modificación.

   2.1.4 Tolerancia a fallos
Que el sistema de archivos sea tolerante a fallos implica que el sistema debe guardar varias copias del mismo archivo en distintos ordenadores para garantizar la disponibilidad en caso de fallo del servidor original. Además, se ha de aplicar un algoritmo que nos permita mantener todas las copias actualizadas de forma consistente, o un método alternativo que sólo nos permita acceder al archivo actualizado, como invalidar el resto de copias cuando en cualquiera de ellas se vaya a realizar una operación de escritura. El uso de memorias cache para agilizar el acceso a los archivos también es recomendable, pero este caso requiere analizar con especial atención la consistencia del sistema.

2.2 SINCRONIZACIÓN
El modelo cliente-servidor basa la comunicación en una simplificación del modelo OSI. Las siete capas que proporciona producen un desaprovechamiento de la velocidad de transferencia de la red, con lo que sólo se usarán tres capas: física (1), enlace de datos (2) y solicitud/respuesta (5). Las transferencias se basan en el protocolo solicitud/respuesta y se elimina la necesidad de conexión.

   2.2.1 Relojes físicos

El algoritmo de Lamport proporciona un orden de eventos sin ambigüedades, pero:
Los valores de tiempo asignados a los eventos no tienen porqué ser cercanos a los tiempos reales en los que ocurren.
En ciertos sistemas (ej.: sistemas de tiempo real), es importante la hora real del reloj:
Se precisan relojes físicos externos (más de uno).
Se deben sincronizar:
Con los relojes del mundo real.
Entre sí.
La medición del tiempo real con alta precisión no es sencilla.
Desde antiguo el tiempo se ha medido astronómicamente.
Se considera el día solar al intervalo entre dos tránsitos consecutivos del sol, donde el tránsito del sol es el evento en que el sol alcanza su punto aparentemente más alto en el cielo.
El segundo solar se define como 1 / 86.400 de un día solar.
Como el período de rotación de la tierra no es constante, se considera el segundo solar promedio de un gran número de días.
Los físicos definieron al segundo como el tiempo que tarda el átomo de cesio 133 para hacer 9.192.631.770 transiciones:
Se tomó este número para que el segundo atómico coincida con el segundo solar promedio de 1958.

   2.2.2 Relojes Lógicos

Las computadoras poseen un circuito para el registro del tiempo conocido como dispositivo reloj.
    Es un cronómetro consistente en un cristal de cuarzo de precisión sometido a una tensión eléctrica que:
  • Oscila con una frecuencia bien definida que depende de:
    • La forma en que se corte el cristal.
    • El tipo de cristal.
    • La magnitud de la tensión.
  • A cada cristal se le asocian dos registros:
    • Registro contador.
    • Registro mantenedor.
  • Cada oscilación del cristal decrementa en 1” al contador.
  • Cuando el contador llega a “0”:
    • Se genera una interrupción.
    • El contador se vuelve a cargar mediante el registro mantenedor.
  • Se puede programar un cronómetro para que genere una interrupción “x” veces por segundo.
  • Cada interrupción se denomina marca de reloj.

Para una computadora y un reloj:
  • No interesan pequeños desfasajes del reloj porque:
    • Todos los procesos de la máquina usan el mismo reloj y tendrán consistencia interna.
    • Importan los tiempos relativos.
Para varias computadoras con sus respectivos relojes:
  • Es imposible garantizar que los cristales de computadoras distintas oscilen con la misma frecuencia.
  • Habrá una pérdida de sincronía en los relojes (de software), es decir que tendrán valores distintos al ser leídos.

   2.2.3 Uso de la sincronización
La Oficina Internacional de la Hora en París (BIH) recibe las indicaciones de cerca de 50 relojes atómicos en el mundo y calcula el tiempo atómico internacional (TAI).
Como consecuencia de que el día solar promedio (DSP) es cada vez mayor, un día TAI es 3 mseg menor que un DSP:
La BIH introduce segundos de salto para hacer las correcciones necesarias para que permanezcan en fase:
El sistema de tiempo basado en los segundos TAI.
El movimiento aparente del sol.
Surge el tiempo coordenado universal (UTC).
El Instituto Nacional del Tiempo Estándar (NIST) de EE. UU. y de otros países:
Operan estaciones de radio de onda corta o satélites de comunicaciones.
Transmiten pulsos UTC con cierta regularidad establecida (cada segundo, cada 0,5 mseg, etc.).
Se deben conocer con precisión la posición relativa del emisor y del receptor:
Se debe compensar el retraso de propagación de la señal.
Si la señal se recibe por módem también se debe compensar por la ruta de la señal y la velocidad del módem.
Se dificulta la obtención del tiempo con una precisión extremadamente alta.
                               
2.3 NOMINACIÓN
Correspondencia entre objetos de datos lógicos y físicos.

Por ejemplo, los usuarios tratan con objetos de datos lógicos representados por nombre de archivos, mientras que el sistema manipula bloques de datos físicos almacenados en las pistas de los discos.
Generalmente un usuario se refiere a un archivo utilizando un nombre, el cual se     transforma en un identificador numérico de bajo nivel, que a su vez se corresponde con bloques en disco. Esta correspondencia multinivel ofrece a los usuarios la abstracción de un archivo, que oculta los detalles de cómo y donde se almacena el archivo en disco.
 Si se extiende un poco mas el tratamiento de los archivos como abstracciones, llegamos a la posibilidad de replicas de archivos. Dado un nombre de archivo, la correspondencia devuelve un conjunto de posiciones de las replicas de este archivo. En esta abstracción se ocultan tanto la experiencia de copias como su ubicación.

    2.3.1 Características y su estructura
Los usuarios tratan con objetos de datos lógicos representados por nombre de archivos, mientras que el sistema manipula bloques de datos físicos almacenados en las pistas de los discos.
}  Generalmente un usuario se refiere a un archivo utilizando un nombre, el cual se transforma en un identificador numérico de bajo nivel, que a su vez se corresponde con bloques en disco. Esta correspondencia multinivel ofrece a los usuarios la abstracción de un archivo, que oculta los detalles de cómo y donde se almacena el archivo en disco.

}   Si se extiende un poco mas el tratamiento de los archivos como abstracciones, llegamos a la posibilidad de replicas de archivos. Dado un nombre de archivo, la correspondencia devuelve un conjunto de posiciones de las replicas de este archivo. En esta abstracción se ocultan tanto la experiencia de copias como su ubicación.

    2.3.2 Tipos de Nombres
}  Hay tres enfoques principales para los esquemas de nominación.
}   En el enfoque más sencillo, los archivos se nombran con una combinación del nombre de su anfitrión y su nombre local, lo que garantiza un nombre único dentro de todo el sistema.
}  El segundo enfoque popularizado por el sistema de archivos de red (NFS, Network File System) de sun, ofrece una forma de unir directorios remotos a directorios locales, lo que da la apariencia a un árbol de directorios coherentes.
}  El tercer enfoque es la estructura mas compleja y difícil de mantener en la NFS, ya que cualquier directorio se puede unir a cualquier árbol de direcciones locales y la jerarquía resultante puede estar poco estructurada.

    2.3.3 Resolución y distribución

}  Existen dos conceptos que hay que distinguir en relación con al correspondencia de nombres en un SD:

}  Transparencia de Nominación: El nombre de archivo no revela ningún indicio sobre de la ubicación del almacenamiento físico del archivo.
}  Independencia de Ubicación: No es necesario modificar el nombre de un archivo cuando cambia su ubicación en el almacenamiento físico.

    2.3.4 Servidores y agentes de nombre
Para implantar una nominación transparente se requiere un mecanismo para correspondencia entre un nombre de archivo y la ubicación asociada. Para que esta correspondencia sea manejable, hay que agrupar conjuntos de archivos en unidades componentes y proporcionar la correspondencia según las unidades componentes, no por archivos.

    2.3.5 Mapas de direcciones
}  Existe una coherencia directa entre los accesos y el tráfico que va y viene del servidor. De notar que se presenta una analogía directa entre los métodos de acceso a disco en los sistemas de archivos convencionales y el método de servicio remoto en un SD. El método de servicio análogo efectúa un acceso al disco para cada solicitud de acceso.

}  Una manera de lograr esta transferencia es a través del método de servicio remoto, con el cual se entregan al servidor las solicitudes de acceso, la maquina servidora lleva a cabo dichos accesos y los usuarios se devuelven al usuario

    2.3.6 Mapas de rutas
En un sistema distribuido, el usar un nombre para los propósitos de la comunicación no es bastante. Porque los procesos en ejecución se comunican desde diferentes computadoras. El conocimiento de su localización actual es necesario. Esto conduce a los términos básicos en esta área: un nombre, una dirección, y una ruta. El significado de estos términos se puede explicar usando las definiciones intuitivas siguientes (Shoch 1978):
1. El nombre de un objeto (por ejemplo, recursos, servidor) específico que el proceso busca (al qué desea tener acceso)
2. Una dirección especifica donde ésta
3. Una ruta especifica cómo esta ahí
Cada uno de estos identificadores representa un atascamiento más apretado de la información:
1.       Los nombres son mapeados en direcciones. Este mapeo es necesario para la aplicación en ejecución, puesto que la sintaxis y la semántica de nombres dependen enteramente de qué tipos de entidades se están nombrando y también qué uso se está haciendo de ellas; y 2. Las direcciones son mapeadas en los routeadores.