63
ipos de Sistemas Operativos Comunicación y Sincronización de Sistemas Distribuidos Herrera Hernández Beatriz Ariana Ríos del Rio Diana Abigail Trejo Rayón Moisés Vázquez Flores Daniela

Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Embed Size (px)

Citation preview

Page 1: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Tipos de Sistemas Operativos

Comunicación y Sincronización de Sistemas

DistribuidosHerrera Hernández Beatriz Ariana

Ríos del Rio Diana AbigailTrejo Rayón Moisés

Vázquez Flores Daniela

Page 2: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

¿Comunicación?

Proceso de transmisión y

recepción de ideas, información, etc.

Lenguaje.

Símbolos y alfabetos.

Transmisor, receptor y medio de transmisión.

Tipos de Sistemas Operativos

Page 3: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Comunicación en los Sistemas Distribuidos

Tipos de Sistemas Operativos

La diferencia entre un sistema distribuido y un sistema de un único procesador es la comunicación entre procesos

•Sistema con un solo procesador

•Sistema Distribuido •Comunicación

•Memoria Compartida

•No existe la Memoria Compartida (procesos)

Page 4: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Comunicación en los Sistemas Distribuidos

Tipos de Sistemas Operativos

Los procesos para comunicarse deben apegarse a las reglas o protocolos.

Los sistemas distribuidos en un área amplia toman frecuentemente la forma de varias capas y cada capa tiene sus propias reglas

Para intercambiar mensajes se hace uso de “Llamada a un proceso Remoto”

Page 5: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Debido a la ausencia de memoria compartida, la comunicación en sistemas distribuidos se basa en transferencia de mensajes.

Cuando un proceso “A” quiere comunicarse con el procesos “B”:

o Construye un mensaje en su propio espacio de direcciones

o Ejecuta la llamada al sistema para que el S.O . busque el mensaje y lo envié a través de la red hacia “B”

o Para evitar caos, “A” y “B” deberán coincidir en el significado de los bits que se envíen.

Haga clic en el icono para agregar una imagen

Protocolos

con Capas

Tipos de Sistemas Operativos

Page 6: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

6Tipos de Sistemas Operativos

Los puntos de acuerdo necesarios incluyen lo siguiente:

1. ¿Cuántos voltios hay que utilizar para un bit “0” y cuántos para un bit “1”?.

2. ¿Cómo sabe el receptor cuál es el último bit del mensaje?.

3. ¿Cómo puede detectar si un mensaje ha sido dañado o perdido, y qué debe hacer si lo descubre?.

4. ¿Qué longitud tienen los números, cadenas y otros elementos de datos y cuál es la forma en que están representados?.

La ISO (Organización Internacional de Estándares) desarrolló un modelo de referencia que :

Identifica en forma clara los distintos niveles. Estandariza los nombres de los niveles. Señala cuál nivel debe realizar cuál trabajo.

Page 7: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

“Modelo de Referencia para interconexión de Sistemas

Abiertos”

Tipos de Sistemas Operativos

Page 8: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Tipos de Sistemas Operativos

El “modelo OSI” está diseñado para permitir la comunicación de los sistemas abiertos:

Son aquellos preparados para comunicarse con cualquier otro sistema abierto mediante reglas estándar: Establecen el formato, contenido y significado de los

mensajes recibidos y enviados. Constituyen los protocolos, que son acuerdos en la

forma en que debe desarrollarse la comunicación.

Page 9: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Tipos de Sistemas Operativos

El “modelo OSI” distingue entre dos tipos generales de protocolos:

Orientados hacia las conexiones: Antes de intercambiar los datos, el emisor y el receptor:

○ Establecen en forma explícita una conexión. ○ Probablemente negocien el protocolo a utilizar. ○ Al finalizar, deben terminar la conexión. ○ El teléfono es un sistema de comunicación orientado hacia

la conexión. Sin conexión:

No es necesaria una configuración de antemano. El emisor transmite el primer mensaje cuando está listo. El depósito de una carta en un buzón es una

comunicación sin conexión.

Page 10: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Modelo Cliente - Servidor

Tipos de Sistemas Operativos

La mayoría de los sistemas distribuidos basados en LAN utilizan un subconjunto de toda una pila de protocolos.

