You are on page 1of 32

S.E.

P

S.E.S.

D.G.E.S.T

I NS TI T U T O

T E C N O L ÓG I C O

D E

C AN C Ú N

LICENCIATURA EN INFORMATICA
ALUMNO:

Chávez Javier Roberto ASIGNATURA:

Sistemas Operativos II

PROFESOR:

Raúl Ramírez Lozano

TRABAJO:

Unidad 2

CANCÚN QUINTANA ROO A 25 DE MAYO DE 2011

Contenido
2.1 comunicación Sod .................................................................................................................................... 3 2.1.1.- Comunicación cliente/servidor sockets ............................................................................................ 3 2.1.2.- Comunicación con RPC .................................................................................................................... 6 2.1.3.- Comunicación en grupo ................................................................................................................... 8 2.1.4.- Tolerancia a fallos ............................................................................................................................ 9 2.2.- Sincronización sistemas distribuidos....................................................................................................... 9 2.2.1.- Relojes físicos ................................................................................................................................ 10 2.2.2.- Relojes Lógicos .............................................................................................................................. 10 2.2.3.- Usos de la sincronización, manejo de cache, comunicación en grupo, exclusión mutua elección transacciones atómicas e interbloqueo .................................................................................................... 13 2.3.- Nominación característica y estructuras ............................................................................................... 18 2.3.2.- Tipos de nombres usuario y de sistema ......................................................................................... 19 2.3.3.- Resolución y Distribución............................................................................................................... 23 2.3.4.- Servidores y agentes de nombres .................................................................................................. 23 2.3.5.- Mapeo de direcciones ................................................................................................................... 24 2.3.6.- Mapeo de rutas ............................................................................................................................. 24 2.3.7.- Modelo de Terry ............................................................................................................................ 26

1

Comunicación en los sistemas operativos distribuidos

La sincronización en sistemas de un único ordenador no requiere ninguna consideración en el diseño del sistema operativo, ya que existe un reloj único que proporciona de forma regular y precisa el tiempo en cada momento. Sin embargo, los sistemas distribuidos tienen un reloj por cada ordenador del sistema, con lo que es fundamental una coordinación entre todos los relojes para mostrar una hora única. Los osciladores de cada ordenador son ligeramente diferentes, y como consecuencia todos los relojes sufren un desfase y deben ser sincronizados continuamente. La sincronización no es trivial, porque se realiza a través de mensajes por la red, cuyo tiempo de envío puede ser variable y depender de muchos factores, como la distancia, la velocidad de transmisión o la propia saturación de la red, etc. 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. Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado esa es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local. Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo. Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc. Características de los Sistemas Operativos distribuidos:  Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software .  Gobierna operación de un S.C. y proporciona abstracción de máquina virtual a los usuarios.  Objetivo clave es la transparencia.  Generalmente proporcionan medios para la compartición global de recursos.  Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para distribución de cálculos (a través de comunicación de procesos internodos, llamadas a procedimientos remotos, etc.).
2

Esta necesidad dio origen a la primera especificación e implementación de sockets. Los servicios pueden ser: 1) Ejecución de un programa.1.2. Los procesos. Protocolos con Capas: Debido a la ausencia de memoria compartida. que lo proporciona. En la universidad de Berkeley. en otro equipo.Comunicación cliente/servidor sockets Origen de los socket tuvo lugar en una variante del sistema operativo Unix conocida como BSD Unix. en los inicios del Internet. para comunicarse. ya que descentraliza los procesos y los recursos. 2.. estos protocolos toman frecuentemente la forma de varias capas y cada capa tiene sus propias metas y reglas.1. pronto se hizo evidente que los programadores necesitarían un medio sencillo y eficaz para escribir programas capaces de intercomunicarse entre sí. 3 . Es un Sistema donde el cliente es una aplicación. Para los sistemas distribuidos en un área amplia. En un sistema de un solo procesador la comunicación supone implícitamente la existencia de la memoria compartida.1 comunicación Sod La diferencia más importante entre un sistema distribuido y un sistema de un único procesador es la comunicación entre procesos. En un sistema distribuido no existe la memoria compartida y por ello toda la naturaleza de la comunicación entre procesos debe replantearse. en un equipo. toda la comunicación en los sistemas distribuidos se basa en la transferencia de mensajes. una importante opción es la ³llamada a un procedimiento remoto´. También es importante considerar las posibilidades de comunicación entre grupos de procesos. 2) Acceso a una Base de Datos. Cliente-Servidor es el modelo que actualmente domina el ámbito de comunicación. que solicita un determinado servicio y existe un software. deben apegarse a reglas conocidas como protocolos. Los mensajes se intercambian de diversas formas. existiendo muchas opciones de diseño al respecto. no solo entre dos procesos.

¿Cómo funciona? Normalmente. generalmente de manera fiable y ordenada. que identifica a un programa dentro de una computadora. un servidor funciona en una computadora específica usando un socket con un número de puerto específico. que permite el intercambio de octetos. El cliente conoce el nombre de la maquina (hostname) o el IP. este abre un socket en un puerto diferente. Un Socket es un archivo existente en el cliente y en el servidor. Mientras el segundo programa espera a que el otro inicie la comunicación (servidor). para que pueda continuar escuchando en el puerto original nuevas peticiones de conexión. El cliente y el servidor pu8eden ahora comunicarse escribiendo o leyendo en sus respectivos sockets. Si el cliente lanza una demanda de conexión y el servidor acepta la conexión. Que ambos programas sean capaces de intercambiarse información. Solo se requiere un medio físico de comunicación entre las máquinas y dependerá de a la naturaleza de este medio la vialidad del sistema. 4 . mientras que atiende a las peticiones del cliente conectado. Si un socket es un punto final de un puente de comunicaron de dos vías entre dos programas que se comunican a través de la red. Un socket es un punto final de comunicación al cual se puede asociar un nombre. Solo se requiere un medio físico de comunicación entre las máquinas y dependerá de a la naturaleza de este medio la vialidad del sistema. La comunicación es iniciada por uno de los programas (cliente). que identifica una computadora. c) Un número de puerto. b) Una dirección del Protocolo de Red (Dirección IP. Definición de Socket: designa un concepto abstracto por el cual dos programas (posiblemente situados en computadoras distintas) pueden intercambiarse cualquier flujo de datos. Los sockets proporcionan una comunicación de dos vías. punto a punto entre dos procesos. Con un socket se logra implementar una arquitectura cliente-servidor. Los sockets son muy versátiles y son un componente básico de comunicación entre interprocesos e intersistemas.3) Acceso a un dispositivo de hardware. en la cual el servidor está funcionando y el número del puerto con el servidor está conectado. Para lograr tener un socket es necesario que se cumplan ciertos requisitos: ‡ ‡ Que un programa sea capaz de localizar al otro. si se utiliza el Protocolo TCP/IP). Por lo que son necesarios tres recursos que originan el concepto de socket a) Un protocolo de comunicaciones.

Las propiedades de un socket dependen de las características del protocolo en el que se implementan. El protocolo más utilizado es TCP. Los procesos se comunican solamente entre los sockets del mismo tipo. II. 2) Una vez que se conecta alguien. Los procesos se comunican solamente entre los sockets del mismo tipo. Se garantiza la transmisión de todos los octetos sin errores ni omisiones. 1) Establece una conexión con el servidor (Crea un socket con el servidor). Esto comúnmente se hace para que el servidor pueda atender a varios clientes al mismo tiempo. Los sockets tienen las siguientes propiedades: I. Orientado a conexión. El servidor actúa así. 1) Inicializa un puerto de comunicación. y sin duplicados sin límites de grabación. Se garantiza que todo octeto llegará a su destino en el mismo orden en que se ha transmitido.Los tipos de socket definen las propiedades de comunicación visibles para la aplicación. 3) Se comunica con el cliente mediante el socket creado entre el cliente y él. El flujo opera en forma parecida a una conversación telefónica. El tipo 5 . 2) Mandar mensajes al servidor o Esperar un mensaje de él. crea un hilo de ejecución para este usuario mientras que el thread principal vuelve al paso 1. en espera de clientes que intenten conectarse a él (Crea un serverSocket). aunque también es posible utilizar UDP o IPX. 4) Espera que el cliente se vaya o lo bota el mismo servidor (Cierra el socket entre ellos) y elimina el thread de comunicación entre ellos. 5) Cerrar la conexión con el servidor. Existen cinco tipos de sockets. Los tipos de socket definen las propiedades de comunicación visibles para la aplicación. Existen tres tipos básicos de sockets: ‡ Socket de flujo: da un flujo de datos de dos vías. 4) Repetir los pasos 2 y 3 mientras sea necesario. Gracias al protocolo TCP. confiable. (Consultas) 3) Esperar su respuesta o contestarle (existen casos en que este paso no es necesario). El Cliente actúa de la siguiente forma.

