procesos m.c. juan carlos olivares rojas [email protected] [email protected]...

156
Procesos M.C. Juan Carlos Olivares Rojas [email protected] [email protected] @jcolivares http://antares.itmorelia.edu.mx/~jc olivar

Upload: angela-figueroa-silva

Post on 23-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Procesos

M.C. Juan Carlos Olivares Rojas

[email protected]@hotmail.com

@jcolivareshttp://antares.itmorelia.edu.mx/~jcolivar

Enero, 2010

Page 2: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Agenda

Concepto de proceso Planificación de procesos

Operaciones sobre los procesos Comunicación interprocesos

Ejemplos de sistemas ipc Comunicación en los sistemas clientes-

servidor

Page 3: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Competencia Específica• Conoce y trata los conceptos de

proceso, Mecanismos de procesos, Procesos del sistema operativo, Procesos de cliente servidor.

Page 4: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Calendarización• Práctica sobre llamadas al sistema en

sistemas Unix. Miércoles 3 de Febrero

• Virtualización de Sistemas Operativos. Miércoles 10 de Febrero.

• Investigación de la Estructura de Procesos en Minix. Martes 16 de Febrero

• Práctica de Procesos en Sistemas *X. Miércoles 17 de Febrero.

Page 5: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Calendarización

• Investigación sobre IPC en Sistemas Operativos Distribuidos. Martes 23 de Febrero.

• Práctica de RPC. Miércoles 24 de Febrero

Page 6: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Repaso Unidad I• OS Architecture

Page 7: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Ring Level Architecture

Page 8: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Layer Architecture

Page 9: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Client-Server Architecture

Page 10: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Arquitectura de Windows NT• Archivos básicos

Page 11: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Arquitectura de Windows• Ejemplo de procesos

Page 12: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Signals

Page 13: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

POSIX System Call

Page 14: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

System Call

Page 15: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

POSIX

Page 16: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Llamadas al Sistema

Page 17: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Concepto de proceso

• Un proceso es un programa en ejecución.

• Para que un proceso pueda estar ejecutándose necesita de tener un espacio de memoria asignado.

• Es la unidad mínima de trabajo de los usuarios (un programa o software puede tener varios procesos).

Page 18: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Concepto de proceso

• El espacio de direcciones se compone además de direcciones para almacenar datos, código, la pila y el heap (montículo).

• Toda la información de los procesos en los SOs se guardan el PCB (Process Control Block) que es un arreglo o lista ligada que indica la descripción de cada uno de los procesos.

Page 19: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Procesos• Los procesos tienen asignados un

identificador de procesos (PID), el cual es la forma en que el SO trabaja con los procesos.

• Los procesos se ejecutan de manera secuencial pero pueden realizar bifurcaciones, motivo por el cual se necesita el contador de programa.

• Los programas pueden tener asignado distintas prioridades para darle más jerarquías.

Page 20: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Procesos• La finalidad del administrador de

procesos es realizar una buena administración (planificación) del tiempo de CPU de la computadora a fin de ejecutar más programas de manera más eficiente.

• Otra de las características básicas que presenta un proceso es el estado en el cual se encuentra. Existen tres estados básicos en proceso: Ejecución, Listo y Bloqueado.

Page 21: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Procesos• Estado de los Procesos

Page 22: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Procesos• Un proceso está en ejecución cuando

tiene acceso real al tiempo de CPU.

• Un proceso está listo cuando se puede ejecutar, es decir, por algún motivo se suspendió para dejar ejecutar otro proceso

• Un proceso está bloqueado cuando está en espera de algún recurso (E/S) o de que ocurra un evento.

Page 23: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Procesos• Otros modelos de estados de procesos

incluyen otros estados como el de nacimiento, inactivo y diferencia entre bloqueado y en espera.

• Dentro de un CPU un y sólo un proceso puede estar ejecutándose al mismo tiempo.

• Los procesos se pueden dormir, despertar y ser asesinados antes de tiempo.

Page 24: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Procesos• La implementación de procesos depende

de la arquitectura del sistema operativo utilizada.

• Por ejemplo, la implementación de procesos en Windows se da de manera generalizada con llamada al sistema CreateProcess().

• En Linux además de la llamada fork(), se encuentra clone() que clona un proceso de memoria pero puede compartir estructuras de datos.

Page 25: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Procesos en Sistemas *X

Page 26: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Planificación de procesos Parte fundamental del administrador de

procesos es garantizar que los procesos se ejecuten de manera equitativa para garantizar el buen desempeño del sistema.

Generalmente se manejan diversos algoritmos para el manejo de la administración de los procesos dichos algoritmos se basan en la calendarización de procesos generalmente basado en indicadores únicos como la prioridad o los tiempos de ejecución.

Page 27: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Process Execution

Page 28: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Process List

Page 29: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Prioridad de Procesos

Page 30: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Operaciones sobre procesos • Las operaciones que existen sobre

procesos básicamente va la creación, borrado y duplicado de un proceso.

• La modificación de un proceso es una actividad que la mayoría de los sistemas operativos no modifican. ¿Por qué?

• Seguridad y protección del sistema.

Page 31: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

SysCalls para Procesos

