Sunteți pe pagina 1din 28

Unidad 1 Los sistemas operativos en ambientes distribuidos 1.

1 Sistemas Distribuidos

Los sistemas distribuidos estn basados en las ideas bsicas de transparencia, eficiencia, flexibilidad, escalabilidad y fiabilidad. Sin embargo estos aspectos son en parte contrarios, y por lo tanto los sistemas distribuidos han de cumplir en su diseo el compromiso de que todos los puntos anteriores sean solucionados de manera aceptable. Transparencia El concepto de transparencia de un sistema distribuido va ligado a la idea de que todo el sistema funcione de forma similar en todos los puntos de la red, independientemente de la posicin del usuario. Queda como labor del sistema operativo el establecer los mecanismos que oculten la naturaleza distribuida del sistema y que permitan trabajar a los usuarios como si de un nico equipo se tratara. Eficiencia La idea base de los sistemas distribuidos es la de obtener sistemas mucho ms rpidos que los ordenadores actuales. Es en este punto cuando nos encontramos de nuevo con el paralelismo. Para lograr un sistema eficiente hay que descartar la idea de ejecutar un programa en un nico procesador de todo el sistema, y pensar en distribuir las tareas a los procesadores libres ms rpidos en cada momento. Flexibilidad Un proyecto en desarrollo como el diseo de un sistema operativo distribuido debe estar abierto a cambios y actualizaciones que mejoren el funcionamiento del sistema. Esta necesidad ha provocado una diferenciacin entre las dos diferentes arquitecturas del ncleo del sistema operativo: el ncleo monoltico y el micro ncleo. Ncleo monoltico Como ejemplo de sistema operativo de ncleo monoltico est UNIX. Estos sistemas tienen un ncleo grande y complejo, que engloba todos los servicios del sistema. Est programado de forma no modular, y tiene un rendimiento mayor que un micro ncleo. Sin embargo, cualquier cambio a realizar en cualquier servicio requiere la parada de todo el sistema y la recopilacin del ncleo.

Micro ncleo La arquitectura de micro ncleo ofrece la alternativa al ncleo monoltico. Se basa en una programacin altamente modular, y tiene un tamao mucho menor que el ncleo monoltico. Como consecuencia, el refinamiento y el control de errores son ms rpidos y sencillos. Adems, la actualizacin de los servicios es ms sencilla y gil, ya que slo es necesaria la recopilacin del servicio y no de todo el ncleo. Como contraprestacin, el rendimiento se ve afectado negativamente. Escalabilidad Un sistema operativo distribuido debera funcionar tanto para una docena de ordenadores como varios millares. Igualmente, debera no ser determinante el tipo de red utilizada (LAN o WAN) ni las distancias entre los equipos, etc. Fiabilidad Una de las ventajas claras que nos ofrece la idea de sistema distribuido es que el funcionamiento de todo el sistema no debe estar ligado a ciertas mquinas de la red, sino que cualquier equipo pueda suplir a otro en caso de que uno se estropee o falle. Comunicacin La comunicacin 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 conexin fsica entre las distintas memorias de los equipos, la comunicacin se realiza mediante la transferencia de mensajes.

1.1.1

Ventajas Desventajas contra Sistemas Centralizados

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS Con respecto a Sistemas Centralizados:

Una de las ventajas de los sistemas distribuidos es la economa, pues es mucho ms barato, aadir servidores y clientes cuando se requiere aumentar la potencia de procesamiento. El trabajo en conjunto. Por ejemplo: en una fbrica de ensamblado, los robots tienen sus CPUs diferentes y realizan acciones en conjunto, dirigidos por un sistema distribuido. Tienen una mayor confiabilidad. Al estar distribuida la carga de trabajo en muchas mquinas la falla de una de ellas no afecta a las dems, el sistema sobrevive como un todo. Capacidad de crecimiento incremental. Se puede aadir procesadores al sistema incrementando su potencia en forma gradual segn sus necesidades.

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS


El principal problema es el software, es el diseo, implantacin y uso del software distribuido, pues presenta numerosos inconvenientes. Los principales interrogantes son los siguientes: Qu tipo de S. O., lenguaje de programacin y aplicaciones son adecuados para estos sistemas?. o Cunto deben saber los usuarios de la distribucin?. o Qu tanto debe hacer el sistema y qu tanto deben hacer los usuarios?.

La respuesta a estos interrogantes no es uniforme entre los especialistas, pues existe una gran diversidad de criterios y de interpretaciones al respecto.

Otro problema tiene que ver con las redes de comunicacin. Por ejemplo: -Perdida de mensajes, saturacin en el trfico, etc. Un problema que puede surgir al compartir datos es la seguridad de los mismos.

En general se considera que las ventajas superan a las desventajas, si estas ltimas se administran seriamente.

1.1.2

Modelo Cliente Servidor

En qu consiste el esquema cliente-servidor El esquema cliente-servidor "es un modelo de computacin en el que el procesamiento requerido para ejecutar una aplicacin o conjunto de aplicaciones relacionadas se divide entre dos o ms procesos que cooperan entre s " [21]. Usualmente la mayora del trabajo pesado se hace en el proceso llamado servidor y el (los) proceso(s) cliente(s) slo se ocupa de la interaccin con el usuario (aunque esto puede variar). Los principales componentes del esquema cliente-servidor son entonces los Clientes, los Servidores y la infraestructura de comunicaciones. Los Clientes interactan con el usuario, usualmente en forma grfica. Frecuentemente se comunican con procesos auxiliares que se encargan de establecer conexin con el servidor, enviar el pedido, recibir la respuesta, manejar las fallas y realizar actividades de sincronizacin y de seguridad. Los Servidores proporcionan un servicio al cliente y devuelven los resultados. En algunos casos existen procesos auxiliares que se encargan de recibir las solicitudes del cliente, verificar la proteccin, activar un proceso servidor para satisfacer el pedido, recibir su respuesta y enviarla al cliente. Adems deben manejar los interbloqueos, la recuperacin ante fallas, y otros aspectos afines. Por las razones anteriores la plataforma computacional asociada con los servidores es ms poderosa