El “modelo cliente - servidor” tiene como idea fundamental la estructuración del S. O. como: Un grupo de procesos en cooperación,

llamados servidores, que ofrecen servicios a los usuarios.

Un grupo de procesos usuarios llamados clientes.

Page 11: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Tipos de Sistemas Operativos

El “modelo cliente - servidor” se basa en un “protocolo solicitud / respuesta”:

• Es sencillo y sin conexión.• No es complejo y orientado a la conexión como OSI o TCP /

IP.• El cliente envía un mensaje de solicitud al servidor

pidiendo cierto servicio.• El servidor:

Ejecuta el requerimiento. Regresa los datos solicitados o un código de error si no

pudo ejecutarlo correctamente.• No se tiene que establecer una conexión sino hasta que

ésta se utilice.• La pila del protocolo es más corta y por lo tanto más

eficiente.• Si todas las máquinas fuesen idénticas solo se necesitarían

tres niveles de protocolos.

Page 12: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Tipos de Sistemas Operativos

Page 13: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Direccionamiento en C - S

Tipos de Sistemas Operativos

Para que un cliente pueda enviar un mensaje a un servidor, debe conocer la dirección de éste..

Un esquema de direccionamiento se basa en la dirección de la máquina destinataria del mensaje:

Otro esquema de direccionamiento se basa en identificar los procesos destinatarios en vez de a las máquinas:

Una variante utiliza machine.local-id en vez de machine.process: local-id generalmente es un entero aleatorio de 16 o 32 bits.

Otro método de direccionamiento consiste en asignarle a cada proceso una única dirección que no contenga un número de máquina.

Otro método utiliza hardware especial.

Page 14: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Primitivas de Bloqueo Vs No Bloqueo en C - S

Tipos de Sistemas Operativos

Las primitivas de transferencia de mensajes consideradas anteriormente se denominan primitivas de bloqueo o primitivas síncronas:

El proceso emisor se suspende (se bloquea) mientras se envía el mensaje.

o El proceso receptor se suspende mientras se recibe el mensaje.Una alternativa son las primitivas sin bloqueo o primitivas asíncronas: El proceso emisor:

No se suspende mientras se envía el mensaje. Sí puede continuar su cómputo paralelamente con la

transmisión del mensaje. No puede modificar el buffer de mensajes hasta que se envíe el

mensaje. No tiene control sobre la terminación de la transmisión y por lo

tanto no sabe cuándo será seguro reutilizar el buffer.Una solución es: • Que el núcleo copie el mensaje a un buffer interno del núcleo.• Que entonces el núcleo permita al proceso continuar y reutilizar el

buffer.

Page 15: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Primitivas Almacenadas en Buffer Vs No almacenadas en C - S

Tipos de Sistemas Operativos

Las primitivas consideradas hasta ahora son esencialmente primitivas no almacenadas:

Significa que una dirección se refiere a un proceso específico.

Una llamada receive (addr, &m) le indica al núcleo de la máquina en donde se ejecuta: Que el proceso que hace la llamada escucha a la dirección addr. Que está preparada para recibir el mensaje enviado a esa dirección.

Este esquema funciona bien cuando el servidor llama a receive antes de que el cliente llame a send.

El problema se presenta cuando el send se lleva a cabo antes que el receive: El núcleo del servidor:

No sabe cuál de sus procesos utiliza la dirección en el mensaje recién llegado.

No sabe dónde copiar el mensaje recibido.Una solución consiste en:

Descartar el mensaje.Dejar que el cliente espere.Confiar en que el servidor llame a receive antes de que el cliente vuelva a transmitir; por ello el cliente podría tener que intentar varias veces.

Page 16: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Primitivas Confiables Vs No Confiables en C - S

Tipos de Sistemas Operativos

Los mensajes se pueden perder por diversas causas.:

1. Cuando un cliente envía un mensaje se le puede suspender hasta que el mensaje ha sido enviado: cuando continua no hay garantía del mensaje entregado

2. Un mensaje de este problema consiste en volver a definir la semántica de send para hacerlo no confiable. (No se garantiza la entrega de mensajes.)