Page 32: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Planificación de Procesos• La planificación de procesos es la etapa

más importante del administrador de procesos ya que se encarga de administrar la disponibilidad del uso de CPU.

• Los planificadores no importando su complejidad deben respetar los siguientes elementos: equitatividad, eficiencia, tiempo de respuesta, retorno, volumen de producción.

Page 33: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Planificación de Procesos• La problemática con este tipo de

administración es que los recursos son únicos e imprendecibles. Por este motivo el planificador trata de estimar algunas características.

• Un planificador no sabe cuanto tiempo tardará en ejecutarse un proceso y si este en algún momento se bloquea por alguna petición de entrada o de salida.

Page 34: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Planificación de Procesos• Por este motivo un planificador debe de

asignar un tiempo predeterminado llamado Quantum para la ejecución de procesos.

• Un proceso puede ser interrumpido por otro proceso cuando este último requiera de una atención inmediata. Esto da origen a planificadores con prioridades.

Page 35: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Planificación de Procesos• La prioridad puede darse por jerarquía,

por costos o por otro medio que sirva de discriminante.

• Las prioridades pueden ser dinámicas o estáticas.

• El planificador de procesos se encarga de mantener el contexto de cada una de las aplicaciones para poder realizar multitarea.

Page 36: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Planificación de Procesos• Existen diverso algoritmos de

planificación de tareas, los cuales a continuación se describen.

• El algoritmo de round robin (torneo) es muy sencillo, el cual consiste en una lista ligada con los diferentes procesos donde se ejecutan uno por uno pasándose hacia el final de la cola.

Page 37: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Planificación de Procesos• La planificación en Round Robin no es la

mejor dado a que es muy susceptible al tiempo del cuantum y al tamaño de la cola.

• La planificación por prioridad permite calendarizar los procesos de acuerdo a su importancia. Los sistemas UNIX cuentan con el comando nice para reducir la prioridad de un proceso.

Page 38: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Planificación de Procesos• En algunas ocasiones se suelen agregar

diversas mezclas de algoritmos de planificación. Por ejemplo, se puede manejar un sistema de colas por prioridades, en donde cada cola trabaja como si fuera un sistema round robin.

• Otro algoritmo de planificación es el utilizar colas múltiples. En un principio el cuantum de tiempo aumentaba.

Page 39: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Planificación de Procesos• En un principio el quantum de tiempo

aumenta en proporción del tiempo que está el proceso en ejecución teniendo 1, 2, 4 ... N cantidad de quantum. Esto hace que los procesos más viejos tengan mayor prioridad.

• Otros planificadores de colas múltiples colocan los procesos de manera generalizada en colas de terminal, E/S, quantum corto, quantum largo, etc.

Page 40: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Planificación de Procesos• Un algoritmo de planificación más

efectivo es el primer el trabajo más corto, dado que el promedio de retorno de cada proceso es menor siguiendo esta técnica, la desventaja es que es dificil calcular cual es el trabajo más corto.

• La planificación garantizada consiste en hacer promesas a los usuarios para después cumplirla. Una promesa fácil es 1/n.

Page 41: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Planificación de Procesos• Un mejor esquema es la planificación por

loteria, la cual sonsiste en repartir boletos entre los procesos, a los procesos ganadores se les asigna tiempo de CPU. El secreto es asignar una cantidad de boletos equivalente al peso e importancia de los procesos.

• En sistemas muy especiales como los sistemas de tiempo real, el planificador debe considerar muchas restricciones.

Page 42: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Planificación de Procesos• Entre estas restricciones están la

administración de eventos y de cumplir con los límites de tiempos establecidos.

• Otra alternativa de planificación es utilizar dos niveles. Un nivel para gestionar procesos en memoria principal y otro nivel para memoria secundaria. Con este esquema se obtiene mejor rendimiento cuando se utiliza memoria virtual.

Page 43: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Procesos Cooperativos• Los procesos cooperativos son aquellos

que pueden trabajar de manera conjunta.

• Una de las mejores alternativas para la planificación de procesos consiste en que los mismos procesos gestionen con los demás su turno de uso CPU. Si se programa de buena manera puede funcionar, de lo contrario producirá un esquema de competencia.

Page 44: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Comunicación interprocesos

• Los procesos en algunos SOs pueden crear otros procesos llamados subprocesos, teniendo una jerarquía de procesos padre e hijos.

• Estos procesos pueden trabajar de manera cooperativa para la resolución de un problema muy particular. Para ello necesitan comunicarse entre sí y a lo que a nivel de SO se llama IPC (Inter Process Communication).

Page 45: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

IPC• La parte más importante de la

comunicación entre procesos es sin duda la transferencia de mensajes entre los diversos procesos.

• La transferencia de mensajes puede llevarse acabo en base a dos primitivas, enviar y recibir, que se pueden aplicar a casi cualquier recurso como a los archivos (leer y escribir).

Page 46: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

IPC• La comunicación entre procesos IPC se

debe dar a través del kernel del Sistema Operativo.

• Tanto Windows como Linux y otros Sistemas Operativos implementan IPC pero lo hacen de manera particular.

• Los IPC de sistemas *X son los más comunes y estandarizados. A continuación se describirá algo de IPC en Linux.