que la de los clientes. Por esta razn se utilizan PCs poderosos, estaciones de trabajo, minicomputadores o sistemas grandes. Adems deben manejar servicios como administracin de la red, mensajes, control y administracin de la entrada al sistema ("login"), auditora y recuperacin y contabilidad. Usualmente en los servidores existe algn tipo de servicio de bases de datos. Para que los clientes y los servidores puedan comunicarse se requiere una infraestructura de comunicaciones, la cual proporciona los mecanismos bsicos de direccionamiento y transporte. La mayora de los sistemas Cliente/Servidor actuales se basan en redes locales y por lo tanto utilizan protocolos no orientados a conexin, lo cual implica que las aplicaciones deben hacer las verificaciones. La red debe tener caractersticas adecuadas de desempeo, confiabilidad, transparencia y administracin 1.1.3 Caractersticas Hardware Sistemas Distribuidos

Conceptos de Hardware Todos los sistemas distribuidos constan de varias CPU, organizadas de diversas formas, especialmente respecto de

La forma de interconectarlas entre s. Los esquemas de comunicacin utilizados.

Existen diversos esquemas de clasificacin para los sistemas de cmputos con varias CPU:

Uno de los mas conocidos es la Taxonoma de Flynn: o Considera como caractersticas esenciales el nmero de flujo de instrucciones y el nmero de flujos de datos. o La clasificacin incluye equipos SISD, SIMD, MISD y MIMD.

SISD (Single Instruction Single Data: un flujo de instrucciones y un flujo de datos):

Poseen un nico procesador.

SIMD (Single Instruction Multiple Data: un flujo de instrucciones y varios flujos de datos):

Se refiere a ordenar procesadores con una unidad de instruccin que:

Busca una instruccin. Instruye a varias unidades de datos para que la lleven a cabo en paralelo, cada una con sus propios datos. Son tiles para los cmputos que repiten los mismos clculos en varios conjuntos de datos.
o o

MISD (Multiple Instruction Single Data: un flujo de varias instrucciones y un solo flujo de datos):

No se presenta en la prctica.

MIMD (Multiple Instruction Multiple Data: un grupo de computadoras independientes, cada una con su propio contador del programa, programa y datos):

Todos los sistemas distribuidos son de este tipo.

Un avance sobre la clasificacin de Flynn incluye la divisin de las computadoras MIMD en dos grupos:

Multiprocesadores: poseen memoria compartida: o Los distintos procesadores comparten el mismo espacio de direcciones virtuales. Multicomputadoras: no poseen memoria compartida: o Ej.: grupo de PC conectadas mediante una red.

Cada una de las categoras indicadas se puede clasificar segn la arquitectura de la red de interconexin en:

Esquema de bus: o Existe una sola red, bus, cable u otro medio que conecta todas las mquinas: Ej.: la televisin por cable. Esquema con conmutador: o No existe una sola columna vertebral de conexin: Hay mltiples conexiones y varios patrones de conexionado. Los mensajes de mueven a travs de los medios de conexin. Se decide explcitamente la conmutacin en cada etapa para dirigir el mensaje a lo largo de uno de los cables de salida. Ej.: el sistema mundial telefnico pblico. Otro aspecto de la clasificacin considera el acoplamiento entre los equipos: Sistemas fuertemente acoplados: o El retraso al enviar un mensaje de una computadora a otra es corto y la tasa de transmisin es alta. o Generalmente se los utiliza como sistemas paralelos.

Sistemas dbilmente acoplados: o El retraso de los mensajes entre las mquinas es grande y la tasa de transmisin es baja. o Generalmente se los utiliza como sistemas distribuidos. Generalmente los multiprocesadores estn ms fuertemente acoplados que las multicomputadoras.

1.1.4

Caractersticas Software Sistemas Distribuidos

Aunque el hardware es importante, el software lo es ms. La imagen que presenta y la forma de pensar de los usuarios de un sistema, queda determinada en gran medida por el software del sistema operativo, no por el hardware. Se puede distinguir dos tipos de sistemas operativos para los de varios CPU: los dbilmente acoplados y los fuertemente acoplados. El software dbilmente acoplado permite que las mquinas y los usuarios de un sistema distribuido sean independientes entre s en lo fundamental, pero que interacten en cierto grado cuando sea necesario. En el software fuertemente acoplado el programa de aplicacin y el sistema operativo necesario para soportarlo, estn muy acoplados.

1.1.5

Direccionamiento Lgico Fsico Sistemas Distribuidos

El proceso desde que los datos son incorporados al ordenados hasta que se transmiten al medio se llama encapsulacin. Estos datos son formateados, segmentados, identificados con el direccionamiento lgico y fsico para finalmente ser enviados al medio. Debido a que posiblemente la cantidad de los datos sean demasiados, la capa de transporte desde de origen, se encarga de segmentarlos para as ser empaquetados debidamente, esta misma capa en el destino se encargara de re ensamblar los datos y colocarlos en forma secuencial, ya que no siempre llegan a su destino en el orden en que han sido segmentados, as mismo acorde al protocolo que se este utilizando habr correccin de errores. Estos segmentos son empaquetados (paquetes o datagramas) e identificados en la capa de red con la direccin lgica o IP correspondiente al origen y destino. Ocurre lo mismo con la direccin MAC en la capa de enlace de datos formndose las tramas o frames para ser transmitidos a travs de alguna interfaz. 1.2 Concepto Caractersticas Sor 1.3 Concepto Caractersticas del Sod Conceptos de los sistemas distribuidos Los sistemas distribuidos estn basados en las ideas bsicas de transparencia, eficiencia, flexibilidad, escalabilidad y fiabilidad. Sin embargo estos aspectos son en parte contrarios, y por lo tanto los sistemas distribuidos han de cumplir en su diseo el compromiso de que todos los puntos anteriores sean solucionados de manera aceptable. Transparencia El concepto de transparencia de un sistema distribuido va ligado a la idea de que todo el sistema funcione de forma similar en todos los puntos de la red, independientemente de la posicin del usuario. Queda como labor del sistema operativo el establecer los mecanismos que oculten la naturaleza distribuida del sistema y que permitan trabajar a los usuarios como si de un nico equipo se tratara.