3. Otro método exige que el núcleo de la máquina receptora envié un reconocimiento al núcleo de la máquina emisora. (solo cuando reciba el reconocimiento el núcleo emisor liberara al proceso usuario “cliente”.)

La solicitud de un cliente a un servidor es reconocida por el núcleo del servidor.La respuesta del servidor de regreso al cliente es reconocida por el núcleo del cliente.Una solicitud de respuesta consta de cuatro mensajes.

Page 17: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Tipos de Sistemas Operativos

Page 18: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Implementación del Modelo C - S

Tipos de Sistemas Operativos

Las principales opciones de diseño analizadas en resumen son :

o Direccionamiento: Número de máquina. Direcciones ralas de procesos. Búsqueda de nombres en ASCII por medio del servidor.

o Bloqueo: Primitivas con bloqueo. Sin bloqueo, con copia al núcleo. Sin bloqueo, con interrupciones.

o Almacenamiento en buffers: No usar el almacenamiento en buffers, descartar los mensajes

inesperados. Sin almacenamiento en buffers, mantenimiento temporal de los

mensajes inesperados. Buzones.

o Confiabilidad: No confiable. Solicitud - reconocimiento - respuesta - reconocimiento. Solicitud - respuesta - reconocimiento.

Page 19: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Los principales Tipos de Paquetes son los Siguientes:

Tipos de Sistemas Operativos

Req: Solicitud. De cliente a servidor. El cliente desea servicio.

Rep: Respuesta. De servidor a cliente. Respuesta del servidor al

cliente.

Ack: Reconocimiento. De cualquiera de ellos a algún

otro. El paquete anterior que ha

llegado. Aya:

¿Estás vivo?. De cliente a servidor.

Verifica si el servidor se ha descompuesto.

Iaa: Estoy vivo. De servidor a cliente. El servidor no se ha

descompuesto.

Ta: Intenta de nuevo. De servidor a clientes. El servidor no tiene espacio.

Au: Dirección desconocida. De servidor a cliente. Ningún proceso utiliza esta

dirección.

Page 20: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Tipos de Sistemas Operativos

Page 21: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Llamada a un Procedimiento Remoto (RCP)

Tipos de Sistemas Operativos

El modelo cliente - servidor es una forma conveniente de estructurar un S. O. distribuido, pero posee una falencia: El paradigma esencial en torno al que se construye la comunicación es la entrada / salida.Los procedimientos send / receive están reservados para la realización de e / s.

Una opción distinta fue planteada por Birrel y Nelson: Permitir a los programas que llamasen a procedimientos localizados en otras máquinas.Cuando un proceso en la máquina “A” llama a un procedimiento en la máquina “B”: El proceso que realiza la llamada se suspende. La ejecución del procedimiento se realiza en “B”.

La información se puede transportar de un lado al otro mediante los parámetros y puede regresar en el resultado del procedimiento.

El programador no se preocupa de una transferencia de mensajes o de la e / s.

A este método se lo denomina llamada a procedimiento remoto o RPC.

El procedimiento que hace la llamada y el que la recibe se ejecutan en máquinas diferentes, es decir que utilizan espacios de direcciones distintos.

Page 22: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Operación Básica de RCP

Tipos de Sistemas Operativos

Una llamada convencional a un procedimiento, es decir en una sola máquina, funciona de la siguiente manera:

Sea count = read (fd, buf, nbytes); donde: fd es un entero; buf es un arreglo de caracteres; nbytes es otro entero.

El programa llamador coloca los parámetros en la pila.El procedimiento llamado desde el programa llamador se carga en la memoria.Después de que read termina su ejecución:

Coloca el valor de regreso en un registro. Elimina la dirección de regreso. Transfiere de nuevo el control a quien hizo la llamada. Quien hizo la llamada elimina los parámetros de la pila y regresa a su

estado original.

Page 23: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Transferencia de Parámetros en RCP

Tipos de Sistemas Operativos

El empacamiento de parámetros en un mensaje se llama ordenamiento de parámetros.

El mensaje también contiene el nombre o número del procedimiento por llamar; el servidor podría soportar varias llamadas y se el tiene que indicar cuál de ellas se necesita.

Cuando el mensaje llega al servidor: El resguardo (stub) lo examina para ver cuál procedimiento necesita.Lleva a cabo la llamada apropiada.La llamada real del resguardo al servidor es similar a la llamada