Page 47: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

IPC#include <sys/types.h>

pid_t pid;

hijo = getpid();Padre = getppid();Grupo = getpgrp();

Un subprocesos se crea con la instrucción fork()

Page 48: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

IPC• Existen otros tipos de usuarios y grupos

los cuales son extendidos, es decir, no actúan como los usuarios reales.

uid_t getuid(); /*usuario real*/

uid_t geteuid(); /*usuario extendido*/

gid_t getgid();

gid_t getegid();• Los subprocesos tienen una jerarquía

muy marcada.

Page 49: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

IPC//Validación de subprocesosif (pid == -1) perror(“Error al crear proceso”);else{ if (pid == 0) /*Proceso hijo*/ else /*Proceso padre*/}

Page 50: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Ejemplos de sistemas ipc • La principal problemática que se presenta

consiste en las condiciones de competencia de los procesos. Por ejemplo, compartir una impresora. Si varios procesos pudieran acceder a la impresora se tendrían problemas de inconsistencias al momento de imprimir.

• A continuación se describirán algunos problemas de IPC para dar solución en la próxima unidad.

Page 51: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Ejemplos de IPC• El problema del productor-consumidor:

dos procesos comparte un mismo recurso compartido. El problema se presenta cuando el proceso productor produce más de lo que el buffer compartido puede soportar y cuando el proceso consumidor quiere consumir un valor del buffer cuando esta vació.

• Este tipo de problemas se puede presentar en casos similares como el de la impresora.

Page 52: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Ejemplos de Sistemas IPC• Otro problema clasico de IPC es el de la

cena de los filosofos, el cual se basa en que existen cinco filosofos comensales sentados alrededor de una mesa circular. Cada filosofo tiene ante si un plato de espaguetti. El espaguetti es tan resbaloso que se necesitan dos tenedores para comerlo. Entre cada par de platos hay un tenedor.

Page 53: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Ejemplos de Sistemas IPC• Un filosofo puede comer y pensar. Para

comer es necesario que disponga de dos tenedores

• La solucion mas obvia puede causar inconsistencias. Que pasaria si todos toman su tenedor de la izquierda al mismo tiempo.

• Podria mejorarse si uno filosofo toma su tenedor de la izquierda, verifica que el de su derecha este desocupado si no lo libera.

Page 54: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Ejemplos de Sistemas IPC• Por que falla esta opcion?

• Otro problema famoso es el problema del peluquero dormido en el cual se tienen un peluquero, una silla de peluqyero y n sillas de clientes.

• Si no hay ningun cliente el peluquero se duerme. Si llega un cliente y esta dormido el peluquero lo despierta.

Page 55: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Ejemplos de Sistemas IPC• Si llega un cliente mientras esta despierto

el peluquero se forma en las sillas, o bien, se sale si las sillas estan todas ocupadas.

• Todos estos son ejemplo de IPC. Los mecanismos basicos son las tuberias, la cola de mensajes, los semaforos, la memoria compartida, los sockets, entre otros elementos.

Page 56: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Ejemplos de Sistemas IPC

Page 57: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Ejemplos de Sistemas IPC

Page 58: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Ejemplos de Sistemas IPC

Page 59: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Ejemplos de Sistemas IPC

Page 60: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Ejemplos de Sistemas IPC

Page 61: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Sistemas Distribuidos• “Es una colección de computadoras

independientes que aparecen ante los usuarios del sistema como una única computadora” (Principio de transparencia)

• El objetivo de los SDs es descentralizar el cómputo basándose en el paradigma de “divide y vencerás”; logrando mayor eficacia, mayor tolerancia a fallos, seguridad, mayor velocidad, entre otros.*

Page 62: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Sistema Distribuidos• Para lograr la distribución del cómputo se

necesitan de diversas entidades que puedan atender una determinada cantidad de procesos en un momento determinado.

• La mayor problemática de los SDs es la gran heterogeneidad tanto en software y en especial en hardware, ya que se necesita de mucho esfuerzo para lograr la transparencia.

Page 63: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Características de un SD• Múltiples elementos de procesamiento. • Mecanismos de intercomunicación.• Independencia a fallos en los nodos de

procesamiento. • Estado de compartición. • Esquema de protección. • Sistemas Abiertos.• Plataformas diversas (heterogéneas).

Page 64: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Ventajas y desventajas de los sistemas distribuidos

• La base comparativa para obtener las ventajas y desventajas de los SD se hace con respecto a una computadora aislada.

• A continuación se mencionan las ventajas de los SD.

Page 65: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Ventajas de los SD• Con el uso de SD se logra compartir

información así como dispositivos periféricos entre más de un usuario.

• Los SD permiten dividir las cargas de trabajo entre diferentes computadoras de manera más eficaz.

• Cuando un nodo de procesamiento falla, el sistema en general sigue funcionando.

• Ejecución concurrente de procesos

Page 66: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Desventajas de los SD• Debido a que la tecnología de los SD aún

está siendo explorada, no se tiene la experiencia suficiente en el diseño, implantación y uso del software distribuido y se debe contestar a preguntas tales como:

• ¿Qué tipos de sistemas operativos, lenguajes de programación y aplicaciones son los adecuados para estos sistemas?,

Page 67: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Desventaja de los SD• ¿Cuánto deben saber los usuarios de la

distribución? • Las redes de comunicación, pueden llegar

a perder mensajes, latencia de las comunicaciones o saturación de mensajes.

• Otra de las desventajas de los SD es la vulnerabilidad que puede sufrir la información que puede llegar a estar disponible para un gran número de usuarios del sistema.

Page 68: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Desventajas de los SD• Requerimientos de mayores controles de

procesamiento y acceso.

• Administración más compleja.

• Costos.

Page 69: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Complejidad de los sistemas distribuidos

• Los sistemas distribuidos tienen más de dos décadas de haber surgido pero son tan complicados en su construcción tanto como una red de transporte público como el metro, y pasará más tiempo para que podamos entenderlos correctamente y construir uno de la manera más apropiada.

Page 70: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Complejidad de los SD• La fuente básica de la complejidad de los

SD recae en la interconexión de componentes.

• Existen fallas en todos los sistemas, sólo que en un SD resultan más visibles. A continuación se muestran algunos problemas del sistema.

Page 71: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Complejidad de los SD• Al interconectar dos o más elementos

entre si, sus funcionalidades se interfieren.

• Pueden existir también fallas de propagación.

• Se pueden tener fallas por el tamaño del sistema.

Page 72: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Complejidad de los SD• Las aplicaciones "distribuidas" deben

estar preparadas para soportar fallas parciales; lo que representa una complejidad adicional en el diseño de éstas aplicaciones.

• Se deben tener mecanismos para la localización de recursos, la recuperación de éstos, así como la coordinación de las réplicas de los estados de los servidores.

Page 73: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Complejidad de los SD• No se tiene disponibilidad de una

memoria global y un reloj global, no se pueden predecir los retardos y mensajes.

• Se requiere más capacidad de almacenamiento.

• S requiere de sincronización para actualizar el estado del sistema.

• Compatibilidad.

Page 74: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Complejidad de los SD• Los recursos compartidos deben ser

accedidos por un proceso a la vez (exclusión mutua) y deben liberarse.

• Seriabilización.

• Los procesos deben solicitar recursos locales o remotos y posteriormente liberados en cualquier orden que puede ser no conocido.

Page 75: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Modelo Cliente-Servidor• Una arquitectura es un conjunto de

reglas, definiciones, términos y modelos que se emplean para producir un producto.

• La Arquitectura Cliente/Servidor (C/S) agrupa conjuntos de elementos que efectúan procesos distribuidos y computo cooperativo.

Page 76: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Arquitectura Cliente/Servidor• Este modelo se basa en un protocolo

solicitud – respuesta. El cliente envía una solicitud de cierto servicio al servidor, el servidor realiza el trabajo y regresa el resultado de la operación.

• La principal ventaja de este protocolo es su sencillez, únicamente se necesita la ubicación del servidor.

Page 77: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Arquitectura Cliente/Servidor• Beneficios:

• Mejor aprovechamiento de la potencia de cómputo (Repartición del trabajo).

• Reducción del tráfico en la red. • Opera bajo sistemas abiertos. • Facilita el uso de interfaces gráficas

variadas y versátiles.

Page 78: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Cliente• Conjunto de software y hardware que

invoca los servicios de uno o varios servidores.

• Características: – El Cliente oculta al servidor y la red. – Mantener y procesar todo el diálogo con el

usuario. – Manejo de la interfaz, entrada de datos y

validación.

Page 79: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Servidor• Conjunto de hardware y software que

responde a los requerimientos de un cliente.

• Tipos comunes de Servidores: – Servidor de Archivos (FTP, Novell). – Servidor de Bases de Datos (MySQL, ORACLE,

INFORMIX). – Servidor de Impresión. – Servidor de Terminal. – Servidor de Aplicaciones (Windows NT,

Novell).

Page 80: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Servidor• Funciones del Servidor:

• Acceso, almacenamiento y organización de datos.

• Administración de recursos compartidos.

• Ejecución de toda la lógica para procesar una transacción.

Page 81: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Middleware• Capa de software que se ejecuta sobre el

sistema operativo local ofreciendo unos servicios distribuidos estandarizados.

• Sistema abierto independiente del fabricante.

• No depende del hardware y sistema operativo subyacente.

• Ejemplos:– DCE (Open Group).– CORBA (OMG).

Page 82: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Otras Arquitecturas• P2P (Peer to Peer)

• Arquitecturas de intermediarios

• Arquitecturas de 2, 3 y n-capas

• Clientes pesados, ligeros e inteligentes

Page 83: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Arquitectura de Sistemas Centralizados

• Único computador (caro y de gran potencia) con terminales

• Soporte multiusuario

• – Ley de Grosch (obsoleta):• Prestaciones = cto x (Precio)2

Page 84: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Arquitecturas de Sistemas Distribuidos

Cliente Servidor

Solicitud

Respuesta

Modelo Cliente/Servidor Tradicional

Cliente 1

Servidor

Modelo Cliente/Servidor Concurrente

ClienteProxy en el lado cliente