UNIDAD 2 Comunicacin en los sistemas operativos distribuidos 2.1 Comunicacin SOD Sistemas Operativos Distribuidos Los sistemas operativos distribuidos desempean las mismas funciones que un sistema operativo normal, pero con la diferencia de trabajar en un entorno distribuido. Su Misin principal consiste en facilitar el acceso y la gestin de los recursos distribuidos en la red. En un sistema operativo distribuido los usuarios pueden acceder a recursos remotos de la misma manera en que lo hacen para los recursos locales. 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, lo cual es transparente para el usuario. Los sistemas distribuidos deben de ser muy confiables y estables ya que si un componente del sistema se descompone otro componente debe de ser capaz de reemplazarlo inmediatamente y no afectar los procesos del sistema. Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc. Caractersticas bsicas Los sistemas operativos distribuidos estn basados en las ideas bsicas: Transparencia Eficiencia Flexibilidad Escalabilidad

2.1.1 Comunicacin Cliente/Servidor sockets

Origen de los socket tuvo lugar en una variante del sistema operativo Unix conocida como BSD Unix. En la universidad de Berkeley, en los inicios del Internet, pronto se hizo evidente que los programadores necesitaran un medio sencillo y eficaz para escribir programas capaces de intercomunicarse entre s. Esta necesidad dio origen a la primera especificacin e implementacin de sockets. Cliente-Servidor es el modelo que actualmente domina el mbito de comunicacin, ya que descentraliza los procesos y los recursos. Es un Sistema donde el cliente es una aplicacin, en un equipo, que solicita un determinado servicio y existe un software, en otro equipo, que lo proporciona. Los servicios pueden ser; a) Ejecucin de un programa. b) Acceso a una Base de Datos. c) Acceso a un dispositivo de hardware. Solo se requiere un medio fsico de comunicacin entre las maquinas y depender de ala naturaleza de este medio la vialidad del sistema. Definicin de 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. Los sockets proporcionan una comunicacin de dos vas, punto a punto entre dos procesos. Los sockets son muy verstiles y son un componente bsico de comunicacin entre interprocesos e intersistemas. Un socket es un punto final de comunicacin al cual se puede asociar un nombre. Para lograr tener un socket es necesario que se cumplan ciertos requisitos 1. Que un programa sea capaz de localizar al otro. 2. Que ambos programas sean capaces de intercambiarse informacin.

El Cliente acta de la siguiente forma. 1) Establece una conexin con el servidor (Crea un socket con el servidor). 2) Mandar mensajes al servidor o Esperar un mensaje de l. (Consultas) 3) Esperar su respuesta o contestarle (existen casos en que este paso no es necesario). 4) Repetir los pasos 2 y 3 mientras sea necesario. 5) Cerrar la conexin con el servidor.

El servidor acta as. 1) Inicializa un puerto de comunicacin, en espera de clientes que intenten conectarse a l (Crea un serverSocket). 2) Una vez que se conecta alguien, crea un hilo de ejecucin para este usuario mientras que el thread principal vuelve al paso 1. Esto comnmente se hace para que el servidor puede atender a varios clientes al mismo tiempo. 3) Se comunica con el cliente mediante el socket creado entre el cliente y l.

4) Espera que el cliente se vaya o lo bota el mismo servidor (Cierra el socket entre ellos) y elimina el thread de comunicacin entre ellos. Las propiedades de un socket dependen de las caractersticas del protocolo en el que se implementan. El protocolo ms utilizado es TCP, aunque tambin es posible utilizar UDP o IPX.

2.1.2 Comunicacin con RPC

RCP (REMOTE PROCEDURE CALL) El mecanismo general para las aplicaciones cliente-servidor se proporciona por el paquete Remote Procedure Call (RPC). RPC fue desarrollado por Sun Microsystems y es una coleccin de herramientas y funciones de biblioteca. Aplicaciones importantes construidas sobre RPC son NIS, Sistema de Informacin de Red y NFS, Sistema de Ficheros de Red.

Un servidor RPC consiste en una coleccin de procedimientos que un cliente puede solicitar por el envo de una peticin RPC al servidor junto con los parmetros del procedimiento. El servidor invocar el procedimiento indicado en nombre del cliente, entregando el valor de retorno, si hay alguno. Para ser independiente de la mquina, todos los datos intercambiados entre el cliente y el servidor se convierten al formato External Data Representation (XDR) por el emisor, y son reconvertidos a la representacin local por el receptor. RPC confa en sockets estndar UDP y TCP para transportar los datos en formato XDR hacia el host remoto. Sun amablemente ha puesto RPC en el dominio pblico; se describe en una serie de RFCs.

La comunicacin entre servidores RPC y clientes es un tanto peculiar. Un servidor RPC ofrece una o ms colecciones de procedimientos; cada conjunto se llama un programa y es identificado de forma nica por un nmero de programa. Una lista que relaciona nombres de servicio con nmeros de programa se mantiene usualmente en /etc/rpc.

2.1.3 Comunicacin en grupo La comunicacin en grupo tiene que permitir la definicin de grupos, as como caractersticas propias de los grupos, como la distincin entre grupos abiertos o que permiten el acceso y cerrados que lo limitan, o como la distincin del tipo de jerarqua dentro del grupo. Igualmente, los grupos han de tener operaciones relacionadas con su manejo, como la creacin o modificacin. 2.1.4 Tolerancia a fallos Dado que las fallas no se pueden evitar por completo, existe una solucin que consiste en configurar mecanismos de redundancia duplicando los recursos crticos. La capacidad de un sistema para funcionar a pesar de que alguno de sus componentes falle se conoce como tolerancia a errores. Cuando uno de los recursos falla, los otros recursos siguen funcionando mientras los administradores del sistema procuran encontrar una solucin al problema. Esto se llama "Servicio de proteccin contra fallas" (FOS). Idealmente, si se produce una falla material, los elementos del material defectuoso deben ser intercambiables en caliente, es decir que deben ser capaces de ser extrados y reemplazados sin que se interrumpa el servicio.