original del cliente, excepto en que los parámetros son variables inicializadas a partir del mensaje recibido, en vez de ser constantes.

Page 24: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Semántica de RCP en Presencia de Fallos

Tipos de Sistemas Operativos

El objetivo de RPC es ocultar la comunicación al hacer que las llamadas a procedimientos remotos se parezcan a las llamadas locales.

El problema se presenta cuando aparecen los errores, ya que las diferencias entre las llamadas locales y remotas no son tan fáciles de encubrir.

Se consideraran las siguientes situaciones: El cliente no puede localizar al servidor.Se pierde el mensaje de solicitud del cliente al servidor.Se pierde el mensaje de respuesta del servidor al cliente.El servidor falla antes de recibir una solicitud.El cliente falla después de enviar una solicitud.

Page 25: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

El Cliente No Puede Localizar al Servidor

Tipos de Sistemas Operativos

El servidor podría estar inactivo. El servidor podría estar utilizando una nueva versión de la

interfaz y nuevos resguardos, que no serían compatibles con la interfaz y los resguardos del cliente.

En el servidor, cada uno de los procedimientos regresa un valor: Generalmente el código -1 indica un fallo.También se suele utilizar una variable global (UNIX) errno a la que se asigna un valor que indica el tipo de error.Un tipo de error sería “no se pudo localizar al servidor”.

Otra posibilidad para el tratamiento de los errores es mediante una excepción provocada por el error: Se codifican procedimientos especiales que son llamados ante errores específicos.El problema es que se puede destruir la transparencia deseada, ya que se dificulta mantener la similitud entre procedimientos locales y remotos.

Page 26: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Fallos de Servidor

Tipos de Sistemas Operativos

Un fallo del servidor también se relaciona con la idempotencia pero no se puede resolver con números secuenciales.

Page 27: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Fallos del Cliente

Tipos de Sistemas Operativos

La cuestión es qué ocurre si un cliente envía una solicitud a un servidor y falla antes de que el servidor responda.

Se genera una solicitud de trabajo o cómputo que al fallar el cliente ya nadie espera; se dice que se tiene un cómputo huérfano.

Los principales problemas generados por cómputos huérfanos son los siguientes: Desperdicio de ciclos de cpu.Posible bloqueo de archivos.Apropiación de recursos valiosos.Posible confusión cuando: El cliente rearranca y efectúa de nuevo la RPC. La respuesta del huérfano regresa inmediatamente luego.

Page 28: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Ruta Crítica

Tipos de Sistemas Operativos

Es la serie de instrucciones que se ejecutan con cada RPC.

Page 29: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

SINCRONIZACIÓN

Page 30: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Sincronización

En un sistema distribuido la sincronización debe permitir el

apropiado uso de los recursos, debe encargarse de un buen

desempeño y de la consistencia de los datos, además de mantener

seguras todas estas operaciones [Tanenbaum].

Sincronización se define como la forma de forzar un orden parcial

o total en cualquier conjunto de eventos, y es usado para hacer

referencia a problemas distintos pero relacionados entre sí.

Tipos de Sistemas Operativos

Page 31: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Sincronización

La sincronización entre el emisor y el

receptor. La especificación y control de la actividad

común entre procesos.

Tipos de Sistemas Operativos

Page 32: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Sincronización

En un sistema centralizado, el cual hace uso de

semáforos y monitores; en un sistema distribuido

se utilizan algoritmos distribuidos para sincronizar el

trabajo común entre los procesos y estos algoritmos

tienen las siguientes propiedades:

Tipos de Sistemas Operativos

Page 33: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Sincronización

Es inaceptable que se concentre en un solo nodo, a toda

aquella información que sea relevante para la toma de

decisiones que tengan que llevar a cabo los procesos.

Contemplar o prever los posibles puntos de fallo del sistema

Tipos de Sistemas Operativos

Page 34: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Sincronización de Relojes

Generalmente los algoritmos distribuidos tienen las siguientes propiedades: La información relevante se distribuye entre varias máquinas. Los procesos toman las decisiones solo con base en la

información disponible en forma local. No existe un reloj común o alguna otra