Modelo Cliente/Servidor de n capas

ClienteProxy en el lado

servidor

Cliente n

.

.

Page 85: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Arquitectura de Sistemas Distribuidos

C1

C2

CnP2P

Simétrico

C0Coordinador

C1

C2

Cn…

Cluster

Asimétrico

Planificador

CPUMemoria

DiscoC1

Planificador

CPUMemoriaDISCO

C2

Planificador

CPUMEMORIA

DiscoCn

.

.

.

Grid computing

Page 86: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Características de Hardware• Los Sistemas Distribuidos necesitan

forzosamente de una red de computadoras y de un sistema de recursos propios por cada nodo local.

Page 87: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Características de Software• El software necesario en sistemas

distribuidos debe ser rediseñado con un paradigma totalmente contrario al centralizado.

Page 88: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Sistemas Operativos de Red• Un Sistema de Red (SR) es una colección

de sistemas operativos locales, acompañado de servidores de impresión, de archivos, etc., conectados por medio de una red.

• Los SR se ejecutan como funciones locales autónomas a la administración de dispositivos, de procesos, de entradas y salidas, de archivos y recursos en general.

Page 89: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Sistemas Operativos de Red• Los principales sistemas operativos de

red basados en Unix, a los cuales generalmente se les llama Sistemas *X o simplemente X, como son: HP-Aux (HP), AIX (IBM), Unix SCO (SuSE), Irix (Silicon Grpahics), Unix BSD, Solaris (Sun).

• Otros sistemas que están tomando auge son: Windows Server 2003/2008 (antes NT), Mac OS X Server (10.5).

Page 90: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Sistemas Operativos Distribuidos

• Un Sistema Operativo Distribuido (SOD) extiende el concepto de administración de recursos e interfaces con el usuario hacia computadoras de memoria compartida, el cual consiste en varias computadoras autónomas conectadas por una red de comunicaciones.

Page 91: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Características de los SOD• Para cada uno de los usuarios debe de

ser similar al trabajo en el Sistema Centralizado.

• Se ejecuta en múltiples Computadoras.• Tiene varias copias del mismo Sistema

Operativo o de diferentes Sistemas Operativos que proveen los mismos servicios.

• Transparencia

Page 92: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

SOR vs SOD• Los SOR se encargan de la administración

de los recursos locales y trabajan en conjunto para lograr la compartición de recursos.

• En los SOD la administración de los recursos se hace de manera homogénea de todos los recursos aun y cuando se encuentren distintos SO.

Page 93: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

SOR vs SOD

Page 94: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

SOR vs SOD

Sistema Operativo de Red Sistema Operativo Distribuido

Recursos propiedad de los nodos locales

Recurso propiedad del sistema global

Recursos locales administrados por el sistema operativo local

Recursos locales administrados por un DO/S global

Acceso ejecutado mediante un sistema operativo local

Acceso ejecutado por el DO/S

Solicitudes pasadas de un sistema operativo local a otro vía el NOS

Solicitudes pasadas directamente de un nodo a otro vía el DO/S

Page 95: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

SOR vs SOD

Administración de la Memoria

Page 96: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

SOR vs SOD

Administración de la Memoria

Page 97: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Sistemas Operativos Distribuidos

• En la vida real, los SOD son poco utilizado en entornos reales utilizándose de manera exclusiva en el ámbito académico y científico.

• A continuación se describen una serie de SOD. Otros SOD no listados son Solaris MC, Spring, Inferno, Sprite, etc.

Page 98: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Amoeba• Creado en 1981 en Holanda por Andrew

Tanenbaum y otros.

• Es un Sistema Operativo (SO) creado desde cero, sin problemas de compatibilidades.

• Es totalmente transparente ya que no existen máquinas clientes ni servidores

Page 99: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Amoeba• Está escrito en C y presenta balanceo de

carga.

• No hace uso de memoria compartida.

• Dispone de un micronúcleo que se ejecuta en cada máquina.

Page 100: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Mach• Se originó en 1984 en la Carneige Mellon

University.

• Se fusionó con Unix BSD para dar un soporte a aplicaciones legadas.

• La OSF (Open Software Foundation) lo escoge como su SO llamándolo OSF/1.

Page 101: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Mach• El código creció demasiado por lo que se

tuvo que mantener un micronúcleo y el soporte para Unix se hizo a través de un emulador.

• En la década de 1990, surgió Mach 4.

• El Mac OS X está basado en Mach (versión NeXSTEP).

Page 102: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Chorus• Se originó en Francia en el INRIA.

• Es un sistema modular con soporte para aplicaciones Unix.

• Se caracteriza por el manejo excesivo de hilos.

Page 103: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Plan9• Se originó a finales de la década de 1980

con apoyo de IBM.

• Es compatible con POSIX.

• Está conformada por protocolos especiales.

Page 104: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Comunicación en los sistemas clientes-servidor

• Para lograr la distribución de procesos se requiere de mecanismos que permitan coordinar y controlar la ejecución de procesos en ambientes no centralizados, ya sean de manera local y remota.

• Los primeros protocolos para la distribución de procesos remotos fueron para máquinas homogéneas.

Page 105: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Comunicación• Otra forma de comunicación fue la