2.2 Sincronizacin Sistemas Distribuidos Un sistema distribuido debe permitir el apropiado uso de los recursos, debe encargarse de un buen desempeo y de la consistencia de los datos, adems de mantener seguras todas estas operaciones La sincronizacin de procesos en los sistemas distribuidos resulta ms compleja que en los centralizados, debido a que la informacin y el procesamiento se mantienen en diferentes nodos. Un sistema distribuido debe mantener vistas parciales y consistentes de todos los procesos cooperativos y de cmputo. Tales vistas pueden ser provistas por los mecanismos de sincronizacin. El trmino sincronizacin se define como la forma de forzar un orden parcial o total en cualquier conjunto de eventos, y es usado para hacer referencia a tres problemas distintos pero relacionados entre s: 1. La sincronizacin entre el emisor y el receptor. 2. La especificacin y control de la actividad comn entre procesos cooperativos. 3. La serializacin de accesos concurrentes a objetos compartidos por mltiples procesos. Haciendo referencia a los mtodos utilizados en un sistema centralizado, el cual hace uso de semforos y monitores; en un sistema distribuido se utilizan algoritmos distribuidos para sincronizar el trabajo comn entre los procesos y estos algoritmos Algoritmos para la Sincronizacin de Relojes La sincronizacin de relojes en un sistema distribuido consiste en garantizar que los procesos se ejecuten en forma cronolgica y a la misma vez respetar el orden de los eventos dentro del sistema. Para lograr esto existen varios mtodos o algoritmos que se programan dentro del sistema operativo, entre los cuales tenemos: Algoritmo de Cristian Algoritmo de Berkeley Sincronizacin en sistemas distribuidos El problema que existe en un sistema distribuido, es determinar el orden particular sobre cualquier conjunto de eventos en un sistema distribuido. Existen dos grupos de mecanismos de sincronizacin: centralizados y distribuidos. Mecanismos de sincronizacin centralizada Estos son los mecanismos que se basan en la existencia de una unidad de sincronizacin centralizada, la cual debe tener un nombre nico conocido para todos los procesos que requieren ser sincronizados. Se designa un nodo como nodo de control y su tarea es administrar el acceso a los recursos compartidos. Este nodo tambin almacena informacin relevante sobre todos los procesos que realizan alguna peticin.

2.2.1 Relojes Fsicos La idea es proveer de un nico bloque de tiempo para el sistema. Los procesos pueden usar la marca fsica del tiempo provista o leda de un reloj central para expresar algn orden en el conjunto de acciones que inician. La principal ventaja de este mecanismo es la simplicidad, aunque existen varios inconvenientes: el correcto registro del tiempo depende en la posibilidad de recibir correctamente y en todo momento, el tiempo actual desplegado por el reloj fsico; los errores de transmisin se convierten en un impedimento para el orden deseado, el grado de exactitud depende de las constantes puestas en el sistema.

Los valores de tiempo asignados a los eventos no tienen porqu ser cercanos a los tiempos reales en los que ocurren. En ciertos sistemas es importante la hora real del reloj: o Se precisan relojes fsicos externos (ms de uno). o Se deben sincronizar: Con los relojes del mundo real. Entre s. Desde antiguo el tiempo se ha medido astronmicamente. Se considera el da solar al intervalo entre dos trnsitos consecutivos del sol, donde el trnsito del sol es el evento en que el sol alcanza su punto aparentemente ms alto en el cielo. El segundo solar se define como 1 / 86.400 de un da solar. Como el perodo de rotacin de la tierra no es constante, se considera el segundo solar promedio de un gran nmero de das. Los fsicos definieron al segundo como el tiempo que tarda el tomo de cesio 133 para hacer 9.192.631.770 transiciones: Se tom este nmero para que el segundo atmico coincida con el segundo solar promedio de 1958. : Operan estaciones de radio de onda corta o satlites de comunicaciones. Transmiten pulsos UTC con cierta regularidad establecida (cada segundo, cada 0,5 mseg, etc.). Se deben conocer con precisin la posicin relativa del emisor y del receptor: o Se debe compensar el retraso de propagacin de la seal. o Si la seal se recibe por mdem tambin se debe compensar por la ruta de la seal y la velocidad del mdem. o Se dificulta la obtencin del tiempo con una precisin extremadamente alta.

2.2.2 Relojes Lgicos Los relojes lgicos son aquellos por los cuales estn ordenados los sucesos de una forma nica. Para poder usar en general el tiempo fsico se debe sincronizar perfectamente bien los relojes a lo largo de un sistema distribuido para poder as obtener el orden de cualquier par arbitrario de sucesos que ocurran en el, pero es poco probable que esto ocurra por que no se puede sincronizar perfectamente los relojes a lo largo de un sistema distribuido. Se puede utilizar un esquema que similar a la casualidad fsica, que se aplica en los sistemas distribuidos, para controlar el orden de algunos sucesos que ocurren en diversos procesos. La cual esta basada en dos puntos sencillos y obvios. Cuando se enva un mensaje entre procesos, el suceso de enviar el mensaje ocurri antes del de recepcin del mismo. Lamport llamo a la ordenacin obtenida al generalizar estas dos relaciones la realizacin suceder antes. Tambin se le conoce como la relacin de orden casual u ordenacin casual del mismo. La relacin captura un flujo de informacin entre dos eventos. La informacin puede fluir de formas distintas de la de paso de mensajes. Por ejemplo: Si Prez presenta un mandato a su proceso para que enve un mensaje, acto seguido telefonea a Gmez, quien ordena a su proceso que enve otro mensaje, luego el envo del primer mensaje claramente sucedi antes que el segundo. Desafortunadamente, como no se ha enviado mensajes de red entre los procesos que los emitieron, no podemos modelar este tipo de relaciones en nuestro sistema. Otro punto a sealar es que aun producindose la relacin sucedi antes entre dos sucesos, el primero podra o no haber causado realmente el segundo. Un proceso podra recibir un mensaje y consecuentemente enviar otro mensaje, pero no que l emite cada cinco minutos en cualquier caso y no tiene ninguna relacin especfica con el primer mensaje. No se ha supuesto ninguna causalidad real, pero la relacin debe ordenar estos sucesos. Lamport invento un mecanismo simple con el cual la relacin sucedi antes pueda capturarse numricamente, denominado reloj lgico. Un reloj es un contador software que se incrementa montonamente, y sus valores no necesitan tener relacin alguna con el reloj fsico.