fuente precisa del tiempo global.

Tipos de Sistemas Operativos

Page 35: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Relojes Lógicos

Sistema Distribuido, cada nodo cuenta con su propio cronómetro y resulta imposible garantizar que sus cristales oscilarán con la misma frecuencia. En un sistema distribuido existe n número de computadoras y los n cristales oscilarán a tasas un poco distintas, lo que provoca una pérdida de sincronía y que al leerlos, tengan valores diferentes. Esta diferencia es llamada distorsión de reloj.

Tipos de Sistemas Operativos

Page 36: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Como consecuencia de esta distorsión podrían generarse inconsistencias, ya que los programas esperan que el tiempo asociado a un archivo, proceso o mensaje sea correcto e independiente del sitio donde fue generado.La diferencia entre los valores del tiempo se llama distorsión del reloj y podría generar fallas en los programas dependientes del tiempo. Lamport demostró que la sincronización de relojes es posible y presentó un algoritmo para lograrlo. 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.

Tipos de Sistemas Operativos

Algoritmos Para la Sincronización de Relojes

Page 37: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Si una máquina tiene un receptor de UTC, todas las máquinas deben sincronizarse con ella [Tanenbaum].

Si ninguna máquina tiene un receptor de UTC: Cada máquina lleva el registro de su propio tiempo. Se debe mantener el tiempo de todas las máquinas tan cercano

como sea posible. Se supone que cada máquina tiene un cronómetro que provoca una

interrupción “h” veces por segundo. Cuando el cronómetro se detiene, el manejador de interrupciones añade “1” a un reloj en software.

Tipos de Sistemas Operativos

Page 38: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Tipos de Sistemas Operativos

Algoritmo de LamportAsigna tiempos a los eventos. Ocurrencia anterior. a -> b “a ocurre antes que b”.

Si a y b son eventos del mismo proceso, y a ocurre antes que b, entonces a -> b es verdadera.

Si a es el evento en el que un proceso envía un mensaje, y b es el evento de recepción del mensaje por otro proceso, entonces a -> b también es verdadera.

Un mensaje no puede recibirse antes de ser enviado, o incluso al mismo tiempo en que es enviado, ya que necesita cierta cantidad de tiempo finita de cero, para llegar.

Page 39: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Tipos de Sistemas Operativos

Algoritmo de LamportConsideramos tres procesos que se ejecutan en diferentes máquinas, cada una con su propio reloj y velocidad:

Page 40: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Tipos de Sistemas Operativos

Algoritmo de LamportEl proceso “0” envía el mensaje “a” al proceso “1” cuando el reloj de “0” marca “6”. El proceso “1” recibe el mensaje “a” cuando su reloj marca “16”. Si el mensaje acarrea el tiempo de inicio “6”, el proceso “1” considerará que tardó 10 marcas de reloj en viajar.El mensaje “b” de “1” a “2” tarda 16 marcas de reloj.El mensaje “c” de “2” a “1” sale en “60” y llega en “56”, tardaría un tiempo negativo, lo cual es imposible. El mensaje “d” de “1” a “0” sale en “64” y llega en “54”.

Page 41: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Escalabilidad

Tipos de Sistemas Operativos

Es necesario considerar cómo funcionarán los algoritmos cuando se tienen los siguientes casos: Grupos con centenas o miles de miembros. Utilización de varias LAN y compuertas (gateways)

conectadas, es decir interred (internetwork). Diseminación de grupos en varios continentes. Las compuertas pueden afectar la

multitransmisión y el hecho requerido por algunas redes de tener un solo paquete en la red en un instante dado.

Tipos de Sistemas Operativos

Page 42: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Algoritmo de Berkeley

Tipos de Sistemas Operativos

En el algoritmo de Cristian el servidor de tiempo es pasivo. En el algoritmo de Berkeley el servidor de tiempo:

Es activo.Realiza un muestreo periódico de todas las máquinas para preguntarles el tiempo.

Con las respuestas: Calcula un tiempo promedio. Indica a las demás máquinas que avancen su reloj o

disminuyan la velocidad del mismo hasta lograr la disminución requerida.

Es adecuado cuando no se dispone de un receptor UTC.

Tipos de Sistemas Operativos