RPC fue desarrollado por Sun Microsystems y es una 6 .. Los sockets de datagrama operan parecidos a pasar cartas hacia adelante y hacia atrás en el correo.1.del socket es SOCK_STREAM. pero es habitual utilizar ciclos infinitos (while (true)) en los servidores. Los límites de grabación en los datos son preservados. Una vez conectado. a la espera de conexiones.Comunicación con RPC RCP (remote procedure call) El mecanismo general para las aplicaciones cliente-servidor se proporciona por el paquete Remote Procedure Call (RPC). El tipo de socket es SOCK_DGRAM. el servidor deja de ofrecer su servicio. lee una cadena del servidor y la escribe en la pantalla Programa servidor: El programa servidor se instala en un puerto determinado. el cual en el dominio de internet usa UDP (User Datagram Protocol). ‡ Implementando un socket en java: En un programa Cliente-Servidor un socket nos ayuda a representar las conexiones entre un programa cliente y uno servidor. En un socket de datagrama podría recibir mensajes en diferente orden de la secuencia de la cual los mensajes fueron enviados. Socket de paquete secuencial: Da una conexión de dos vías. El tipo de socket es SOCK_SEQPACKET. Programa cliente: El programa cliente se conecta a un servidor indicando el nombre de la máquina y el número puerto (tipo de servicio que solicita) en el que el servidor está instalado. Este servidor sólo atenderá hasta tres clientes. le saluda con una frase ³Hola cliente N´. ‡ Socket de datagrama: Soporta un flujo de mensajes de dos vías. En el lado del cliente se utiliza la clase Socket y en el del servidor el Server Socket para representar dichas conexiones. Tras atender cuatro clientes. No hay protocolo en Internet implementado para este tipo de socket. a las que tratará mediante un segundo SOCKET. secuencial y confiable para datagramas de una longitud fija máxima. y después finalizará su ejecución. para que atiendan llamadas continuamente. Ejemplo cada vez que se presenta un cliente. 2. el cual en el dominio de Internet usa TCP (Transmission Control Protocol).2.

Sun amablemente ha puesto RPC en el dominio público./rpc. Aplicaciones importantes construidas sobre RPC son NIS. El stub cliente reúne luego los parámetros y los empaqueta en un mensaje. El procedimiento servidor no tiene forma de saber que está siendo activado remotamente. En una WAN. Paso 1. Que desempaqueta los parámetros. debido a que se lo llama desde un procedimiento local que cumple con todas las reglas estándares. Los parámetros pueden pasarse de la manera usual y hasta aquí el cliente no nota nada inusual en esta llamada ya que es una llamada local normal. El servidor invocará el procedimiento indicado en nombre del cliente. En el primero de los cuales el programa cliente (o procedimiento) llama al procedimiento stub enlazado en su propio espacio de direcciones. RPC confía en sockets estandard UDP y TCP para transportar los datos en formato XDR hacia el host remoto. la transmisión real puede ser más complicada. todos los datos intercambiados entre el cliente y el servidor se convierten al formato External Data Representation (XDR) por el emisor. la entidad de transporte lo pasa al stub del servidor Paso 4. Paso 5. se describe en una serie de RFCs. y son reconvertidos a la representación local por el receptor. cada conjunto se llama un programa y es identificado de forma única por un número de programa. Después que ha completado su trabajo. En la llamada remota toma 10 pasos. Sistema de Información de Red y NFS. Cuando el mensaje llega al servidor.colección de herramientas y funciones de biblioteca. El stub servidor llama luego al procedimiento servidor. Un servidor RPC consiste en una colección de procedimientos que un cliente puede solicitar por el envío de una petición RPC al servidor junto con los parámetros del procedimiento. Sistema de Ficheros de Red. Un servidor RPC ofrece una o más colecciones de procedimientos. Paso 3. Pasándole los parámetros de manera estándar. Únicamente el stub sabe que está ocurriendo algo particular. La comunicación entre servidores RPC y clientes es un tanto peculiar. Una lista que relaciona nombres de servicio con números de programa se mantiene usualmente en /etc. Esta operación se conoce como reunión de argumentos (parameter marshalling). Después que se ha construido el mensaje. entregando el valor de retorno. Para ser independiente de la máquina. el procedimiento servidor retorna 7 . la entidad de transporte probablemente sólo le agrega al mensaje un encabezamiento y lo coloca en la subred sin mayor trabajo. En un sistema LAN con un servicio sin conexiones. se lo pasa a la capa de transporte para su transmisión Paso 2. si hay alguno.

el stub cliente retorna a su llamador. Paso 7. Después que la respuesta retorna a la máquina cliente. como la distinción entre grupos abiertos o que permiten el acceso y cerrados que lo limitan. se dice que el mecanismo es transparente. Paso 8. Paso 9. el procedimiento cliente y cualquier valor devuelto por el servidor en el paso 6. los grupos han de tener operaciones relacionadas con su manejo. una inspección más de cerca revela algunas dificultades en alcanzar la total transparencia. solo escucha aquel a quien se dirigió el mensaje. De la misma forma en que retornan otros procedimientos cuando terminan y.  Unicast o pointcast: un nodo emite y otro recibe. Paso 10. El stub servidor empaqueta luego el resultado en un mensaje y lo entrega a la interfaz con transporte. Sin embargo. El propósito de todo el mecanismo es darle al cliente (procedimiento cliente) la ilusión de que está haciendo una llamada a un procedimiento local.  Identificador de grupo: se forman grupos y el mensaje es dirigido solo a los miembros de ese grupo. La misma se entrega al stub cliente. puede retornar un resultado a un llamador. o como la distinción del tipo de jerarquía dentro del grupo.Comunicación en grupo La comunicación en grupo tiene que permitir la definición de grupos. Posiblemente mediante una llamada al sistema. 2.Paso 6. como la creación o modificación.. se entrega al cliente. al igual que en el paso 2. Que desempaqueta las respuestas. 8 .1. Finalmente. desde luego.  Una clasificación adicional es la realizada en base a grupos:  Listas de destinarios: se tiene una lista de aquellos a los que se les enviara el mensaje. así como características propias de los grupos. Igualmente. La comunicación se clasifica de acuerdo al número de usuarios a los que se les ha enviado el mensaje. Dado el éxito de la ilusión. ya que el cliente no puede saber que el servidor es remoto.  Broadcast o difusión forzada: un nodo emite todos los escuchan y solo contesta a quien va dirigido el mensaje  Multicast: se entrega el mensaje a todos los anfitriones HOST que están compuestos de ciertas características.3.

9 . solo escucha aquel a quien se dirigió el mensaje. Estos métodos no se ajustan para ser usados en sistemas distribuidos ya que invariablemente se basan en la existencia de una memoria compartida.Tolerancia a fallos La difusión de los sistemas distribuidos incrementa la demanda de sistemas que esencialmente nunca fallen. datos. Idealmente. etc.Sincronización sistemas distribuidos En sistemas con una única CPU las regiones críticas.. software. La réplica de archivos sería un requisito esencial. No es posible reunir toda la información sobre el sistema en un punto y que luego algún proceso la examine y tome las decisiones. comunicaciones. un sistema distribuido debería ser más confiable que las máquinas individuales. la exclusión mutua y otros problemas de sincronización son resueltos generalmente utilizando métodos como semáforos y monitores. 2. Los sistemas tolerantes a fallos requerirán cada vez más una considerable redundancia en hardware. En general los algoritmos distribuidos tienen las siguientes propiedades: ‡ ‡ ‡ ‡ la información relevante está repartida entre muchas máquinas los procesos toman decisiones basadas solamente en la información local disponible debería poder evitarse un solo punto que falle en el sistema no existe un reloj común u otro tiempo global exacto Si para asignar un recurso de E/S un proceso debe recolectar información de todos los procesos para tomar la decisión esto implica una gran carga para este proceso y su caída afectaría en mucho al sistema. 2. Los tiempos de fallo aceptables por los usuarios serán cada vez menores.4. Predicador de pertenencia: se envía y otro recibe.1.. Alcanzar la sincronización sin la centralización requiere hacer cosas en forma distinta a los sistemas operativos tradicionales.2. También debería contemplarse la posibilidad de que los sistemas funcionen aún con la carencia de parte de los datos.