2.2.3.- Uso de la sincronizacin manejo de cache, comunicacin en grupo exclusivo mutua eleccin transacciones atomicas e interbloqueo. Memoria Cach En los sistemas de archivos convencionales, el fundamento para la memoria cach es la reduccin de la E/S de disco (lo que aumenta el rendimiento), en un SAD el objetivo es reducir el trfico en la red. Esquema Bsico, el concepto de memoria cach es sencillo, si los datos necesarios para satisfacer la solicitud de acceso no se encuentran en la memoria cache, se trae una copia de servicio al usuario y los accesos se llevan a cabo con la copia de memoria cach. La idea es conservar all los bloques de disco de acceso mas reciente, para as manejar localmente los accesos repetidos a la misma informacin y no aumentar el trfico de la red. Se utiliza una poltica de reemplazo (por ejemplo, la de utilizacin menos reciente) para limitar el tamao de la memoria cach. Polticas de Actualizacin, la poltica 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. La poltica mas sencilla consiste en escribir los datos directamente en el disco tan pronto se coloquen en una memoria cach. La ventaja de la escritura directa es su confiabilidad, ya que se pierde poca informacin si un sistema cliente falla. Sin embargo, esta poltica requiere que cada acceso de escritura espere hasta que se enve la informacin al servidor, por lo que representa una escritura de escaso rendimiento. 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. NFS proporciona el acceso de escritura directa. Consistencia, 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, puede usarse). Si la maquina cliente determina que sus datos en memoria cach estn desfasados, ya no pueden servir para los accesos y hay que colocar en la memoria cach una copia actualizada de los datos. Existen dos enfoques para verificar la validez de los datos en memoria cach ..:

Enfoque iniciado por el cliente, el cliente inicia una comprobacin de validez, en la cual se pone en contacto con el servidor y comprueban si los datos locales son consistentes con la copia maestra. Enfoque iniciado por el servidor, el servidor anota, para cada cliente, las partes de los archivos que coloca en memoria cache, y cuando detecta una inconsistencia, debe reaccionar. Una posible fuente inconsistencia ocurre cuando dos clientes, que trabajan en modos conflictivos, colocan en memoria cach un archivo. Comunicacin en grupos (Algoritmos Para la Sincronizacin de Relojes) Si una mquina tiene un receptor de UTC, todas las mquinas deben sincronizarse con ella. Si ninguna mquina tiene un receptor de UTC: Cada mquina lleva el registro de su propio tiempo. Se debe mantener el tiempo de todas las mquinas tan cercano como sea posible. Se supone que cada mquina tiene un cronmetro que provoca una interrupcin h veces por segundo. Cuando el cronmetro se detiene, el manejador de interrupciones aade 1 a un reloj en software. El reloj en software mantiene un registro del nmero de marcas (interrupciones) a partir de cierta fecha acordada antes; al valor de este reloj se lo llama C. Algoritmo de Cristian Es adecuado para sistemas en los que: Una mquina tiene un receptor UTC, por lo que se la llama despachador del tiempo. El objetivo es sincronizar todas las mquinas con ella. Cada mquina enva un mensaje al servidor para solicitar el tiempo actual, peridicamente, en un tiempo no mayor que / 2 segundos. El despachador del tiempo responde prontamente con un mensaje que contiene el tiempo actual CUTC. Cuando el emisor obtiene la respuesta puede hacer que su tiempo sea CUTC. Un gran problema es que el tiempo no puede correr hacia atrs: CUTC no puede ser menor que el tiempo actual C del emisor. La atencin del requerimiento en el servidor de tiempos requiere un tiempo del manejador de interrupciones. Tambin se debe considerar el tiempo de transmisin. El cambio del reloj se debe introducir de manera global: Si el cronmetro genera 100 interrupciones por segundo: Cada interrupcin aade 10 mseg al tiempo. Para atrasar solo agregara 9 mseg. Para adelantar agregara 11 mseg.

La correccin por el tiempo del servidor y el tiempo de transmisin se hace midiendo en el emisor: El tiempo inicial (envo) T0. El tiempo final (recepcin) T1. Ambos tiempos se miden con el mismo reloj. El tiempo de propagacin del mensaje ser (T1 - T0) / 2. Si el tiempo del servidor para manejar la interrupcin y procesar el mensaje es I: El tiempo de propagacin ser (T1 - T0 - I) / 2. Para mejorar la precisin: Se toman varias mediciones. Se descartan los valores extremos. Se promedia el resto. El tiempo de propagacin se suma al tiempo del servidor para sincronizar al emisor cuando ste recibe la respuesta. 2.3 Nominacion caracteristicas y Estructuras La nominacin es una correspondencia entre objetos de datos lgicos y fsicos. Por ejemplo, los usuarios tratan con objetos de datos lgicos representados por nombre de archivos, mientras que el sistema manipula bloques de datos fsicos 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 numrico de bajo nivel, que a su vez se corresponde con bloquesen disco. Esta correspondencia multinivel ofrece a los usuarios la abstraccin de un archivo, que oculta los detalles de cmo y donde se almacena el archivo en disco. En un SAD transparente se agrega una nueva dimensin de abstraccin ..: la ocultacin de la ubicacin de los archivos de la red. En un sistema de archivos convencionales la funcin de nominacin produce como resultado un intervalo de direcciones en disco, en un SAD este intervalo crece para incluir la mquina especifica en cuyo disco se almacena el archivo. 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 abstraccin se ocultan tanto la experiencia de copias como su ubicacin. Estructuras de Nominacin ..: Existen dos conceptos que hay que distinguir en relacin con al correspondencia de nombres en un SAD. Transparencia de Nominacin, El nombre de archivo no revela ningn indicio sobre de la ubicacin del almacenamiento fsico del archivo.