Page 43: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Exclusión Mutua

Tipos de Sistemas Operativos

El problema de la exclusión mutua en sistemas distribuidos surge cuando se tiene acceso concurrentemente a recursos compartidos por varios nodos de procesamiento.

En sistemas de una sola computadora, el estado de un recurso compartido y el estado de un usuario es más accesible por la existencia de una memoria compartida y se pueden implementar fácilmente soluciones a la exclusión mutua, haciendo uso de variables compartidas como los semáforos.

Tipos de Sistemas Operativos

Page 44: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Exclusión Mutua

Tipos de Sistemas Operativos

Sin embargo, en sistemas distribuidos los recursos compartidos y los usuarios pueden estar distribuidos y no existe una memoria compartida entre ellos; consecuentemente, los enfoques basados en variables compartidas no son aplicables a los sistemas distribuidos, en su lugar; se deben utilizar enfoques basados en el paso de mensajes. El problema de la exclusión mutua resulta más compleja en los sistemas distribuidos, debido a los retardos impredecibles de los mensajes. Cuando un proceso requiere leer o actualizar ciertas estructuras de datos compartidas, primero entra a una sección crítica (SC) para lograr la exclusión mutua asegurándose que ningún otro proceso utilice las mismas estructuras al mismo tiempo.

Tipos de Sistemas Operativos

Page 45: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Un Algoritmo Distribuido

Tipos de Sistemas Operativos

El objetivo es no tener un único punto de fallo (el coordinador central).

Un ej. es el algoritmo de Lamport mejorado por Ricart y Agrawala.

Se requiere un orden total de todos los eventos en el sistema para saber cuál ocurrió primero.

Cuando un proceso desea entrar a una región crítica: Construye un mensaje con el nombre de la región crítica, su número de proceso y la hora actual.Envía el mensaje a todos los demás procesos y de manera conceptual a él mismo.Se supone que cada mensaje tiene un reconocimiento.

Si el receptor no está en la región crítica y no desea entrar a ella, envía de regreso un mensaje o.k. al emisor.

Si el receptor ya está en la región crítica no responde y encola la solicitud.

Tipos de Sistemas Operativos

Page 46: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Un Algoritmo Distribuido

Tipos de Sistemas Operativos

Si el receptor desea entrar a la región crítica pero aún no lo logró, compara:

La marca de tiempo del mensaje recibido con, la marca contenida en el mensaje que envió a cada uno, la menor de las marcas gana.

Si el mensaje recibido es menor el receptor envía un o.k. Si su propio mensaje tiene una marca menor el receptor no

envía nada y encola el pedido.Luego de enviar las solicitudes un proceso: Espera hasta que alguien más obtiene el permiso. Cuando llegan todos los permisos puede entrar a la región

crítica.Cuando un proceso sale de la región crítica: Envía mensajes o.k. a todos los procesos en su cola. Elimina a todos los elementos de la cola.La exclusión mutua queda garantizada sin bloqueo ni inanición.

Tipos de Sistemas Operativos

Page 47: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Un Algoritmo Centralizado

Tipos de Sistemas Operativos

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.

Se elige un proceso coordinador. Cuando un proceso desea ingresar a una región crítica:

Envía un mensaje de solicitud al coordinador: Indicando la región crítica. Solicitando permiso de acceso.Si ningún otro proceso está en ese momento en esa región crítica: El coordinador envía una respuesta otorgando el

permiso.

Tipos de Sistemas Operativos

Page 48: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Un Algoritmo Centralizado

Tipos de Sistemas Operativos

Cuando llega la respuesta el proceso solicitante entra a la región crítica.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.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 proceso un mensaje otorgando el permiso, con lo cual el proceso queda habilitado para acceder a la región crítica solicitada.Es un esquema sencillo, justo y con pocos mensajes de control.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

Tipos de Sistemas Operativos

Page 49: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Un Algoritmo de Anillo de Fichas (Token Ring)

Tipos de Sistemas Operativos

Los procesos se organizan por software formando un anillo lógico asignándose a cada proceso una posición en el anillo.

Cada proceso sabe cuál es el siguiente luego de él. Al inicializar el anillo se le da al proceso “0” una ficha