2.1. es importante la hora real del reloj.2.2. En ciertos sistemas (ej. pero los valores de tiempo asignados a los eventos no tienen por qué ser cercanos a los tiempos reales en los que ocurren. UU. etc. Como consecuencia de que el día solar promedio (DSP) es cada vez mayor.Relojes físicos El algoritmo de Lamport proporciona un orden de eventos sin ambigüedades. Surge el tiempo coordenado universal (UTC). 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 el período de rotación de la tierra no es constante. Desde antiguo el tiempo se ha medido astronómicamente. Entre sí. Se considera el día solar al intervalo entre dos tránsitos consecutivos del sol.. Se tomó este número para que el segundo atómico coincida con el segundo solar promedio de 1958. 2. se considera el segundo solar promedio de un gran número de días.192.631.).. La BIH introduce segundos de salto para hacer las correcciones necesarias para que permanezcan en fase. El movimiento aparente del sol.5 mseg. Los físicos definieron al segundo como el tiempo que tarda el átomo de cesio 133 para hacer 9. Se dificulta la obtención del tiempo con una precisión extremadamente alta. La medición del tiempo real con alta precisión no es sencilla.400 de un día solar. El segundo solar se define como 1 / 86. un día TAI es 3 mseg menor que un DSP. cada 0. Y de otros países: Operan estaciones de radio de onda corta o satélites de comunicaciones.Relojes Lógicos 10 . El sistema de tiempo basado en los segundos TAI. sistemas de tiempo real).770 transiciones. 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. Se deben sincronizar: Con los relojes del mundo real. El Instituto Nacional del Tiempo Estándar (NIST) de EE. donde el tránsito del sol es el evento en que el sol alcanza su punto aparentemente más alto en el cielo. Transmiten pulsos UTC con cierta regularidad establecida (cada segundo.2. Se precisan relojes físicos externos (más de uno). 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.

Cuando el contador llega a ³0´:Se genera una interrupción.Para ciertos algoritmos lo que importa es la consistencia interna de los relojes: ‡ ‡ No interesa su cercanía particular al tiempo real (oficial). A cada cristal se le asocian dos registros: ‡ ‡ Registro contador.Se puede programar un cronómetro para que genere una interrupción ³x´ veces por segundo. Importan los tiempos relativos. El tipo de cristal. Registro mantenedor.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: ‡ ‡ ‡ Al forma en que se corte el cristal. 11 . La magnitud de la tensión. pero sí importa que coincidan en el orden en que ocurren los eventos. Lamport demostró que la sincronización de relojes es posible y presentó un algoritmo para lograrlo.Las computadoras poseen un circuito para el registro del tiempo conocido como dispositivo reloj. Lamport señaló que la sincronización de relojes no tiene que ser absoluta: Si 2 procesos no interactúan no es necesario que sus relojes estén sincronizados.El contador se vuelve a cargar mediante el registro mantenedor. Habrá una pérdida de sincronía en los relojes (de software). Cada oscilación del cristal decremento en ³1´ al contador. Los relojes se denominan relojes lógicos.Generalmente lo importante no es que los procesos estén de acuerdo en la hora.Cada interrupción se denomina marca de reloj. Para varias computadoras con sus respectivos relojes: ‡ ‡ ‡ Es imposible garantizar que los cristales de computadoras distintas oscilen con la misma frecuencia. La diferencia entre los valores del tiempo se llama distorsión del reloj y podría generar fallas en los programas dependientes del tiempo. es decir que tendrán valores distintos al ser leídos.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.

entonces ³x ±> y´ no es verdadero. el proceso ³1´ considerará que tardó 10 marcas de reloj en viajar. entonces ³a ±> b´ es verdadero. Lamport definió la relación ocurre antes de (happensbefore): ‡ Sí ³a´ y ³b´ son eventos en el mismo proceso y ³a´ ocurre antes de ³b´. cada una con su propio reloj y velocidad: El proceso ³0´ envía el mensaje ³a´ al proceso ³1´ cuando el reloj de ³0´ marca ³6´. y nunca hacia atrás (decreciente).Los relojes físicos son relojes que: ‡ ‡ Deben ser iguales (estar sincronizados). lo cual es imposible. Necesitamos una forma de medir el tiempo tal que a cada evento ³a´. pero tampoco lo es ³y ±> x´: Se dice que son eventos concurrentes. le podamos asociar un valor del tiempo ³C(a)´ en el que todos los procesos estén de acuerdo: Se debe cumplir que: Sí ³a ±> b´ entonces ³C(a) <C (b)´. No deben desviarse del tiempo real más allá de cierta magnitud. El mensaje ³b´ de ³1´ a ³2´ tarda 16 marcas de reloj. Si el mensaje acarrea el tiempo de inicio ³6´. siempre debe ir hacia adelante (creciente). Consideramos tres procesos que se ejecutan en diferentes máquinas. entonces ³a ±> c´. El tiempo del reloj. ³Ocurre antes de´ es una relación transitiva:Si ³a ±> b´ y ³b ±> c´. El proceso ³1´ recibe el mensaje ³a´ cuando su reloj marca ³16´. tardaría un tiempo negativo. El mensaje ³c´ de ³2´ a ³1´ sale en ³60´ y llega en ³56´. Para sincronizar los relojes lógicos. 12 . ³C´. El algoritmo de Lamport asigna tiempos a los eventos. ‡ Si dos eventos ³x´ e ³y´ están en procesos diferentes que no intercambian mensajes.

Esquema Básico. para así manejar localmente los accesos repetidos a la misma información y no aumentar el tráfico de la red. esta política requiere que cada acceso de escritura espere hasta que se envíe la información al servidor. NFS proporciona el acceso de escritura directa. manejo de cache. en un SAD el objetivo es reducir el tráfico en la red. Políticas de Actualización. exclusión mutua elección transacciones atómicas e interbloqueo Memoria Caché En los sistemas de archivos convencionales. la política empleada para escribir los bloques de datos modificados en la copia maestra del servidor tiene un efecto decisivo sobre la confiabilidad y el rendimiento del sistema. puede usarse). comunicación en grupo. La política más sencilla consiste en escribir los datos directamente en el disco tan pronto se coloquen en una memoria caché. Sin embargo. La memoria caché con escritura directa equivale a usar el servicio remoto para accesos de escritura y explotar la memoria cache únicamente para accesos de lectura. ya que se pierde poca información si un sistema cliente falla. Cada mensaje acarrea el tiempo de envío. Si la maquina cliente determina que sus datos en memoria caché están desfasados.El mensaje ³d´ de ³1´ a ³0´ sale en ³64´ y llega en ³54´. el concepto de memoria caché es sencillo.2. Lamport utiliza la relación ³ocurre antes de´: Si ³c´ sale en ³60´ debe llegar en ³61´ o en un tiempo posterior.Usos de la sincronización. la de utilización menos reciente) para limitar el tamaño de la memoria caché. de acuerdo con el reloj del emisor. La idea es conservar allí los bloques de disco de acceso más reciente. Consistencia. el fundamento para la memoria caché es la reducción de la E/S de disco (lo que aumenta el rendimiento)..3. La ventaja de la escritura directa es su confiabilidad. ya no pueden 13 . por lo que representa una escritura de escaso rendimiento. Cuando un mensaje llega y el reloj del receptor muestra un valor anterior al tiempo en que se envió el mensaje: El receptor adelanta su reloj para que tenga una unidad más que el tiempo de envío. Se utiliza una política de reemplazo (por ejemplo. se trae una copia de servicio al usuario y los accesos se llevan a cabo con la copia de memoria caché. 2. si los datos necesarios para satisfacer la solicitud de acceso no se encuentran en la memoria cache. una maquina cliente se enfrenta al problema de decidir si una copia de datos en memoria caché local es consistente con la copia maestra (y por tanto.

las partes de los archivos que coloca en memoria cache. Si ninguna máquina tiene un receptor de UTC: ‡ ‡ Cada máquina lleva el registro de su propio tiempo. La atención del requerimiento en el servidor de tiempos requiere un tiempo del manejador de interrupciones. El reloj en software mantiene un registro del número de marcas (interrupciones) a partir de cierta fecha acordada antes. Enfoque iniciado por el cliente. El objetivo es sincronizar todas las máquinas con ella. El despachador del tiempo responde prontamente con unr / 2 d mensaje que contiene el tiempo actual ³CUTC´. Para atrasar solo agregaría 9 mseg. colocan en memoria caché un archivo. periódicamente. el manejador de interrupciones añade ³1´ a un reloj en software. Se debe mantener el tiempo de todas las máquinas tan cercano como sea posible. para cada cliente. 14 . Se supone que cada máquina tiene un cronómetro que provoca una interrupción ³h´ veces por segundo. Cada máquina envía un mensaje al servidor para solicitar el tiempo actual. todas las máquinas deben sincronizarse con ella. Cuando el emisor obtiene la respuesta puede hacer que su tiempo sea ³CUTC´. el servidor anota. debe reaccionar. El cambio del reloj se debe introducir de manera global. que trabajan en modos conflictivos. en la cual se pone en contacto con el servidor y comprueban si los datos locales son consistentes con la copia maestra. y cuando detecta una inconsistencia. Una posible fuente inconsistencia ocurre cuando dos clientes. en un tiempo no mayor que segundos. Algoritmo de Cristian Es adecuado para sistemas en los que: ‡ ‡ Una máquina tiene un receptor UTC. ³CUTC´ no puede ser menor que el tiempo actual ³C´ del emisor. Existen dos enfoques para verificar la validez de los datos en memoria caché. al valor de este reloj se lo llama ³C´. Cuando el cronómetro se detiene.servir para los accesos y hay que colocar en la memoria caché una copia actualizada de los datos. Comunicación en grupos (Algoritmos Para la Sincronización de Relojes) Si una máquina tiene un receptor de UTC. Si el cronómetro genera 100 interrupciones por segundo: ‡ ‡ ‡ ‡ Cada interrupción añade 10 mseg al tiempo. el cliente inicia una comprobación de validez. Enfoque iniciado por el servidor. Un gran problema es que el tiempo no puede correr hacia atrás. por lo que se la llama despachador del tiempo. También se debe considerar el tiempo de transmisión.

El tiempo de propagación del mensaje será (T1 . El iésimo intervalo: Inicia en ³T0 + i R´ y va hasta ³T0 + (i + 1) R´. Si el tiempo del servidor para manejar la interrupción y procesar el mensaje es ³I´: El tiempo de propagación será (T1 . Algoritmos con Promedio: Los anteriores son algoritmos centralizados. Ambos tiempos se miden con el mismo reloj.T0) / 2. Es adecuado cuando no se dispone de un receptor UTC.Para adelantar agregaría 11 mseg. Una clase de algoritmos descentralizados divide el tiempo en intervalos de re sincronización de longitud fija. ³R´ es un parámetro del sistema. Indica a las demás máquinas que avancen su reloj o disminuyan la velocidad del mismo hasta lograr la disminución requerida. ‡ ‡ ‡ ‡ Algoritmo de Berkeley: En el algoritmo de Cristian el servidor de tiempo es pasivo. El tiempo final (recepción) ³T1´. Se descartan los valores extremos. Realiza un muestreo periódico de todas las máquinas para preguntarles el tiempo con las respuestas: Calcula un tiempo promedio. El tiempo de propagación se suma al tiempo del servidor para sincronizar al emisor cuando éste recibe la respuesta. Una variante es promediar los valores de todas las demás máquinas. Otra variante es descartar los valores 15 .T0 . Para mejorar la precisión: Se toman varias mediciones.I) / 2. Al inicio de cada intervalo cada máquina transmite el tiempo actual según su reloj. ³T0´ es un momento ya acordado en el pasado. Cuando recibe todas las transmisiones se ejecuta un algoritmo para calcular una nueva hora para los relojes. Debido a la diferente velocidad de los relojes las transmisiones no serán simultáneas. inicializa un cronómetro local para reunir las demás transmisiones que lleguen en cierto intervalo ³S´. Luego de que una máquina transmite su hora. La corrección por el tiempo del servidor y el tiempo de transmisión se hace midiendo en el emisor: ‡ ‡ ‡ El tiempo inicial (envío) ³T0´. Se promedia el resto. En el algoritmo de Berkeley el servidor de tiempo activo.

Una mejora al algoritmo considera la corrección por tiempos de propagación. Las distintas fuentes de tiempo generaran distintos rangos (intervalos de tiempo) donde ³caerán´ los respectivos UTC. Varias Fuentes Externas de Tiempo Los sistemas que requieren una sincronización muy precisa con UTC se pueden equipar con varios receptores de UTC. Se debe re sincronizar periódicamente desde las fuentes externas de UTC. ‡ Calcula la intersección (en el tiempo) de los demás rangos.extremos antes de promediar (los ³m´ mayores y los ³m´ menores). Un Algoritmo Centralizado: La forma más directa de lograr la exclusión mutua en un sistema distribuido es simular a la forma en que se lleva a cabo en un sistema monoprocesador. Exclusión Mutua: Cuando un proceso debe leer o actualizar ciertas estructuras de datos compartidas: ‡ Primero ingresa a una región crítica para lograr la exclusión mutua y garantizar que ningún otro proceso utilizará las estructuras de datos al mismo tiempo. ‡ y ‡ Si ningún otro proceso está en ese momento en esa región crítica: El coordinador envía una respuesta otorgando el permiso. En sistemas monoprocesadores las regiones críticas se protegen con semáforos. Como la transmisión no es instantánea se genera una cierta incertidumbre en el tiempo. Se deben compensar los retrasos de transmisión y las diferencias de velocidades de los relojes. En sistemas distribuidos la cuestión es más compleja. Envía un mensaje de solicitud al coordinador: Indicando la región crítica. Cuando un proceso desea ingresar a una región crítica. Solicitando permiso de acceso. Verifica si alguno de ellos es ajeno a los demás y de serlo lo descarta por ser un valor extremo. ‡ La intersección determina un intervalo cuyo punto medio será el UTC y la hora del reloj interno. Se elige un proceso coordinador. Cuando un procesador obtiene todos los rangos de UTC. Se debe asegurar que el tiempo no corra hacia atrás. Cuando llega la respuesta el proceso solicitante entra a la región crítica. Cuando un proceso sale de la región crítica envía un mensaje al coordinador para liberar su acceso exclusivo: El coordinador extrae el primer elemento de la cola de solicitudes diferidas y envía a ese 16 . por lo que es necesaria una sincronización. monitores y similares. Si un proceso pide permiso para entrar a una región crítica ya asignada a otro proceso: El coordinador no otorga el permiso y encola el pedido.

Si el receptor no está en la región crítica y no desea entrar a ella. La exclusión mutua queda garantizada sin bloqueo ni inanición. Si el mensaje recibido es menor el receptor envía un o. Es el algoritmo de Lamport mejorado por Ricart y Agrawala. Se supone que cada mensaje tiene un reconocimiento. La menor de las marcas gana. Un importante problema adicional es que todos los procesos participan en todas las decisiones referentes a las entradas en las regiones críticas. Elimina a todos los elementos de la cola. La limitante es que el coordinador puede ser un cuello de botella y puede fallar y bloquear a los procesos que esperan una respuesta de habilitación de acceso.k. Luego de enviar las solicitudes un proceso: Espera hasta que alguien más obtiene el permiso. Se puede solucionar el bloqueo sí. Cuando un proceso desea entrar a una región crítica: Construye un mensaje con el nombre de la región crítica. Un ej. a todos los procesos en su cola. No existe un único punto de fallo sino ³n´. los que salen y los que fallan.k. Se complica para gran número de procesos. Si su propio mensaje tiene una marca menor el receptor no envía nada y encola el pedido. no puede otorgar el mismo permiso a otro proceso hasta que el primero libere su permiso. El emisor espera y sigue intentando hasta que regresa una respuesta o el emisor concluye que el destinatario está fuera de servicio.k.1)´. Es un esquema sencillo. su número de proceso y la hora actual. La falta de respuesta se interpretará como negación de acceso: o Se bloquearán los siguientes intentos de los demás procesos por entrar a todas las regiones críticas. Algoritmos de Elección: 17 . El número de mensajes necesarios por entrada es ³2(n . incluyendo los procesos que ingresan. Otro problema es que se utilizará una primitiva de comunicación en grupo o.proceso un mensaje otorgando el permiso. Se requiere un orden total de todos los eventos en el sistema para saber cuál ocurrió primero. con lo cual el proceso queda habilitado para acceder a la región crítica solicitada. la marca contenida en el mensaje que envió a cada uno. Si cualquier proceso falla no responderá a las solicitudes. compara. Cuando un proceso sale de la región crítica: Envía mensajes o. envía de regreso un mensaje o. Un Algoritmo Distribuido: El objetivo es no tener un único punto de fallo (el coordinador central). Si el receptor ya está en la región crítica no responde y encola la solicitud. Cuando llegan todos los permisos puede entrar a la región crítica. Si el receptor desea entrar a la región crítica pero aún no lo logró. justo y con pocos mensajes de control. Se incrementa la probabilidad de fallo en ³n´ veces y también el tráfico en la red. al emisor. Envía el mensaje a todos los demás procesos y de manera conceptual a él mismo. La marca de tiempo del mensaje recibido con. Se sobrecarga el sistema. siendo ³n´ el número total de procesos en el sistema. Una mejora consiste en permitir que un proceso entre a una región crítica con el permiso de una mayoría simple de los demás procesos (en vez de todos): Luego de que un proceso otorgó el permiso a otro para entrar a una región crítica. cada proceso debe mantener la lista de miembros del grupo.

El manejo de las regiones críticas. Se precisan técnicas de abstracción de mayor nivel que: ‡ ‡ ‡ y Oculten estos aspectos técnicos. 2. En esta abstracción se ocultan tanto la experiencia de copias como su ubicación. la correspondencia devuelve un conjunto de posiciones de las réplicas de este archivo. en un SAD este intervalo crece para incluir la máquina específica en cuyo disco se almacena el archivo. los usuarios tratan con objetos de datos lógicos representados por nombre de archivos. Dado un nombre de archivo.. etc. llegamos a la posibilidad de réplicas de archivos. Transacciones Atómicas: Las técnicas de sincronización ya vistas son de bajo nivel: El programador debe enfrentarse directamente con los detalles de: ‡ ‡ ‡ ‡ La exclusión mutua. mientras que el sistema manipula bloques de datos físicos almacenados en las pistas de los discos. el cual se transforma en un identificador numérico de bajo nivel. En un SAD transparente se agrega una nueva dimensión de abstracción. En un sistema de archivos convencionales la función de nominación produce como resultado un intervalo de direcciones en disco. El objetivo de un algoritmo de elección es garantizar que iniciada una elección ésta concluya con el acuerdo de todos los procesos con respecto a la identidad del nuevo coordinador. secuenciador. La principal propiedad de la transacción atómica es el ³todo o nada´: se hace todo lo que se tenía que hacer como una unidad o no se hace nada. La prevención de bloqueos. Esta correspondencia multinivel ofrece a los usuarios la abstracción de un archivo. que a su vez se corresponde con bloques en disco.Son los algoritmos para la elección de un proceso coordinador. Tal abstracción la llamaremos transacción atómica. Si se extiende un poco más el tratamiento de los archivos como abstracciones. iniciador.Nominación característica y estructuras Nominación: La nominación es una correspondencia entre objetos de datos lógicos y físicos.3. La recuperación de fallas. Generalmente un usuario se refiere a un archivo utilizando un nombre. Estructuras de Nominación: 18 . Por ejemplo. que oculta los detalles de cómo y dónde se almacena el archivo en disco. Permitan a los programadores concentrarse en los algoritmos y la forma en que los procesos trabajan juntos en paralelo. la ocultación de la ubicación de los archivos de la red. transacción o acción atómica.

y Usuario registrado: Se denomina así a la persona que tiene derechos especiales en algún servicio de Internet por acreditarse en el mismo mediante un identificador y una clave de acceso. En el enfoque más sencillo. Independencia de Ubicación.3. lo que da la apariencia a un árbol de directorios coherentes.Existen dos conceptos que hay que distinguir en relación con la correspondencia de nombres en un SAD. 2. Por ejemplo. un usuario puede ser tanto una persona como una máquina. el software se desarrolla pensando en la comodidad del usuario final. de manera gratuita o de 19 .2. El nombre de archivo no revela ningún indicio sobre de la ubicación del almacenamiento físico del archivo. Transparencia de Nominación. un usuario es un conjunto de permisos y de recursos (o dispositivos) a los cuales se tiene acceso.Tipos de nombres usuario y de sistema Tipos de nombre de usuario: En sentido general. los archivos se nombran con una combinación del nombre de su anfitrión y su nombre local. No es necesario modificar el nombre de un archivo cuando cambia su ubicación en el almacenamiento físico. El segundo enfoque popularizado por el sistema de archivos de red (NFS. etc. Network File System) de sun. Normalmente. y por esto se presta especial interés y esfuerzo en conseguir una interfaz de usuario lo más clara y sencilla posible. un programa. y Usuario final: El usuario final de un producto informático (bien sea hardware o software). obtenidos con previo registro en el servicio. Esquema de Nominación: Hay tres enfoques principales para los esquemas de nominación en un SAD. un archivo se identifica de manera única con el Nombre Anfitrión Local. donde nombre local es una ruta semejante a las de UNIX. ofrece una forma de unir directorios remotos a directorios locales. Es decir. ya que cualquier directorio se puede unir a cualquier árbol de direcciones locales y la jerarquía resultante puede estar poco estructurada. en Ibis. es la persona a la que va destinada dicho producto una vez que ha superado las fases de desarrollo correspondientes.. lo que garantiza un nombre único dentro de todo el sistema. El tercer enfoque es la estructura más compleja y difícil de mantener en la NFS.

como por ejemplo un usuario registrado en un periódico on-line con acceso por suscripción. (como puede ser dirección de e-mail y espacio correspondiente). mientras que ciertos organismos quisieran un mayor control de todo el movimiento por la red para actuar con más eficacia contra la delincuencia online. sin importar el número de procesadores que tenga la computadora o el número de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. el usuario registrado goza de mayores privilegios. La tarea de los Beta Testers es reportar errores al programador/desarrollador. En otras palabras los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario. El anonimato en Internet es uno de sus puntos fuertes. A los usuarios les gusta sentirse libres para expresarse. un usuario registrado tiene asignada una cuenta propia que mantiene información personalizada del usuario en el servidor. Las computadoras personales típicamente se han clasificado en este renglón. a la vez que motivo habitual de discusión. En algunos servicios en Internet se dispone de un modo de uso como usuario registrado y otro como usuario anónimo. los programas o el tipo de aplicación que se esté ejecutando. gracias a las limitaciones creadas por el hardware. y es en gran medida responsable de que el programa llegue al usuario final sin errores. existe un usuario intermedio entre el desarrollador y el usuario final que se encarga de comprobar y testear que el programa trabaje de la forma prevista. Normalmente. y Usuario anónimo: Es usuario anónimo en informática aquel que navega en sitios web (o usa cualquier servicio de la red) sin autenticarse como usuario registrado.Esta clasificación es la más comúnmente usada y conocida desde el punto de vista del usuario final. También puede dar acceso a ciertos contenidos no accesibles al público en general. normalmente. Tipos de nombre sistema Sistemas operativos por servicios (visión externa).  Sistema operativo multiusuario:Los sistemas operativos multiusuarios son capaces de dar servicio a más de un usuario a la vez. ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de 20 . Esta clasificación se comprende fácilmente con el cuadro sinóptico que a continuación se muestra:Por Número de Usuarios  Sistema operativo monousuario:Los sistemas operativos monousuarios son aquéllos que soportan a un usuario a la vez.pago. y Usuario "beta tester": En el proceso de desarrollo de software.

a la vez que está recibiendo correo electrónico en un proceso en background. las tareas en segundo plano reciben tiempo de procesado durante los tiempos muertos de la tarea que se encuentra en primer plano (por ejemplo. En otras palabras consiste en el fraccionamiento del tiempo (timesharing). en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez. y siempre que esta aplicación lo permita. Por el número de tareas:  Sistema operativo mono tarea. Este tipo de sistemas se emplean especialmente en redes. La conmutación de contextos (context Switching) es un tipo muy simple de multitarea en el que dos o más aplicaciones se cargan al mismo tiempo. Existen varios tipos de multitareas. En la multitarea cooperativa. No importa el número de procesadores en la máquina ni el número de procesos que cada usuario puede ejecutar simultáneamente. como OS/2. 21 . Un sistema operativo multitarea se distingue por su capacidad para soportar la ejecución concurrente de dos o más procesos activos. que comparten mismos recursos. solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una. Puede darse el caso de un sistema multiusuario y mono tarea.Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al mismo tiempo. En los sistemas multitarea de tiempo compartido. Es el modo de funcionamiento disponible en algunos sistemas operativos. la que se utiliza en el sistema operativo Macintosh. lo cual permite un rápido intercambio entre las tareas para el usuario. pero en el que solo se está procesando la aplicación que se encuentra en primer plano (la que ve el usuario. mejorando su productividad. Los sistemas operativos mono tareas son más primitivos y.Los sistemas mono tarea son aquellos que sólo permiten una tarea a la vez por usuario. mediante el cual una computadora procesa varias tareas al mismo tiempo. En esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios. cada tarea recibe la atención del microprocesador durante una fracción de segundo. Un sistema operativo multitarea puede estar editando el código fuente de un programa durante su depuración mientras compila otro programa.comunicaciones. La multitarea se implementa generalmente manteniendo el código y los datos de varios procesos simultáneamente en memoria y multiplexando el procesador y los dispositivos de E/S entre ellos.  Sistema Operativo Multitarea. Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón. cuando esta aplicación está esperando información del usuario).

que es más de uno y éste es capaz de usarlos todos para distribuir su carga de trabajo.  Sistema operativo de multiproceso:Un sistema operativo multiproceso se refiere al número de procesadores del sistema. teniendo. Se dice que un thread es la parte activa en memoria y corriendo de un proceso. Un aspecto importante a considerar en estos sistemas es la forma de crear aplicaciones para aprovechar los varios procesadores. lo cual puede consistir de un área de memoria. pero esta última opción las más de las veces es costosa en horas hombre y muy tediosa. de manera que si la computadora tuviese más de uno le sería inútil. Generalmente estos sistemas trabajan de dos formas: simétrica o asimétricamente. obligando al programador a ocupar tanto o más tiempo a la paralelización que a elaborar el algoritmo inicial. Por otro lado. un conjunto de registros con valores específicos. que reciben el nombre de esclavos. teóricamente. Existen aplicaciones que fueron hechas para correr en sistemas mono proceso que no toman ninguna ventaja a menos que el sistema operativo o el compilador detecte secciones de código paralelizable. el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores. una mejor distribución y equilibrio en la carga de trabajo bajo este esquema.  Simétrica:Cuando se trabaja de manera simétrica. la pila y otros valores de contexto.La multitarea suele asociarse con soporte hardware y software para protección de memoria con el fin de evitar que procesos corrompan el espacio de direcciones y el comportamiento de otros procesos residentes. 22 . Por el número de procesadores:  Sistema operativo de uniproceso:Un sistema operativo uniproceso es aquél que es capaz de manejar solamente un procesador de la computadora. El ejemplo más típico de este tipo de sistemas es el DOS y MacOS. el programador puede modificar sus algoritmos y aprovechar por sí mismo esta facilidad. los procesos o partes de ellos (threads) son enviados indistintamente a cual quiera de los procesadores disponibles. los cuales son ejecutados al mismo tiempo en procesadores diferentes.  Asimétrica:Cuando se trabaja de manera asimétrica.

nombrado por el resto de la Junta. ICANN también se basa en algunos comités consultivos para recibir asesoramiento sobre los intereses y necesidades de los interesados que no participen directamente en las organizaciones de apoyo. produce un cambio en el entorno.. sub-grupos que se ocupan de las secciones específicas de las políticas de ICANN en virtud de la competencia. La distribución es el conjunto de medios empleados para permitir y asegurar el flujo de datos en un pc.4. Entre ellos figuran el Comité Asesor Gubernamental (GAC).Servidores y agentes de nombres En la actualidad. que está integrado por representantes de organizaciones de los distintos usuarios de Internet de todo el mundo. seleccionados a través de un Comité de Nominaciones que representa a todas las circunscripciones de la ICANN. ccNSO (Country Code Names Supporting Organization) se ocupa de la elaboración de políticas relativas a códigos de países en dominios de nivel superior. la ICANN está formalmente organizada como una corporación sin fines de lucro y de utilidad pública. 23 . Está administrada por una Junta de Directores.3.Resolución y Distribución La resolución es aquella parte de la regla de actuación que nos indica qué es lo que el SI debiera hacer en una determinada situación. realizada por los elementos físicos del sistema. que está integrado por representantes de un gran número de gobiernos nacionales de todo el mundo.. y el Presidente y Director Ejecutivo. la ASO (Address Supporting Organization) se ocupa de la formulación de políticas en direcciones IP.3. Es uno o más conceptos cuya ejecución. el ALAC (At-Large Advisory Comité).3. que está compuesta por seis representantes de las organizaciones de apoyo.2. ocho representantes independientes del interés público general. el sistema DNS y TLG (Technical Liaison Group) compuesto por representantes de otras organizaciones técnicas internacionales de Internet. 2. En la actualidad hay tres organizaciones de apoyo: la GNSO (Generic Names Supporting Organization) se ocupa de la formulación de políticas sobre dominios genéricos de nivel superior.

el sistema operativo asignará como dirección base el número de página. y la traducción se utiliza de manera normal. entre más rápido sea el mecanismo. si no sabemos en qué parte de la memoria estarán cargado. Sin embargo.. pero permite buscar en toda la memoria en un mismo pulso de reloj. De esta manera. instrucción por instrucción ejecutada. se necesitan dos cosas. se ve limitado por el tamaño de la memoria asociativa.2. Cada segmento está compuesto por cierto número de páginas. el compilador manejará una dirección base más un desplazamiento al referirse a las instrucciones. paginación/segmentación. La memoria se divide en marcos de página. debemos tener un mecanismo de traducción de direcciones virtuales a reales. sumarle el desplazamiento y así obtener la dirección real de una instrucción. Implementando memoria asociativa. Solamente en aquellos casos en los que no encontrara la página/segmento en la memoria asociativa. al paginar al proceso. Existe una manera de mejorar dicho mecanismo mediante hardware. estas dos tablas se manejan por separado. el principio de localidad nos asegura que esto no sucederá con frecuencia. 2.. Para ello. el utilizar memoria asociativa implica que el número de marcos de página y/o el número de segmentos. el tamaño del segmento es un múltiplo del tamaño de página. Nótese que en el diagrama se tiene una tabla de proceso y ahí mismo se maneja la dirección inicial de la tabla de páginas. puede buscarse el inicio de una página en memoria.3. mejor. idealmente más pequeños que el tamaño del marco de página en un sistema de paginación tradicional. no puede haber más marcos de página que número de celdas en la memoria asociativa. Existe un esquema adicional. Recordemos que este mapeo debe efectuarse siempre.6. Por ello. Se cargan a memoria las páginas/segmentos más utilizados. Por ello. Primero. Segundo.5. podemos traducir direcciones para páginas o segmentos. haría un doble mapeo. efectuaría la traducción directa. La traducción de direcciones virtuales para segmentos se maneja de manera similar. hay sistemas operativos que manejan una combinación de ambos. Sin embargo. Para esa instrucción.Mapeo de rutas Roadmapping (mapeo de rutas) 24 . Una memoria asociativa es muy cara. Este esquema pretende sacar ventaja de los beneficios de los otros dos.Mapeo de direcciones Para poder ejecutar instrucciones. que es la combinación de ambos. Este mismo mecanismo de traducción de direcciones virtuales puede aplicarse en paginación/segmentación.3. Es decir. En algunos sistemas operativos. Es decir.

recibiendo las visiones y el conocimiento de un grupo de personas que llevan a cabo el plan de mapeo de rutas. El mapeo de rutas puede ser construido comenzando con la definición de las principales necesidades del mercado para luego definir las tecnologías necesarias. desafíos tecnológicos y soluciones tecnológicas en forma conjunta y ayuda a establecer las prioridades para la consecución de los objetivos. ayuda a identificar necesidades y tecnologías. es un método específicamente desarrollado para la realización de estudios de Prospectiva Tecnológica. Así mismo. ¿Qué es el roadmap? El Roadmap o ³Mapeo de rutas´ describe un ambiente futuro. ¿Qué es el roadmapping? La mejor hoja de ruta es creada a partir de un trabajo en equipo. El modelo se basa en las directrices dictadas por las necesidades del mercado ayudando a identificar. El mapeo de rutas también es la base para la descripción de los objetivos. o arquitectura. (Prospectiva por entradas de tecnologías). articula aplicaciones. como una vía para el entendimiento de cómo las partes de un complejo sistema tecnológico encajan.El ³Technology Roadmapping´ o mapeo de rutas tecnológicas. al mapeo también puede comenzar con la definición de tecnologías claves y proseguir con los requerimientos del mercado que pueden ser satisfechos con esas tecnologías. identifica tecnologías críticas o vacías en tecnología que deben llenarse para poder desarrollar productos con desempeños específicos y analiza el proceso a través del tiempo. (Prospectiva por entradas del mercado). los objetivos que pueden llegar a obtenerse con ese ambiente y los planes para lograr los objetivos planteados a través del tiempo.Cuándo´ elementos importantes para poder desarrollar planes y proyectos de acción en la dirección de los objetivos planteados y alcanzar las metas buscadas. Recíprocamente. Así mismo ayuda al equipo a construir un consenso para llevar a cabo el plan de acción. 25 . Estructura del roadmapping: El mapeo de rutas explicita campos de acción y permite trazar directrices para el planteamiento de acciones orientadas a responder o desarrollar completamente un conjunto de preguntas: ³Por qué ± Qué ± Cómo . entre otras funciones. seleccionar y desarrollar con posterioridad las alternativas de tecnología necesarias para satisfacer un conjunto de necesidades de un producto. Se trata de una prospectiva por objetivos que. proporciona información necesaria en la toma de decisiones. La siguiente figura describe las cuatro partes de la arquitectura con base en un mapeo de rutas. Explicita una estructura. El proceso de Roadmapping ayuda al equipo a reunir diversas perspectivas sobre todos los aspectos del ambiente y del plan. interactúan y evolucionan.

a saber actuación. acto de servidores de nombre como agentes obligatorios distribuidos que amarran el nombre de un objeto para una cierta cantidad de sus propiedades. y los servidores diferentes). esto es.3. Los factores que afectan la eficiencia con la cual el espacio de nombre puede ser manejado y el costo de recuperar información del servidor de nombre son: El di denota el costo de ejecutar una averiguación en NS. El problema es cómo distribuir servidores de nombre. Como ha visto. Este criterio es importante para un ambiente distribuido porque que hay usualmente un número de redes interconectadas (lo mismo es cierto en caso de una red de área local conectando un número grande de computadoras personales y / o los puestos de trabajo.. Los criterios diferentes pueden ser tomados en cuenta al desarrollar la facilidad de nombramiento para sistemas de cómputo distribuidos. depende del sitio en el cual el 26 . el modelo de Terry Los mensajes remitentes entre los procesos y objetos soportados por un sistema operativo precisa la presentación para el sistema operativo de los nombres de los objetos que los procesos quieren ganar acceso a. que de las estructuras de una facilidad de nombramiento es el mejor.Modelo de Terry Estudio del rendimiento de la factibilidad de nombramiento. éste costado depende de tales factores como el tamaño global de la base de datos mantenida por NSi. y la clase de instalaciones de la base de datos utilizaron. El cui es el costo de comunicar con NSi de cliente u. En la etapa de análisis de la estructura de facilidad de nombramiento. la actuación de averiguaciones del servidor de nombre es dominada por el número de servidores de nombre que deben ser a los que se ganó acceso y el costo de ganar acceso a esos los servidores de nombre. El problema es cómo localizar objetos nombrados. incluyendo la posición del objeto. lo cual insinúa que el costo de comunicación entre clientes y servidores de nombre es el cuello de botella principal en localizar recursos remotos.2. Tales servidores de nombre se llaman las autoridades que nombra o servidores autoritarios de nombre para eso objetan.7. En este caso. Algunos servidores de nombre pueden almacenar información acerca de los objetos particulares. usaremos la mayor parte de importante de esos criterios. Esto está directamente conectado a la gerencia del espacio de nombre y las estructuras de la facilidad de nombramiento. Se asume que se compone con el paso del tiempo.

y también por Indulska y Goscinski. describiremos estas estructuras de facilidad de nombramiento enfatizando evaluación de rendimiento.el sistema replegado. Las instalaciones centralizadas de nombramiento Una facilidad centralizada de nombramiento es implementada usando un servidor solo de nombre. remotamente de cliente u. Nombre.cliente ejecuta. Porque estamos interesados en el costo de recuperar la entrada del servidor de nombre de un objeto individual. El sistema (5) centralizado. La presentación de estos temas se basa en la actuación que el modelo desarrolló por Terry. (7) el sistema descentralizado con división en los tipos del objeto. (3) distribuyó sistema (4) recursos locales conocidos en cada nodo. sistema con creces distribuido dirección del recurso determinó por una función de hashing que se definió sobre el set de identificadores del recurso. ± (6) . Ahora. jerárquico -. y sea expresada por la siguiente fórmula: El costo de recuperar la información del servidor de nombre acerca de un set de denominado así es que urce s depende de posición del cliente relativo a servidores diversos de nombre y la mezcla remisiva del cliente y puede ser expresado por la fórmula: Donde Luk representa el coste total de poner en duda la información en partición de la base de datos dk. (1) completamente distribuyó sistema (2) recursos locales conocidos en cada nodo y el mensaje emitido por radio pasando para servidores del recurso en cada nodo. lo cual mantiene una mesa o base de datos con tal que el nombre necesario para ocuparse de mapeos. y la velocidad de líneas de transmisión. Structures de la facilidad de nombramiento: Las siguientes estructuras básicas de facilidad de nombramiento para los sistemas operativos distribuidos han sido identificadas por Terry (1984) e Indulska y Goscinski (1989): y y y y y Una facilidad centralizada de nombramiento una facilidad replegada de nombramiento una facilidad descentralizada de nombramiento una facilidad distribuida de nombramiento una facilidad jerárquica de nombramiento. NSi. incluir el costo de localizar los datos deseados. Este sistema maneja un espacio plano de nombre donde los nombres 27 . ignoraremos los patrones de acceso del cliente en E (Lu) µconcentrándose sólo en Luk. El CUi especifica el costo completo de ganar acceso al servidor de nombre. Este costo depende de tales factores como el número de portales de acceso atravesados.

Sk = {NS1. la mitad de servidores de nombre deben ser a los que se ganó acceso para recuperar información del objeto. El inconveniente de este sistema localiza los datos deseados.son cadenas de caracteres no exhibiendo estructura. Las desventajas son fiabilidad de punto bajo del sistema enteramente distribuido. En este caso. nombran problemas de materialización (si un proceso muere. porque eso arruine necesite interrogar cada servidor de nombre. cualquier cliente puede interrogar el servidor de nombre físicamente más cercano. . sonevitados. En este caso. implícito aquí N Smain´ que éste significa que el costo de recuperación es simplemente cañería maestra Lk = C. va en procesión. la recuperación costada es como sigue: 28 . y tiene fiabilidad alta. Cada nodo de la computadora (el sitio) del sistema distribuido mantiene una copia de la base de datos con tal que los mapeos del nombre a la dirección necesarios para el sistema entero. La base de datos del servidor de nombre es aumentada registrando servicios. pero cada entrada del servidor de nombre es almacenada en algún sitio arbitrario. entonces o un servicio se vuelve agotado) y requisitos grandes de memoria de cada nodo. dónde la C especifica el coste máximo de ganar acceso a servidor de nombre NS remotamente por la u más lejana del cliente. La ventaja de esta estructura de nombramiento es su simplicidad. Este sistema tiene las siguientes ventajas: Es muy rápido. Ésta es la ventaja principal de esta estructura. Los directorios del archivo pueden ser considerados como una causa especial de servicio de nombre. Dado que los saques de nombre son puestos en duda en la ordenación numérica. que no tiene retrasos de levantes obligatorios de operación. NSN } µ Porque cada servidor de nombre contiene una´ colección completa µ De información aproximadamente toda nombró objetos (los recursos) del sistema distribuido. En este caso. . El costo de recuperación es simplemente Lk = C. el número de mensajes de orientes obligatorio es cero. . Por término medio. Sk = NS. Sk = { NS ¡ }. mencionadas en el acercamiento previo. y la evitación de cualquier problema de incongruencia que se identificó en algunos sistemas con más que un servidor. pone a babor (los buzones) y otros detalles pertinentes que quieren ser públicamente sabidos. El problema mantienen consistencia entre copias. Los sistemas replegados de nombramiento Una facilidad replegada de nombramiento maneja un espacio plano de nombre también. El servidor de nombre contiene que la colección completa de información aproximadamente toda nombró objetos en el ambiente distribuido. y el tráfico grande los retrasos aéreos y largos en ganar acceso al servidor y antes de iniciar una transmisión orientada en servicio requerida. La entrada de la base de datos de nombre orientó descentralizó sistemas Una entrada de la base de datos de nombre orientó descentralizó sistema también maneja un espacio plano de nombre. Tal solución para una estructura de facilidad de nombramiento insinúa que el almacenamiento y los problemas de consistencia.

La estructura se agrega para el nombre de un objeto (resource¶s) para reflejar la autoridad de la gerencia para el nombre. La situación puede ser mejorada añadiendo estructura para el nombre de un objeto. entonces es natural tener un servidor de nombre para cada red. Sólo un acceso es menester cuando la información deseada de nombramiento es 29 . Básicamente dividieron en partes nombrando sistemas individuales mapeo existe entre particiones de la base de datos y servidores de nombre. = la N de kilobyte y Sk = { NSk }. Ninguno de los sistemas descritos anteriormente es muy práctico para sistemas distribuidos grandes. Tal estructura requiere dos accesos para obtener la información acerca de un objeto dado (el recurso): Uno para hallar la autoridad que nombra y uno para ganar acceso a los datos. La gerencia efectiva de tal espacio de nombre siguiendo esta convención de nombramiento requiere que cada servidor de nombre sabe la posición de otros servidores de nombre. y _ el nombre (2) correcto sin ambigüedades identifica el objeto en el contexto de la autoridad que nombra. los servicios. los puertos. Este sistema requiere difundir en la red el nombre de un objeto pedido. esto es. los recursos). Hay avances diferentes para descentralizar un espacio de nombre: La partición de discos (1) geográfica (el reconocimiento médico): Si el sistema está compuesto de redes de área local múltiples conectadas de por ahí cruzan s y portales de acceso. Una modificación simple del citado anteriormente sistema es la facilidad distribuida de nombramiento. donde _ el servidor de nombre identifica el servidor de nombre esto es responsable para información directiva acerca del objeto. La siguiente convención de nombramiento puede ser usada: El servidor (1) correcto de @ nombre de _ nombre. Y La partición de discos (2) organizativa (funcional): La partición del sistema entero en los dominios puede estar hecha con base en organizaciones. En este sistema cada nodo de la computadora (el sitio) mantiene una base de datos con tal que la dirección .nombre necesaria haciendo mapas para sus propios objetos locales (los procesos. Esta estructura debería reflejar la autoridad de la gerencia para el nombre.Este sistema es valioso en términos de búsquedas del servidor de nombre. Si los servidores de nombre son sin ambigüedades nombrados luego el nombre completo _ servidor correcto de @ nombre de _ nombre es globalmente inequívoco. Los sistemas descentralizados de nombramiento Una facilidad descentralizada de nombramiento es implementada usando un número de servidores de nombre operando en los dominios estrictamente definidos.

El costo de búsqueda es expresado por la fórmula: Organizacionalmente dividieron en partes nombrando sistemas las particiones de la base de datos corresponda a las organizaciones en vez de servidores de nombre. El costo de búsqueda es expresado como sigue: Dos recuperaciones de la base de datos son siempre precisadas desde que un servidor de nombre no puede determinar de todos modos es la autoridad para los datos deseados sin consultar la base de datos local. Consideremos los costos de búsqueda. Basadas en esta estructura. la copia soportadora requiere que el algoritmo de búsqueda describió arriba esté extendido de tal manera en lo que se refiere a reconocer varios servidores autoritarios de nombre para cada organización en vez de uno responsable solo. Sk. Esto quiere decir que la base de datos del servidor de nombre puede a medias ser redundante. En este caso los nombres toman la forma @ organización correcta de _ nombre en la cual la autoridad para asignar nombres es explícitamente reconocida. por el momento. N Smain.almacenada en el servidor primario de nombre. Como consecuencia. Una de las ventajas más importantes de un espacio de nombre de organizacional-Partición es la facilidad con la cual la información replegada de nombramiento puede ser acomodada. cada servidor de nombre debería saber cuál servidor de nombre tiene responsabilidad para cada organización. Un ejemplo de un sistema basado en este acercamiento es el sistema Grapevine (Birrell Et Al. En este caso el servicio de nombre puede ser con holgura uso reconfigurado del beca la asignación de objeto nombres es independiente de la asignación de la responsabilidad para mantener información acerca de los objetos. Para eficazmente ganar acceso a información acerca de un objeto dado. 1982). que los datos de cada organización están bajo la dirección de un servidor solo de nombre al igual que con un espacio de nombre físicamente subdividido. Suponga. cada servidor de nombre debería saber la colección completa de servidores autoritarios de nombre para cada organización. Del punto de la gerencia de vista. Si el servidor primario de nombre puede recuperar y puede devolver la entrada del servidor de nombre directamente al descubrir que es el sitio de almacenamiento para los datos deseados. Sk = { NSJ. El costo para un sistema con datos replegados debería estar menos del costo pues un sistema con espacio de nombre de organizacional-Partición desde que el servidor de nombre ganó acceso a por clientes 30 . El costo de búsqueda del servidor de nombre viene bien Esta fórmula fue desarrollada en la suposición que el servidor autoritario más cercano de nombre puede ser determinado con costo insignificante. entonces luego. las averiguaciones del servidor de nombre pueden ser tramitadas en pasos dobles como en sistemas de nombramiento físicamente subdivididos. Cada servidor de nombre puede ser la autoridad para algún subconjunto de las organizaciones.

La influencia de la copia de datos puede ser ilustrada por un ejemplo muy simple. N Smink puede diferir de cliente para el cliente. = NS. Es suficiente que cada tienda del servidor de nombre lo suficientemente sólo información localizar los servidores autoritarios de nombre para el nivel de la parte superior de la jerarquía. Los sistemas jerárquicos de nombramiento: Una facilidad jerárquica de nombramiento es una extensión del sistema previo por nombres estructurados de dos partes extensibles para los nombres jerárquicos consistente en más que dos partes. Un análisis de estructuras jerárquicas de nombramiento puede ser realizado por recursivamente aplicar las técnicas para los nombres de dos partes. distribuido uniformemente. considerando en el caso previo cada cliente se ve forzado a ganar acceso al mismo servidor de nombre. Deje la R ser número de materiales noticiosos. 31 . Considere un sistema usando los nombres de la forma _ nombre local: El dominio: La organización. una jerarquía con tres niveles. los datos completos (Sk para toda k) de configuración del servidor de nombre no necesitan guardarse en cada servidor de nombre. Hay dos avances básicos: El número fijo de estratos.. o una jerarquía arbitraria. Doy por supuesto que los servidores de nombre son ordenados algo semejante que C<C para yo < la j y NS. Con gerencia jerárquica del espacio de nombre.diversos. Los servidores nivelados máximos de nombre deberían saber que los servidores autoritarios de nombre para el nombre espacian subárboles directamente bajo su control administrativo. esto es. R servidores autoritarios de nombre está seleccionado al azar para cada partición de la base de datos. esto es. Esta suposición no insinúa cualquier pérdida de generalidad. R~N.