Independencia de Ubicacin, No es necesario modificar el nombre de un archivo cuando cambia su ubicacin en el almacenamiento fsico. Esquema de Nominacin ..: Hay tres enfoques principales para los esquemas de nominacin en un SAD. En el enfoque mas sencillo, los archivos se nombran con una combinacin del nombre de su anfitrin y su nombre local , lo que garantiza un nombre nico dentro de todo el sistema. Por ejemplo, en Ibis, un archivo se identifica de manera nica con el Nombre Anfitrin Local, donde nombre local es una ruta semejante a las de UNIX. 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 difcil de mantener en la NFS, ya que cualquier directorio se puede unir a cualquier rbol de direcciones locales y la jerarqua resultante puede estar poco estructurada. 2.3.2 Tipos de nombres usuario y de sistema Descripcin del sistema operativo Para que un ordenador pueda hacer funcionar un programa informtico (a veces conocido como aplicacin o software), debe contar con la capacidad necesaria para realizar cierta cantidad de operaciones preparatorias que puedan garantizar el intercambio entre el procesador, la memoria y los recursos fsicos (perifricos). El sistema operativo (a veces tambin citado mediante su forma abreviada OS en ingls) se encarga de crear el vnculo entre los recursos materiales, el usuario y las aplicaciones (procesador de texto, videojuegos, etctera). Cuando un programa desea acceder a un recurso material, no necesita enviar informacin especfica a los dispositivos perifricos; simplemente enva la informacin al sistema operativo, el cual la transmite a los perifricos correspondientes a travs de su driver (controlador). Si no existe ningn driver, cada programa debe reconocer y tener presente la comunicacin con cada tipo de perifrico.

Funciones del sistema operativo El sistema operativo cumple varias funciones:

Administracin del procesador: el sistema operativo administra la distribucin del procesador entre los distintos programas por medio de un algoritmo de programacin. El tipo de programador depende completamente del sistema operativo, segn el objetivo deseado. Gestin de la memoria de acceso aleatorio: el sistema operativo se encarga de gestionar el espacio de memoria asignado para cada aplicacin y para cada usuario, si resulta pertinente. Cuando la memoria fsica es insuficiente, el sistema operativo puede crear una zona de memoria en el disco duro, denominada "memoria virtual". La memoria virtual permite ejecutar aplicaciones que requieren una memoria superior a la memoria RAM disponible en el sistema. Sin embargo, esta memoria es mucho ms lenta. Gestin de entradas/salidas: el sistema operativo permite unificar y controlar el acceso de los programas a los recursos materiales a travs de los drivers (tambin conocidos como administradores perifricos o de entrada/salida). Gestin de ejecucin de aplicaciones: el sistema operativo se encarga de que las aplicaciones se ejecuten sin problemas asignndoles los recursos que stas necesitan para funcionar. Esto significa que si una aplicacin no responde correctamente puede "sucumbir". Administracin de autorizaciones: el sistema operativo se encarga de la seguridad en relacin con la ejecucin de programas garantizando que los recursos sean utilizados slo por programas y usuarios que posean las autorizaciones correspondientes. Gestin de archivos: el sistema operativo gestiona la lectura y escritura en el sistema de archivos, y las autorizaciones de acceso a archivos de aplicaciones y usuarios. Gestin de la informacin: el sistema operativo proporciona cierta cantidad de indicadores que pueden utilizarse para diagnosticar el funcionamiento correcto del equipo

2.3.3 Resolucion y Distribucion En general, los sistemas distribuidos (no solamente los sistemas operativos) exhiben algunas ventajas sobre los sistemas centralizados que se describen enseguida.

Economa: El cociente precio/desempeo de la suma del poder de los procesadores separados contra el poder de uno solo centralizado es mejor cuando estn distribudos.

Velocidad: Relacionado con el punto anterior, la velocidad sumada es muy superior. Confiabilidad: Si una sola mquina falla, el sistema total sigue funcionando. Crecimiento: El poder total del sistema puede irse incrementando al aadir pequeos sistemas, lo cual es mucho ms difcil en un sistema centralizado y caro. Distribucin: Algunas aplicaciones requieren de por s una distribucin fsica.

Por otro lado, los sistemas distribudos tambin exhiben algunas ventajas sobre sistemas aislados. Estas ventajas son:

Compartir datos: Un sistema distribudo permite compartir datos ms fcilmente que los sistemas aislados, que tendrian que duplicarlos en cada nodo para lograrlo. Compartir dispositivos: Un sistema distribudo permite accesar dispositivos desde cualquier nodo en forma transparente, lo cual es imposible con los sistemas aislados. El sistema distribudo logra un efecto sinergtico. Comunicaciones: La comunicacin persona a persona es factible en los sistemas distribudos, en los sistemas aislados no. _ Flexibilidad: La distribucin de las cargas de trabajo es factible en el sistema distribudos, se puede incrementar el poder de cmputo.

2.3.4 Servidores y agentes de nombres En la actualidad, la ICANN est formalmente organizada como una corporacin sin fines de lucro y de utilidad pblica. Est administrada por una Junta de Directores, que est compuesta por seis representantes de las organizaciones de apoyo, sub-grupos que se ocupan de las secciones especficas de las polticas de ICANN en virtud de la competencia, ocho representantes independientes del inters pblico general, seleccionados a travs de un Comit de Nominaciones que representa a todas las circunscripciones de la ICANN, y el Presidente y Director Ejecutivo, nombrado por el resto de la Junta. En la actualidad hay tres organizaciones de apoyo: la GNSO (Generic Names Supporting Organization) se ocupa de la formulacin de polticas sobre dominios genricos de nivel superior, ccNSO (Country Code Names Supporting Organization) se ocupa de la elaboracin de polticas relativas a cdigos de pases en dominios de nivel superior, la ASO