(token) que circula en todo el anillo, que se transfiere del proceso “k” al “k + 1” en mensajes puntuales.

Cuando un proceso obtiene la ficha de su vecino verifica si intenta entrar a una región crítica:

En caso positivo: El proceso entra a la región crítica, hace el proceso

necesario y sale de ella. Después de salir pasa la ficha a lo largo del anillo:

○ No se puede entrar a una segunda región crítica con la misma ficha (token o permiso).

Tipos de Sistemas Operativos

Page 50: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Un Algoritmo de Anillo de Fichas (Token Ring)

Tipos de Sistemas Operativos

En caso negativo: La vuelve a pasar.

En un instante dado solo un proceso puede estar en una región crítica.

Si la ficha se pierde debe ser regenerada, pero es difícil detectar su perdida: La cantidad de tiempo entre las apariciones sucesivas de la ficha en la red no está acotada, por ello es difícil decidir si está perdida o demorada en algún proceso que no la libera.

La falla de un proceso es detectada cuando su vecino intenta sin éxito pasarle la ficha: Se lo debe eliminar del grupo y pasar la ficha al siguiente proceso activo.Todos los procesos deben mantener la configuración actual del anillo.

Tipos de Sistemas Operativos

Page 51: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Algoritmos de Elección

Tipos de Sistemas Operativos

Son los algoritmos para la elección de un proceso coordinador, iniciador, secuenciador, etc. (aquel que tendrá un rol especial en un SD).

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.

Muchas veces es necesario que un nodo coordine alguna acción en el sistema.

Si todos los procesos son idénticos, no hay forma de elegir a uno de ellos. Luego asumiremos que tienen identificadores únicos.

Supondremos que todos conocen la identidad de los demás miembros del grupo.

Page 52: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

El Algoritmos del Grandulón o de García - Molina

Un proceso “P” inicia una elección cuando observa que el coordinador ya no responde a las solicitudes.

“P” realiza una elección de la siguiente manera: Envía un mensaje elección a los demás procesos con un número mayor.Si nadie responde asume que gana la elección y se convierte en el nuevo coordinador.Si un proceso con un número mayor responde, toma el control y el trabajo de “P” termina.

Siempre gana el proceso que posee el número mayor, de ahí el nombre “algoritmo del grandulón”.

Page 53: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Anillo

1. Suponiendo que tenemos a los nodos ordenados en una anillo lógico. (p.ej, en orden creciente de identificadores)

2. Cuando un nodo quiere elegir nuevo líder, envía ELECTION por el anillo (al siguiente del anillo que esté vivo: que responda con ACK).

3. Cada nodo que ve el mensaje, incluye su propio ID en el mensaje.

4. Cuando el mensaje llega de vuelta al iniciador, contiene los IDs de todos los nodos participantes. En este momento, envía un mensaje LIDER por el anillo, avisando del nuevo líder (el nodo mayor).

5. Puede haber más de un mensaje simultáneo: pero los dos intentos de elección darán el mismo resultado.

Page 54: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Transacciones Atómicas

Tipos de Sistemas Operativos

Técnicas de abstracción de mayor nivel

. El programador debe enfrentarse directamente con los detalles de exclusión mutua, manejo de las regiones críticas, prevención de bloqueos y recuperación de fallas

. Se precisan técnicas de abstracción de mayor nivel que oculten estos aspectos técnicos y permitan que los programadores se concentren en sus algoritmos y la forma en que los procesos trabajan en paralelo.

La principal propiedad de la transacción atómica es el “todo o nada”: O se hace todo lo que se tenía que hacer como una unidad o no se hace nada.

○ Las dos operaciones terminarían o no terminaría ninguna.○ Se debe regresar al estado inicial si la transacción no puede

concluir.

El sistema consta de varios procesos independientes que pueden fallar aleatoriamente.

Page 55: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Almacenamiento Estable

Tipos de Sistemas Operativos

Se puede implantar con una pareja de discos comunes.

Cada bloque de la unidad 2 es una copia exacta (espejo) del bloque correspondiente en la unidad 1.

Cuando se actualiza un bloque: Primero se actualiza y verifica el bloque de la unidad 1 y 2.

Si el sistema falla luego de actualizar la unidad 1 y antes de actualizar la unidad 2: se recuperan y se comparan ambos discos.