estandarización de sistemas heterogéneos con interfaz común UUCP (Unix to Unix Copy Protocol) que dio origen a los comandos R (rcopy, rlogin, rsh).

• rlogin [email protected]• rsh [email protected]

Page 106: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Comunicación• La comunicación entre procesos (IPC) es

parte fundamental de las primitivas de sincronización de un sistema distribuido.

• Los mecanismos de comunicación entre procesos no sólo aplican a aplicaciones distribuidas sino a cualquier tipo.

Page 107: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Comunicación• El mecanismo de comunicación entre

procesos más famosos es el IPC (Inter Process Comunication) de Unix System V.

• El otro punto a tratar es sobre los mecanismos de intercomunicación entre entidades de procesamiento diferentes con diferentes sistemas operativos: POSIX.

Page 108: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Sockets• Los sockets son el mecanismo de

sincronización distribuida más importante.

• Se les denomina conectores por que pueden unir un proceso cliente y un proceso servidor, de manera semejante a como se puede unir un enchufe de un dispositivo eléctrico con su respectivo zócalo.

Page 109: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Sockets• El mecanismo de sockets más conocido

es el referente a la API de Berkeley.

• Está API está implementado en prácticamente todos los sistemas Unix, por lo que se maneja C, pero también está portado a otras arquitecturas como Windows (WinSock) y a otros lenguajes como Java

Page 110: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Sockets• Los sockets trabajan sobre capa 4

(Transporte) del modelo OSI, aunque algunos autores la ubican en la capa 5 (Sesión).

• Para la comunicación de procesos remotos se necesita conocer la dirección de la máquina destino y el puerto donde se va a escuchar.

Page 111: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Sockets• Los sockets no están casados con ningún

tipo de red, por lo que se pueden implementar en diversos protocolos de red como IPX/SPX, NetBEUI, TCP/IP, siendo este último el más importante.

• Para hacer uso de sockets se necesitan dos cosas: una familia o protocolo a utilizar para la comunicación y un tipo de conexión.

Page 112: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPC• Las llamadas a procedimientos remotos

(RPC) fue el primer intento por obtener un middleware para la construcción de sistemas distribuidos.

• Su funcionamiento se basa en la arquitectura cliente/servidor siendo totalmente transparente para el usuario.

Page 113: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPC• El problema del manejo de procesos

distribuidos con sockets radica en que se basa en el flujo de E/S, haciendo los programas más difíciles de estructurar.

• En 1984 Birelly y Nelson idearon el modelo de RPC a semejanza del llamado de procedimientos locales (LPC).

Page 114: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPC• El nivel de transparencia en RPC es muy

alto ya que el usuario no tiene que ver con detalles de conexión.

• La simplicidad de toda esta heterogeneidad en el llamado a un procedimiento remoto es realizado por los stubs (resguardos) tanto en el cliente como en el servidor.

Page 115: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPC• Para la transferencia de datos entre los

stubs, se necesita de un proceso de empacar desempacar los parámetros y resultados. Dicho proceso recibe el nombre de marshalling.

• Los stubs se comunican con los núcleos de cada proceso logrando una transparencia muy alta.

Page 116: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPC

• La secuencia de mensajes RPC es la siguiente:

1.El procedimiento cliente llama al stub del cliente de la manera usual.

2.El stub del cliente construye un mensaje y hace un señalamiento al núcleo.

3.El núcleo envía el mensaje al núcleo remoto.

Page 117: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPC4. El núcleo remoto proporciona el mensaje

al stub del servidor.5. El stub del servidor desempaca los

parámetros y llama al servidor.6. El servidor realiza el trabajo y regresa el

resultado al stub.7. El stub del servidor empaca el resultado

en un mensaje y hace un señalamiento al núcleo.

Page 118: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPC8. El núcleo remoto envía el mensaje al

núcleo del cliente.9. El núcleo del cliente da el mensaje al

stub del cliente.10.El stub desempaca el resultado y lo

regresa al cliente.

• El manejo de los datos se hace a través de XDR (eXternal Data Representation).

Page 119: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPC• Para el envío de datos se utiliza la

siguiente forma canónica: Complemento a 2 los enteros, ASCII caracteres, 0 (falso) y 1 verdadero, formato IEEE decimales, todo guardado como little endian.

• En la práctica RPC no es lo mismo que un procedimiento local a la hora de revisar los mecanismos de fallas.

Page 120: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPC

• La semántica de fallas de RPC es la siguiente:

1.El cliente no puede localizar al servidor.2.Se pierde el mensaje de solicitud del cliente

al servidor3.Se pierde el mensaje de respuestas del

servidor al cliente.4.El servidor falla antes de recibir una

solicitud.

Page 121: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPC

5. El cliente falla después de enviar una solicitud.

• En general existen diversas implementaciones de RPC, siendo las más extendidas sobre TCP/IP, la cual tiene los siguientes puntos a favor:

• El protocolo ya ha sido diseñado, lo que ahorra trabajo considerable.

Page 122: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPC

• Se dispone de muchas implementaciones.• Esta disponible en casi cualquier sistema

Unix.• Tanto TCP como UDP están soportados por

muchas redes.