(Address Supporting Organization) se ocupa de la formulacin de polticas en direcciones IP. ICANN tambin se basa en algunos comits consultivos para recibir asesoramiento sobre los intereses y necesidades de los interesados que no participen directamente en las organizaciones de apoyo. Entre ellos figuran el Comit Asesor Gubernamental (GAC), que est integrado por representantes de un gran nmero de gobiernos nacionales de todo el mundo; el ALAC (At-Large Advisory Comit), que est integrado por representantes de organizaciones de los distintos usuarios de Internet de todo el mundo; el sistema DNS y TLG (Technical Liaison Group) compuesto por representantes de otras organizaciones tcnicas internacionales de Internet.

2.3.5 Mapeo de Direcciones Para poder ejecutar instrucciones, si no sabemos en qu parte de la memoria estarn cargadas, debemos tener un mecanismo de traduccin de direcciones virtuales a reales. Para ello, se necesitan dos cosas. Primero, el compilador manejar una direccin base ms un desplazamiento al referirse a las instrucciones. Segundo, el sistema operativo asignar como direccin base el nmero de pgina, al paginar al proceso. De esta manera, puede buscarse el inicio de una pgina en memoria, sumarle el desplazamiento y as obtener la direccin real de una instruccin. Ntese que en el diagrama se tiene una tabla de proceso y ah mismo se maneja la direccin inicial de la tabla de pginas. En algunos sistemas operativos, estas dos tablas se manejan por separado. La traduccin de direcciones virtuales para segmentos se maneja de manera similar. Existe un esquema adicional, paginacin/segmentacin, que es la combinacin de ambos. La memoria se divide en marcos de pgina, idealmente ms pequeos que el tamao del marco de pgina en un sistema de paginacin tradicional. Cada segmento est compuesto por cierto nmero de pginas. Es decir, el tamao del segmento es un mltiplo del tamao de pgina. Este esquema pretende sacar ventaja de los beneficios de los otros dos. Este mismo mecanismo de traduccin de direcciones virtuales puede aplicarse en paginacin/segmentacin.

Recordemos que este mapeo debe efectuarse siempre, instruccin por instruccin ejecutada. Por ello, entre ms rpido sea el mecanismo, mejor. Existe una manera de mejorar dicho mecanismo mediante hardware. Una memoria asociativa es muy cara, pero permite buscar en toda la memoria en un mismo pulso de reloj. Implementando memoria asociativa, podemos traducir direcciones para pginas o segmentos. Sin embargo, el utilizar memoria asociativa implica que el nmero de marcos de pgina y/o el nmero de segmentos, se ve limitado por el tamao de la memoria asociativa. Es decir, no puede haber ms marcos de pgina que nmero de celdas en la memoria asociativa. Por ello, hay sistemas operativos que manejan una combinacin de ambos. Se cargan a memoria las pginas/segmentos ms utilizados, y la traduccin se utiliza de manera normal. Solamente en aquellos casos en los que no encontrara la pgina/segmento en la memoria asociativa, efectuara la traduccin directa. Para esa instruccin, hara un doble mapeo. Sin embargo, el principio de localidad nos asegura que esto no suceder con frecuencia. 2.3.6 Mapeo de Rutas ROADMAPPING (Mapeo de rutas) El Technology Roadmapping o mapeo de rutas tecnolgicas, es un mtodo especficamente desarrollado para la realizacin de estudios de Prospectiva Tecnolgica. El modelo se basa en las directrices dictadas por las necesidades del mercado ayudando a identificar, seleccionar y desarrollar con posterioridad las alternativas de tecnologa necesarias para satisfacer un conjunto de necesidades de un producto. Se trata de una prospectiva por objetivos que, entre otras funciones, ayuda a identificar necesidades y tecnologas, proporciona informacin necesaria en la toma de decisiones, identifica tecnologas crticas o vacos en tecnologa que deben llenarse para poder desarrollar productos con desempeos especficos y analiza el proceso a travs del tiempo. 5.1. QUE ES EL ROADMAP? El Roadmap o Mapeo de rutas describe un ambiente futuro, los objetivos que pueden llegar a obtenerse con ese ambiente y los planes

para lograr los objetivos planteados a travs del tiempo. Explicita una estructura, o arquitectura, como una va para el entendimiento de cmo las partes de un complejo sistema tecnolgico encajan, interactan y evolucionan. As mismo, articula aplicaciones, desafos tecnolgicos y soluciones tecnolgicas en forma conjunta y ayuda a establecer las prioridades para la consecucin de los objetivos. QUE ES EL ROADMAPPING? La mejor hoja de ruta es creada a partir de un trabajo en equipo, recibiendo las visiones y el conocimiento de un grupo de personas que llevan a cabo el plan de mapeo de rutas. El proceso de Roadmapping ayuda al equipo a reunir diversas perspectivas sobre todos los aspectos del ambiente y del plan. As mismo ayuda al equipo a construir un consenso para llevar a cabo el plan de accin. El mapeo de rutas tambin es la base para la descripcin de los objetivos. ESTRUCTURA DEL ROADMAPPING El mapeo de rutas explicita campos de accin y permite trazar directrices para el planteamiento de acciones orientadas a responder o desarrollar completamente un conjunto de preguntas: Por qu Qu Cmo - Cundo elementos importantes para poder desarrollar planes y proyectos de accin en la direccin de los objetivos planteados y alcanzar las metas buscadas. La siguiente figura describe las cuatro partes de la arquitectura con base en un mapeo de rutas. El mapeo de rutas puede ser construido comenzando con la definicin de las principales necesidades del mercado para luego definir las tecnologas necesarias. (Prospectiva por entradas del mercado). Recprocamente, al mapeo tambin puede comenzar con la definicin de tecnologas claves y proseguir con los requerimientos del mercado que pueden ser satisfechos con esas tecnologas. (Prospectiva por entradas de tecnologas) 2.3.7 Modelo de Terry El modelo de Terry Tales servidores de nombre se llaman las autoridades que nombra o servidores autoritarios de nombre para eso objetan. El problema es cmo distribuir servidores de nombre, esto es, que de las estructuras de una facilidad de nombramiento es el mejor.