Se puede actualizar la unidad 2 en función de la 1.Si se detecta el deterioro de un bloque, este se regenera

partiendo del bloque correspondiente en la otra unidad.

Page 56: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Primitivas de Transacción

Tipos de Sistemas Operativos

Son proporcionadas por el sistema operativo o por el sistema de tiempo de ejecución del lenguaje.

Ejemplos: Begin_transaction: los comandos siguientes forman una transacción.End_transaction: termina la transacción y se intenta un compromiso.Abort_transaction: se elimina la transacción; se recuperan los valores anteriores.Read: se leen datos de un archivo (o algún otro objeto).Write: se escriben datos en un archivo (o algún otro objeto).

Las operaciones entre Begin y End forman el cuerpo de la transacción

Page 57: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Propiedades de las Transacciones

Tipos de Sistemas Operativos

Serialización.- garantiza que si dos o más transacciones se ejecutan al mismo tiempo el resultado final aparece como si todas las transacciones se ejecutan de manera secuencial en cierto orden.

Atomicidad.- garantiza que cada transacción no ocurre o bien se realiza en su totalidad

Permanencia.- se refiere a que una vez comprometida una transacción sigue adelante y los resultados son permanentes.

Page 58: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Transacciones Anidadas

Tipos de Sistemas Operativos

Se presentan cuando las transacciones pueden contener subtransacciones (procesos hijos):

Se ejecuten en paraleloProcesadores distintosPueden originar nuevas subtransacciones.

Page 59: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Implantación del Modelo de Transacción

Tipos de Sistemas Operativos

Existen varios métodos de implantación:

o Espacio de Trabajo Particular.o Bitácora de Escritura Anticipada.o Protocolo de Compromiso de Dos Fases (Two Phase

Commit)

Page 60: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Espacio de Trabajo Particular

Tipos de Sistemas Operativos

Consiste en que cuando un proceso inicia una transacción se le otorga un espacio de trabajo particular, donde:

Contiene todos los archivos (y otros objetos) a los cuales tiene acceso.

Las lecturas y escrituras irán a este espacio hasta que la transacción se complete o aborte:

Alto consumo de recursos por las copias de los objetos al espacio de trabajo particular.

Cuando el proceso abre un archivo para lectura, se siguen los apuntadores de regreso hasta localizar el archivo en el espacio de trabajo del padre (o algún antecesor).

Cuando se abre un archivo para escritura: se copia al espacio el índice del archivo en el espacio de trabajo particular

Page 61: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Bitácora de Escritura Anticipada

Tipos de Sistemas Operativos

Este método también se denomina lista de intenciones.

Los archivos realmente se modifican pero antes de cambiar cualquier bloque: Se graba un registro en la bitácora (“log”) de escritura anticipada en un espacio de almacenamiento estable

Si la transacción tiene éxito y se hace un compromiso, se escribe un registro del compromiso en la bitácora.

Si la transacción aborta: Se puede utilizar la bitácora para respaldo del estado original

Por medio de la bitácora se puede: Ir hacia adelante (realizar la transacción).Ir hacia atrás (deshacer la transacción).

Page 62: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Protocolo de Compromiso de Dos Fases (Two – Phase Commit)

Tipos de Sistemas Operativos

Uno de los procesos que intervienen funciona como el coordinador. El coordinador escribe una entrada en la bitácora para indicar que

inicia el protocolo. El coordinador envía a cada uno de los procesos relacionados

(subordinados) un mensaje para que estén preparados para el compromiso.

Cuando un subordinado recibe el mensaje: Verifica si está listo para comprometerse.Escribe una entrada en la bitácora.Envía de regreso su decisión.

Cuando el coordinador ha recibido todas las respuestas sabe si debe establecer el compromiso

El coordinador: Escribe una entrada en la bitácora. Envía un mensaje a cada subordinado para informarle de la

decisión.

Page 63: Tipos de Sistemas Operativos. Proceso de transmisión y recepción de ideas, información, etc. Lenguaje. Símbolos y alfabetos. Transmisor, receptor y medio

Referencias

Tipos de Sistemas Operativos

http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO0.htm

http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO9.htm#ETP