• Las implementaciones más evolucionadas de RPC incluye la de Sun ONC (Open Network Computing) y DCE (Distributed Computing Environmet).

Page 123: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPC• RPC está desarrollado en C, pero algunas

versiones permiten programar en otros lenguajes como Fortran. Las implementaciones más actuales trabajan sobre XML formando los XML-RPC.

• Para la conexión entre un cliente y un servidor utilizando RPC se siguen dos pasos: localizar la máquina servidor, y localizar el proceso en esa máquina.

Page 124: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPC• Para encontrar dichos servicios se

necesita de un demonio RPC que se encuentre monitoreando todos los procesos remotos, dicho proceso se llama portmap , el cual escucha en el puerto 111.

• Muchos servicios de red utilizan RPC para funcionar, entre ellos NFS, el cual es un sistema de archivos distribuidos.

Page 125: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPC• Un programa en RPC se crea a través de un

lenguaje de definición de interfaces (IDL por sus siglas en Inglés). Tiene la extension .X

program RAND_PROG {version RAND_VER {

void INICIALIZA_RANDOM(long) =1;doble OBTEN_SIG_RANDOM(void) = 2;

} =1; /*No. de version*/} = 0x31111111; /*No. de programa*/

Page 126: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPC• rpcgen -c -a rand.x

• rand_server.c servidor• rand_svc.c stub del servidor (no se

modifica)• rand.h cabeceras• rand_clnt.c stub del cliente (no se

modifica)• rand_client.c cliente• rand_xdr.c manejo de estructuras

Page 127: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPC• 00000000-1FFFFFFF Definidos por sun• 20000000-3FFFFFFF Definidos por el

usuario• 40000000-5FFFFFFF Transitorios• 60000000-FFFFFFFF Reservados para

usos futuros

• rpcinfo -s• portmap

Page 128: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPCconst MAX = 100;typedef int Longitud;

struct argumentos { float salario;Longitud tam;};

• Sólo se puede recibir y enviar un parámetro.

Page 129: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

RPC• Existen nuevas propuestas para mejorar

el desempeño de RPC como RPC2 que maneja UDP. También se han diseñado mecanismos como MultiRPC para el manejo de RPCs en paralelos. Existen otras alternativas como LRPC (RPC ligeros) que se basan en optimizaciones de la copia de datos y de la planificación de los hilos.

• RPC está definido en el RFC 1831.

Page 130: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Comunicación en Grupo• Se define a un grupo como un conjunto de

procesos que actúan entre ellos encierto sistema.

• Los grupos son dinámicos, ya que pueden

aceptar nuevos procesos o estos pueden dejar a su grupo.

• Los grupos pueden ser abiertos o cerrados

dependiendo de cómo es el paso de mensajes entre los elementos del grupo.

Page 131: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Comunicación en Grupo• En base a su organización los grupos

pueden ser de compañeros (cuando todos los procesos son iguales y para hacer elecciones hacen recuento de votos) o Jerárquico (donde existe un proceso coordinador y el resto son trabajadores).

• Cuando entran nuevos procesos o se salen del grupo, se debe garantizar que los mensajes lleguen a los procesos que actualmente conforman el grupo.

Page 132: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Comunicación en grupo• Una de las mayores problemáticas con

respecto a la comunicación en Sistemas Distribuidos es la forma en como podemos comunicar varios procesos distribuidos a la vez.

• La comunicación tradicional es del tipo puntual (unicast) o bien hacia todos con el uso de la difusión (broadcast).

Page 133: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Comunicación en Grupo• El problema radica en que al hacer un

broadcast los mensajes llegan hacia todas las máquinas y no hay forma alguna de discriminar hacia un grupo determinado de procesos.

• Por otra parte, el hacer broadcast está limitado en muchas redes como Internet donde no existe, por este motivo suele utilizarse la técnica de multicast.

Page 134: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Comunicación en Grupo• El problema del multicast es que se

necesitan de direcciones IP especiales (Clase D) para poderse llevar acabo. En la práctica se utiliza muy poco y en lugar se usa comunicación con datagramas hacia un grupo de procesos donde la parte más importante es la coordinación entre procesos.