Los criterios diferentes pueden ser tomados en cuenta al desarrollar la facilidad de nombramiento para sistemas de cmputo distribuidos. En la etapa de anlisis de la estructura de facilidad de nombramiento, usaremos la mayor parte de importante de esos criterios, a saber actuacin. Este criterio es importante para un ambiente distribuido porque que hay usualmente un nmero de redes interconectadas (lo mismo es cierto en caso de una red de rea local conectando un nmero grande de computadoras personales y / o los puestos de trabajo, y los servidores diferentes), lo cual insina que el costo de comunicacin entre clientes y servidores de nombre es el cuello de botella principal en localizar recursos remotos. En este caso, la actuacin de averiguaciones del servidor de nombre es dominada por el nmero 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. Los factores que afectan la eficiencia con la cual el espacio de nombre puede ser manejado y el costo de recuperar informacin del servidor de nombre son: + El di denota el costo de ejecutar una averiguacin en NS, ste costado depende de tales factores como el tamao global de la base de datos mantenida por NSi, y la clase de instalaciones de la base de datos utilizaron. Se asume que se compone con el paso del tiempo. + El cui es el costo de comunicar con NSi de cliente u, depende del sitio en el cual el cliente ejecuta, Este costo depende de tales factores como el nmero de portales de acceso atravesados, y la velocidad de lneas de transmisin. + El CUi especifica el costo completo de ganar acceso al servidor de nombre, NSi, remotamente de cliente u, y sea expresada por la siguiente frmula: El costo de recuperar la informacin del servidor de nombre acerca de un set de denominado as es que urce s depende de posicin del cliente relativo a servidores diversos de nombre y la mezcla remisiva del cliente y puede ser expresado por la frmula: Donde Luk representa el coste total de poner en duda la informacin en particin de la base de datos dk, incluir el costo de localizar los datos deseados. Porque estamos interesados en el costo de recuperar la entrada del servidor de nombre de un objeto individual, ignoraremos los patrones de acceso del cliente en E (Lu) concentrndose slo en Luk

4.8.2 Structures de la facilidad de nombramiento Las siguientes estructuras bsicas de facilidad de nombramiento para los sistemas operativos distribuidos han sido identificadas por Terry (1984) e Indulska y Goscinski (1989): (1) una facilidad centralizada de nombramiento (2) una facilidad replegada de nombramiento (3) una facilidad descentralizada de nombramiento (4) una facilidad distribuida de nombramiento (5) una facilidad jerrquica de nombramiento. Una cierta cantidad de estas estructuras y sus modificaciones son ilustradas en Fig.7.29. Las estructuras de facilidad Fig. 7.29 Nombre. El sistema (5) centralizado, (6) - el sistema replegado, (7) el sistema descentralizado con divisin en los tipos del objeto, (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, (3) distribuy sistema (4) recursos locales conocidos en cada nodo, sistema con creces distribuido direccin del recurso determin por una funcin de hashing que se defini sobre el set de identificadores del recurso, jerrquico -. Ahora, describiremos estas estructuras de facilidad de nombramiento enfatizando evaluacin de rendimiento. La presentacin de estos temas se basa en la actuacin que el modelo desarroll por Terry, y tambin por Indulska y Goscinski. Las instalaciones centralizadas de nombramiento Una facilidad centralizada de nombramiento es implementada usando un servidor solo de nombre, lo cual mantiene una mesa o base de datos con tal que el nombre necesario para ocuparse de mapeos. Este sistema maneja un espacio plano de nombre donde los nombres son cadenas de caracteres no exhibiendo estructura. La base de datos del servidor de nombre es aumentada registrando servicios, va en procesin, pone a babor (los buzones) y otros detalles pertinentes que quieren ser pblicamente sabidos. Los directorios del archivo pueden ser considerados como una causa especial de servicio de nombre. En este caso, Sk = NS. El servidor de nombre contiene que la coleccin completa de informacin aproximadamente toda nombr objetos en el ambiente

distribuido. El costo de recuperacin es simplemente Lk = C, dnde la C especifica el coste mximo de ganar acceso a servidor de nombre NS remotamente por la u ms lejana del cliente. La ventaja de esta estructura de nombramiento es su simplicidad, y la evitacin de cualquier problemas de incongruencia que se identific en algunos sistemas con ms que un servidor. Las desventajas son fiabilidad de punto bajo del sistema enteramente distribuido, y el trfico grande los retrasos areos y largos en ganar acceso al servidor y antes de iniciar una transmisin orientada en servicio requerida. Los sistemas replegados de nombramiento Una facilidad replegada de nombramiento maneja un espacio plano de nombre tambin. 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 direccin necesarios para el sistema entero. En este caso, Sk = { NS1. . . , NSN } Porque cada servidor de nombre contiene una coleccin completa De informacin aproximadamente toda nombr objetos (los recursos) del sistema distribuido, cualquier cliente puede interrogar el servidor de nombre fsicamente ms cercano, implcito aqu N Smain que ste significa que el costo de recuperacin es simplemente caera maestra Lk = C. Este sistema tiene las siguientes ventajas: Es muy rpido, que no tiene retrasos de levantes obligatorios de operacin, el nmero de mensajes de orientes obligatorio es cero, y tiene fiabilidad alta. El problema mantienen consistencia entre copias, nombran problemas de materializacin (si un proceso muere, entonces o un servicio se vuelve agotado) y requisitos grandes de memoria de cada nodo. La entrada de la base de datos de nombre orient descentraliz sistemas Una entrada de la base de datos de nombre orient descentraliz sistema tambin maneja un espacio plano de nombre, pero cada entrada del servidor de nombre es almacenada en algn sitio arbitrario. En este caso, Sk = { NS }. Tal solucin para una estructura de facilidad de nombramiento insina que el almacenamiento y los problemas de consistencia, mencionadas en el acercamiento previo, es evitado. sta es la ventaja principal de esta estructura.

S-ar putea să vă placă și