Page 135: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Multicast Javatry {

InetAddress grupo = InetAddress.getByName(args[1]);MulticastSocket s = new MulticastSocket(6789);s.joinGroup(grupo);byte [] m = args[0].getBytes();DatagramPacket mensajeSalida = new DatagramPacket(m, m.length, grupo, 6789);s.send(mensajeSalida);

Page 136: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Multicast Javabyte []buffer = new byte[1000];

for(int i=0; i<3; i++) { DatagramPacket mensajeEntrada = new

DatagramPacket(buffer, buffer.length); s.receive(mensajeEntrada); System.out.println("Recibido: " + new String(mensajeEntrada.getData())); } s.leaveGroup(grupo);

} catch (Exception e) { //Manejo de excepción}

Page 137: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Tolerancia a fallos• La tolerancia a fallas es considerada la

principal característica que debe de tener un sistema distribuido para alcanzar el principio de transparencia.

• Para lograr la tolerancia a fallos se necesita de una buena comunicación entre procesos distribuidos y sobretodo de una correcta coordinación entre procesos.

Page 138: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Tolerancia a fallos• Un Sistema Distribuido en base a la

coordinación de sus procesos puede ser:– Asíncrono: no hay coordinación en el tiempo.– Síncrono: se suponen límites máximos para el

retraso de mensajes.

• El primer factor a tomar en cuenta es que el canal de comunicación este libre de errores (canal confiable).

Page 139: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Tolerancia a Fallos• Para garantizar que el canal sea confiable

se debe de realizar lo siguiente:– Retransmisión de mensajes.– Debe haber redundancia de canales– La entrega de un paquete sea dentro de un

tiempo límite especificado

• En general, se considera que los canales de comunicación son fiables y que cuando falla la comunicación es debido a la caída del proceso.

Page 140: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Tolerancia a Fallos• Las fallas de partición son las fallas de

comunicación más importantes ya que fragmentan la red en pequeñas áreas llamadas particiones haciendo imposible el manejo de la consistencia de los datos.

• Son difíciles de detectar ya que no son visibles para todos los nodos de la red.

Page 141: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Tolerancia a Fallas• Las fallas de partición pueden ser muy

comunes por lo que los sistemas de archivos deben tener un mecanismo que permita reintegrar los datos una vez eliminada la partición.

• Esta idea atraído como consecuencia el uso de sistemas de archivos con soporte a desconexión, los cuales son útiles en entornos de cómputo móvil.

Page 142: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Tolerancia a Fallos

Page 143: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Tolerancia a Fallos

Page 144: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Tolerancia a Fallos• Para prevenir errores se utilizan los

Detectores de Fallo, los cuales son procesos que nos indican la presencia de fallos en un sistema.

• Los detectores de fallos no son necesariamente exactos y la mayoría de ellos se consideran “Detectores de Fallo No Fiables”

Page 145: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Tolerancia a Fallos• Este tipo de detectores se basan en que

si en un tiempo máximo predefinido no reciben mensajes de los nodos, los consideran sospechosos, aunque no necesariamente han fallado, esto puede ocurrir debido a retrasos en la transmisión.

• Un “Detector de Fallas Fiable” detecta los fallos en un sistema en forma exacta y normalmente requieren de hardware y software adicional.

Page 146: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Tolerancia a Fallos• Para evitar fallas en los sistemas

distribuidos se suelen utilizar técnicas de duplicación y replicación de datos.

Page 147: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Tolerancia a Fallos

• Se utiliza la duplicidad de los datos para tener sistemas tolerantes a fallos, de más fácil acceso, entre otras ventajas.

• El principal problema que presenta la duplicación de los datos tiene que ver con la transparencia de almacenamiento.

• Otro problema importante consiste en la consistencia de la información.

Page 148: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Tolerancia a Fallos• Un sistema de archivos distribuidos se

caracteriza por tener un servidor de réplicas.

• El servidor de réplicas debe contener un protocolo de actualización eficiente (e.g., no se debe enviar un mensaje de actualización a todas las copias).

Page 149: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Tolerancia a Fallos• Se manejan esquemas de actualización

de réplicas primarias y secundarias, basado en quorum, entre otros mecanismo.

• La duplicidad de los datos se puede hacer a nivel físico como los sistemas RAID.

• Las cachés son un ejemplo de duplicidad de datos que traen grandes beneficios.

Page 150: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Tolerancia a Fallos• La mejor forma de evitar fallas tanto en

sistemas distribuidos como centralizados es a través del correcto diseño de los sistemas.

• A continuación se presentan algunas recomendaciones o mejores prácticas para la construcción de sistemas distribuidos tolerante a fallas.

Page 151: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Consejos para construir SD

• Duplicar la información para aumentar la disponibilidad.

• Usar copias locales de la información para permitir una operación autónoma.

• Utilizar cachés.

• Usar tiempos de espera para revocar.

Page 152: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Consejos para construir SD• Usar mecanismos estándares para

llamadas remotas. • Utilizar técnicas de criptografía para la

autenticación y seguridad de la información.

Page 153: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Referencias• Tanenbaum, Andrew (1996). Sistemas

Operativos Distribuidos. México, Prentice Hall.

• Tanenbaum, Andrew, Van Steen, Maarten (2006). Distributed Systems Principles and Paradigms. Estados Unidos, Pearson Prentice Hall.

• Morales, F. (2009), Material del Curso de Sistemas Distribuidos II, ITM, México.

Page 154: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Referencias• A. Tanenbaum, “Sistemas Operativos

Distribuidos”, Prentice Hall, México, 1996, pp. 617, ISBN: 0-13-219908-4

• G. Colouris, et al., “Sistemas Distribuídos. Conceptos y Diseño”, tercera edición, Pearson Addison Wesley, Espana, 2005, pp. 726, ISBN: 84-7829-049-4

Page 155: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

Bibliografía

Tanenbaum, A., “Sistemas Operativos Modernos”, Tercera Edición, Pearson Educación

Chavez-Carretero, “Sistemas Operativos”

El material proporcionado en el curso es solamente referencia. La información vista en clase también se evalúa.

Page 156: Procesos M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar Enero,

¿Preguntas, dudas y comentarios?