You are on page 1of 195
STCiea tee Pawel elelte (ey SU eas CONTENIDO Prefacio: Objetivos Capitulo 1. Intreducaion a los sistemas distribuidas 11 Infroduecidn 1.2 Vertojos y desventojas de los sistemas distribuidos: 1.2.1 Ventajas de los sistennas cistripuidos con respecto a los sistemas centralizades 1.2.2 Ventojas de las sistemas cistribuidos con respecte a las computadoras aislacias 1.2.3 Desventajas de los sistemas distibuidos 1.3 Formas distintas de organizarn computacoras. 1.4 Aspectos del disefio dle sistemas distribuides 1.5 Taxonomia de los sistemas distribuides Fjercicios Actividod integradera Capitulo 2, Redes de computadoras 2.1 Infroduceién 2.2 Principales compenentes de una red de cdmputo 2.3 Modo de operacién y conmutacian 2.4 Tipos deredes 2.5 Topologia de redes 2.6 Modelo OSI 2? Nona |EEE-802 2.8 Protocolos y paquetes 2.8.1 Pratecales: 28.2 Paquetes 2.8.3 Redes de banda ancha 2.8.4 Redes incambricas Flercicios Actividad integracera Capitulo 3; Medelles de arquitecturas 3.1 Introduccion 4.2 Model clente - servidor 3.3 Proxy 3.4 Peer-to-Peer 3.5 Applets 4.6 Closter 47 Grid 4.8 Arquitectura de cancs 3.7 Middleware 4.10 CORBA Gercicios Actividad integradera Capitulo 4, Proceses y comunicaciin 4.) Infroduecion 42 Hilos 4.3 Chente 4.4 Servidores 4.5 Comuricacin entre procesas 45.1 Modelo cliente - servidor (C-5) 45.2 Uomada de procedimiento remote (RPC) 45.3 Camunicacion en grupo 4.6 Interfaz de programacién de aplicaciones (API) 4.6.1 La interfaz de socket 4.6.2 Funciones de la API de sockets 4.6.3 Gempio de cliente servidor usando socket Ejercicios Actividad Integracara Capitulo 5, Sincranizacién: 5.1 Intraduecion 32 33 33 35 35 36 a 7 cys oe 40 42 45 46 a 52 53 55 55 55 SF 3 58 58 60 62 63 64 64 66 68 aF 7 ral 5.2 Sincronizacién de relojes 5.3 Algoritmmos para la sincronizacian de relojes $3.1 El Algoritmo de Lamport §.3.2 El algorima de Chistian 5.3.3 El algeritmo de Berkeley $.4 Exclusion mutua 5.4.1 Algoritmo de servidor centraizado 5.4.2 Algoritma de Ricart y Agrawala §.4.3 Algoritma de anillo de token 5.5 Algoritrnas de elecadn §.5.7 El algeritmo de! Grandukin, §.5.2 Algoritmo de anillo 5.6 Algoritmnos de conserso §.6.1 Problema delos generales bizantinos Gercicias Actividad integradera Capitulo 6, Transacciones distribvidas 6.1 Infraduccian 6.2 Modelo de transacciones 6.3 Problemas debido a la cancurencia de transacciones 6.4 Recuperacién de fransocciones 6.5 Transacciones anidadas y distribuidas 6.5.1 Transacciones anidactas 6.5.2 Transacciones distribuidas 6.6 Implantacion de sistemas cistribuidas: 6.7 Transacciones con repheacién 6.8 Problema del “deadlock” en los sistemas distribuidos 69 Servicios web Bjercicias Activided integradera Capitulo 7, Sistemas operatives distibuides 7.1 Inroduecion 7.2 Nocleo y servidores 7.3 Nombramiento y proteccian de recursos 7.3.1 Nembrade de recursos 7.3.2 Proteccian de recurses 7.4 Casos de sistemas operatives distribuides 7 72 72 73 74 74 75 76 7 78 78 80 82 82 85 85 a a 8 a a 70 90 al 92 92 96 a 99 9 9 100 100 101 101 7.4.1 Mach 7.4.2 Chons 7.4.3DCE Gercicias Actividad integradera Capitulo 8. Sistemas de archivos distribuides 8.1. Infroduecian 8.2 Servicias de archivos 4.3, Servicio de archives pianos: 8.4 Servicio de directorio 8.5 Module clente 8.6 Sisternas NFS y AFS 8.6.1 Sistema NFS (Network File Systerns} 8.6.2 Sistema AFS (Andrew File Systems) 87 Memoria conpartida distribyiea 87.1 Generaidades 8.7.2 Consistencia en la DSM. 8.7.3.DSM basada en paginacién Fjercicias Actividad infegradara Capitulo 9, Replicacidn, consstencia y talerancia a falls 9.1, Infreduecion 9.2 Repicacién 9.2.1 Beneficios dé usar repicacion en los sistemas distrinuidios 9.2.2 Requisites para realizar la rapicacién 9.2.3 Modelo generd de gestion de répica 9.2.4 Servicios de tolerancia o fallas basadios en repicacién 9.3 Corsistencia 9.3.1 Tipos de inconsistencias 9.3.2 Modelos de consstencia 9.4, Tolerancia o falas 9.4.1 Origen de uno folks 9.4.2 Clasficacion de falas 9.4.3 Fallas en los procesas distribvidos 9.4.4 Redundancia Ejercicios Actividad integracera 102 106 10 Wé né iy ie ge 120 120 121 121 lal 133 125 125 126 13? 138 129 131 131 132 132 133 134 135 1g 138 139 lal 141 142 143 144 145 145 Capitulo 10, Seguridad 10.1 Introduccion 10.2 Ataques a la seguridad 10.3 Servicios de seguridad 10.4 Mecanismos de sequidad 10.5 Sistemas criptograficos 10.5.1 Requisites para lo criptografia de lave publica 10.6 Autenticacian 10.6.1 Kerberos Gercicios Activided integradera Capitulo 11. Muttimedia alistribuida 11.1. Infroduecian 11.2 Estandares de codificacion de video 1.2.) Estancior H264/AVC 11.2.2 Codficacién de video escalable (SVC) 11.3 Infroestructuras para flujos de video: 11.3.1 Multicast IP 11.3.2 Red de distribucion de cantenidas 11.3.3 Multicast de copa de apleacion 11.4 Sisternas de flujos de video bosados enredes P2P 11.4.1 Topotogia de flujo de video P2P besado en arbol 11.4.2 Topologia de flujo de video P2P beiade en bosque 11.4.3 Topolagia de flujo de video P2P basade en mala Gercicias Actividad integradera Capitulo 12. Compute en la nube 12.1 Introduccion 12.2 Abstraceion y virtualizacian 12.3 Modelos de cémputo enla nube 12.4 Tipos de servicies del compute en la nube 12.5 Tipos de cémputo en la nube 12.46 Coracterbtices del compute en la nube 12.7 Ventajas del compute en la nube: 12.8 Retos del computo en la mube: 12.9 Compute en la nuke soportado: por redes Peer-to-Peer (P2P] la? 147 148 150 isl 152 154 155 155 189 160 141 1él 162 163 164 165 166 167 168 16? 170 wa Wt 174 174 WF WW 178 178 7? 180 181 182 183 Ejercicios Actividad integradera ‘Glosaria Referencios 186 1a? 18? 193 Pserano a Objetivos Que al finalizar del curse el durnina sea copar de: Apicor los princivales modelos orquitecturales, de programacién y de eomunicacién de la computacién distibuida. Apicor los algoritmos distrinuides bdsices en is constuccién de apica- clones distribuideas. Explicar el funcicnamienta delos servicios distribuides més comunes. Capitulo 1. Introduccién alos sistemas distripuidos Qtjjetivo: Que el alumno comprenda la mportancia de los sistemas distri- buidos en la socieded actual, sus aspectos de disefa y sus principales retos tecnolégices. 1.1 INTROBUCCIGN En afies recientes, el avance en las tecnologias de cSmpute y las telece- municaciones han permitide una gran expansion de los sistemas de infer- moaci6n, asi come su atta cisponibilidad, ndependientemente desu campo de aplicacion. Las telecomunicaciones permiten la canectiidad de un gran nomero de usuarios ubicades en cuaiquier parte del munde por media de la transmision de woz, datos o video o trawés de una gran voriedad de dispo- sitives. Diferentes redes de comunicacion de drea local (LAN), metropolita- nas (MAN), asi como de Greq ampiia (WAN), pueden ser occedides a través de Intemet. Esto ha permitide que paralelamente surjan instalaciones de compute donde pueden ser desplegadas ankcacionés para realizar pracesa- miento distribuido de torecs. Estas nueves faciidades ofecen a los usuarios y organizaciones una gran flexibilided para estructurar sus propios sistemas de informacién de una manera eficiente, asi camo la oportunidad de inte- ractuor cen otros sistemas de informacion de una manera distribuida. Carmo: corecuencia. esto ha generade una gran dependencia de estos sistemas distribvidos para poder transmitir o procesar informacion. Tanenbaum [1996] define un sstema distribuido camo una coleccién de computadoras independientes que aparecen ante los usuarios del sistema came una Unica computadora, El advenimiento de les sisternas distribuides ha estado seportade en dos importantes innovaciones tecnoligicas: SISTEMAS ASTROS El rmicraprocesader. Las redes de crea local, 1.2 VENTAJAS ¥ DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS 1.2.1 Ventajos de los sistemas distribuidas conrespecto alos sistemas centralzades Entre las principales ventajas de los sistemas distribuides con respecte o las computaderas centralzadas se encuentran: Economia: Los microprocesacores ofrecen una mejor relacién precios fendimiento que las computadoras centrales. Velocidad: Un sistema distribyide puede tener mayor poder de computa que Una computadcra centralzada individual, Distiibucién inherente: implica que un sistema distribuide puede em- plear aplicaciones instaladas en computaderns remotas, Confiabiidad: El sistema es consistente, aunsi una computadara del sis- tema deja de funcionar. Crecimento proporcional: Cada vez que se raquiera mayor poder de cémpute en el sistema, solo se pueden acicioner los incrementos de compute requeridas. 1.2.2 Ventajas de los sistemas distribuidos conrespecta a las computadoras aisladas Con respecte o los computacoras aisladas, es decir, aquellas que no se en- cuentan conectades 9 una red, los sistemas distribvidos fienen los siguien- tes vertajas [Coulouris, Dollimore & Kinderberg. 2001]: * Oates camparides: Permite que distintos usuarios fengan acoess a una bose de datos o archiva comun, Disposifivos compantdes: Permite compartir un recuse costoso entre distintos usuarios, coma plotters o impresoras laser. Comunicacion: Brinda la pasibilidad de comunicacion de usuario a usuc- fio [telnet, comes electronica, etc). INTROOUCOMN A.LOS SIETEMAS DSTRIBUIDOS 7 * Confiabildad: Facilita la reparticin de la carga de trabajo entre las dis- fintas computaderas con bese en sy funcianes y caradidades, brindande una mayor flexibilidad y confiabllicad al sisterna. 1.2.3 Desventajas de los sistemas distribuidas A pesor de los diferentes beneficios que introducen los sisternas cistribui- dos, fodewig existen diferentes retos que deben ser resueltos comp los si- guientes [Coulouris ef af, 2001]: + Software: Gran parte del software para sistemas distribuides estd aun en desarralle, + Redes; Los problemas de fransmisidn en las redes de comunicacian fo- dovia son frecuentes en la transferencia de grandes volmenes de dates (por ejemplo, multimedia). + Seguridad: Se necesitan mejores esquemas de protecciin para mejorar el aocesa a informacion confidencial o secreta, * Talerancia o fatlas: Las fallas operativas y de compenentes aun sen frecuentes, 1.3 FORMAS DISTINTAS DE ORGANIZAR M COMPUTADORAS Lo erganizaciin de cierta canfidad de comoutadoras se puede realizar usan- do alguna de los casos de las siguientes sistemas operatives: * Sstema operative dered. + Sistema operative distribuide, + Sstema operative de multipracesamienta, 1.4 ASPECTOS DEL DISEAO DE SISTEMAS DISTRIBUIDOS Transparencia Es una carocterstica de los sistemas distribvides pera ocultar al wevario la mone en que el sistema funciona o esta consinido, de fal forma que el usuario tenga la sensacion de que todo el sistema esid trabajando en una sola maquina local, Entre las principales transparencias deseables en un sis- tema distitauide estan [Coutouris ef a¥.. 2001]: a SISTEMAS ASTROS * De iocafacién: Les usuarios no pueden saber dénde se encuentran los datos localizades. + Be migracién: Las recursas se pueden maver a voluntad sin cambiar su nambre, * Derépica; Los usuarios no pueden ver el nlmaro de conics existentes, * Be concumencia: Vorios Usuarios pueden compartir recursos de manera automation, + Be paralelsmo: La actividad o consulta puede requerir procesarmiento pardelo sin que el Usuario lo perciba. * De falas: Quande una cemputadara del sistema falla, esta es impercep- fible para el usvarie, * De desermpefio: El funcionamiento y velocidad de las maavines donde sé cansulta es imperceptible pera el usuario. * Be escolabildad: El usuario ignara cudndo en el sistema se agrega ofa comeutadora, Flexibilidad Facilta modificaciones al disefio inicial. Conftabilidad Pemmite que, en caso de que una computador falle, ofra a pueda sustituir enlaredizacién de sus fareas asignadas. Desempeno Esté en referencia a los tiempos de respuesta de una aplicacién. Escalabilidad Penmite que a lo arquitectura actual se le pueda adicionar mds poder de computa. Repartician de la carga Se debs anaizar con qué equipes cuenta el sistema ylos ciferentes recursos de cémeuto en cada uno de ellos, come capacidad de disco, velocidad de lared, etc. Los tipos de orquitectura a usar pueden ser: + Servidores-estacién de trabajo. + Pila de procesaderes, * Mulliprocesacores conmemora comparaa. + Mulliprecesaderes conmemoria distribuida, INTROOUCOMN A.LOS SIETEMAS DSTRIBUIDOS ag Mantenimiento de consistencia Werificor que todas los conceptes invelucradas con el sistema operative, al operar en Un esquema distripuide, sigan reaizondose de mane comrecta. Entre los puntos 0 observor estan los siguientes: Modificacidn, Cache, Falla. Repicacién, Interfaz de usuario. + Relgj. sea Funcianalidad Impica que el sistema distribvido a implementar funcione de acuerde can las metas trazadas y que permita hacer mas eficiente el abajo que antes se hacia usanda un sistema centralizada. Seguridad Es importante consicerar todos los factores de riesgo 9 que se expone ja informacién en un ambiente distibuide, por ello se deben de implementar las mecanismes de sequidad que penritan proteger esta informacion. 1.8 TAXONOMIA DE LOS SISTEMAS DISTRIBUIDOS Con base en su faxonomia, los sistemas distrinuidas pueden clasticare de la siguiente manera: 1. Sisternas con software débilmente acesiade en hardware débilmente acoplads, Gempio: Sistema operative de red, coma es el cosa de NFS [Network File System - Sistema de archiva de red], 2. Sistemas con software fuertemente acaplade en hardware tuertemente acogiada, Gempia: Sistemas operatives de mutliprocesader (sistemas paraleles), 3. Sistemas con software fuertemente ocoplade en hercwore débilmente acopiada, Bempla: Sistemas realmente distribuidas jimagen de sistema unica). 20 SISTEMAS ASTROS Un cose de los sistemas distribuides con sofware y hardware débimente acopiado son los sktemas operatives dered, Algunas prestaciones de estes sistamas son: + Conexién remota con otras comeutadarcs. * Capic remota de archivos de una maquina a ofa. * Sistema de archives global comparides. EJercIcIOs 1. Menciona tres ventojos y tres desventojas de los sistemas distribuicios conrespecta o los centralaades. 2 Indica la importancia de la fransearencia en los sistemas distribuides. 3. Eqplico en qué consste lo trangparencia de red enlos sistemas cistribuides, 4. Indica cud es la diferencia entre sistemas fuertemente acaptadas y siste- mes débilmente acopkados. 5. Indica la dferencia entre un sistema operative de red y un sstema ope- rative distribuida. 6. Indica la diferencia entre una pila de procesaciores y un sistema distibuide. 7. gQué significa “imagen Unico” sistema en los sistemas cistibuides? 8. Indica cince tipes de recursos. en harcwore y software que pueden com partise de manera vtil. 9. gPer qué es importante el balances de carga enilos sstemas distribuides? 10. sCudndo se dice que un sistema distipuido es escaiable? 11, gPor-qué existe mds riesgo a la seguridad en un sistema distibuide que en.un sistema centralzade? INTROQUCOMN A.LOS SIETEMAS OSSTRIBUIDOS aa ACTIVIDAD INTEGRADORA 1 ~ Dela apicacién de los contenicos, asi como de los habiidades y actitu- des desarolladas. Se recomienda expasiciones por parte del profesor, asi como discusio- nes en gripe sobre cescs especiicos y practicos de sistemas distripul- dios y sus Geances con respecte a niveles de transparencia o integracién {iuertemente acepladns o débimente acaplades). El during debe de mostrar interés por idenfificar cada componente de un sistema distribuida y la cantibucién de cada uno de ellos dentro del sistema. Es imporante que el clumno comprenda los diferentes niveles de fransparencia que puede integrar un sistema distribuide desde su disefio y elimpacto en ténminos de coste-heneficle par la organkacian, Un por de sesiones podrian ser utiizadas para cubrir este capitio. . Del logra de les objetives establecidos en el capitulo © aperiade del material. $e espera aicarecr los objetives de este Capitule. con el apoyo en la solu Gldn de los ejercicios que se incluyen al final de este capita, Capitulo 2. Redes de computadoras Objetivo: Que el alumno revise los componentes basicos de las redes de camunicacion para entender su importancia vital como infraestructura para la corsiuccion de los sistemas cistribuidas. 2.1 INTROBUCCIGN Las redes de computadoras son un Componente importante de los sistemas distribuides, Una red de computadoras es una Coleccion intercanactada de cemputadoras quidnemas que son copaces de intercombiar informacién: [Tanenboum, 19797]. El objetive principal de las redes de computadaras es compoartirrecursos, de tal monera que todos las programas, equipas y dates $é encuentren disponibles para quien lo solicite sin importar su ubicacin. El uso de las redes de computo sé ha incrementade durante los ditimos afios. La camunicacian por computadara sé ha canvertide én una parte ésencial de loinfroestructura octual. La conectividadse usa en muches aspectasy. can el crecimiento continue de Io Internet, las demandos de enlaces de mayor capedidad fambién han aumentade. En una red de compute, los datas san transmitides entre Computacores usanda secuenda de bits pararepresentar cédigas. La capacdad de transmisian de las datos, referida cominmente como anche dé honda, es desarita en bits por segundo (bil/s). Las eqnacda- des fpicas [Block. 1993] de transmision de datos se muesiran ena tabla 2.1. Er SISTEMAS DISTRIBUIDOS Tabla 2.1. Velocidind de conexién y usos en las redes de computadores [Black, 1993] Velocidad tipica Uso tipico tbiti'sy 400. Telégrafo, teminales viejas, telemetia 600-2400 _ Teaminales operadas humanamente, computagdoras personales 2.400-19,200 Aplicaciones que requieren respuesta rorida y/o rencimiento similar como fransferencia de archives 32.000-64.000 = Var digital. opicociones de alta velocidad. aigo de video 64,000-1,544.000 Muy cla velocided para multiples usuarias. 1afice de compute dema.o comeutaciors, conexién principal dered, video Micyores @ 1.5 MB. 2.2 PRINCIPALES COMPONENTES DE UNA RED DE COMPUTO Las redes de computadoras estdn integradas por diversas componentes, ab gunos de-los cunles se rnuesiran en la figura 2.1 (Black, 1993], Figura 2.1. Componentes de redles de cémpute ae Lineas de enmamie ation ‘ ~R Ferminal Mustiplenor Hauibplexor REDES DE COMPUTADORAS a5 Los principales componentes de una red de compute san (Black, 1993): +) Medios de comunicacién: Cuaiquier cosa usada para franspertar dates en la forma de sefales elécticas (lineas telefonicas, lineas decicacios o cand LAN). * Moacrocomputoderas:: Cormputadoras donde residen las grandes bases de dates 9 Informacion de una empresa bap un ambiente centraizado, + Terminales de cémputo: Dispositives de entrada/salida de una compu fadora principal, puede consistir de teckado, lector dptico o camara de video para la entrada y moniter de video o impresora come salida, * Ennutadores: Dispositive que enla red de comunicacién examina las di- recciones de la red dentro de un protecolo dad y encaming los paque- tes al destino por la ruta mds eficiente previamente deterrinada, * Modem: Dispositive usade pora convertir datos digitales seriales de una terminal transmisor en una adecuade seal analégica para un cand tele- fonico, asi como pora reconverti la seal analégica o digital serial pera que seq sada por Una terminal receptara, + Mulfiplexores: Estes dispasitivos perniten que mds de una terminal compara la lines de cemunicacion y pveda resultar en una ventoia sus- jancial, al reduct el numero de lineas usadss. * Estaciones de trabajo: En un entero de red es una computadara para un Unico usuario, de ite rendimiento, que sive para disefio, ingenieria ‘9 apleaciones cienfiicas, = Conmutadores: Dispositive mecénice o electrérico que sive para co mandar el flujo de seAales elécticas u optica. + Procesador central: Usade todavia por algunes sistemas de cémnpute, su funcidn es manejar el procesamiento de comunicaciones en un entomea de mocrocomputaciaras, conectando por un lade los candies de comuni- cadién y par el otro la macrocomputaders. 26 SISTEMAS ASTROS = Servidores: Su propdsito es proporcionar rendimiento a estaciones de trabaje o computadaras personales o para proporcionar base de datos y servicios de impresién o careo enunared, 2.3 MODO DE OPERACIN ¥ CONMUTACION El mado de operacién de un enlace de comunicacian es una caracteristica a corsiderar desde la pespectiva de un sistema distribuide, Usualmente par fransmitir dates por un enlace de comuricacién se acupan tres modos: 1, Camunicacién simplex: Este moda se presenta cuando los datos via- jon en una sola direccién, 2. Camunicacién haitduplex: Este mode permite que los dates viajen en des dracciones, unaa la vez. 3, Comunicacidn fultduplex: En este mode los dates vieian srmultanea- mente en ombes direcciones. Pora transferir dates. las redes utilizan conuricacién carmutaca. lo que permite a los dispasitives compartir lineas fisicas de Comunicacian, los mé tedos Tanenbaum, 1997] mds usuales de comunicacién conmutada son: = Canmutonién de circuitos: Crea une ruta Unica e ininterumpida entre dos cispositives qua quieren comuricarne ad que, mientras estos se co unican, ningdin otre puede ocupar esa ruta. + = Conmutacién de mensajes: En esta conmutacién no existe un establect miento anticipade dela ruta entre el que envia y quien recibe. Quando el que ena tiene listo un bloque de datos, esta se almacend enla primera central de conmutacion. para expedirse después come un salto a la vez. Cada bloque se recbe completo, se revia y se retransmite, sin limite para él famaro del bloque. + Canmutocién de paquetes: Aqui los dates se dividen en fragmentos llo- mades paquetes que pueden vigiar per multiples rutas entre distintas computadaras, Come los paquetes pueden viajar en amber direcciones. fequieren una direccian desting, La conmutacién de paqueles no reserva ancho de bonda y lo adquiete confarme lo necesita, por lo que es muy REDES DE COMPUTADORAS ar WOtil en él manejo del trafico interactive. Aqui los paquetes san gquardadas enla memeria de las centrales de conmutacion, ‘Canmutacién hibrida: Sen las variantes que pueden existir en la commu: facién de circuites y paquetes que tratan de apravecharlas ventajas de coda una, come la conmutacion de circuites por conexién répida y la conmutaciin por division de tiemec, 2.4 TIPOS DE REDES Los redes de cémputo, que integran diversos componentes que qperan entre si pcra compariir recursas, pueden clasificase de diferentes maneras [Black. 1793], Los fipos de redes de computo mas conocidos son: ql 5) ¢| Por su servicio: Redes publcas, redes de acceso plblico, por ejemplo. ka red teleférica Rubles comercial, Redes privadas, utilzacias dentro del dmbito de una empresa para su uso exclusive. Por su funcionarriento: Redes de canmutacién, se usan ean los métedes de conmutacién para ofrecer la comunicacitn entre dispasitives (teléfanes o computadoras persandies). Redes de cifusidn (Broadcast). redes en que la comunicacion se realza por difusidn desde un dispositive a mds de un dispositive (sefiales de satelite, radio y Tv). Porsu extensiGn: Redes de 4rea jocal (LAN, redes con multiples usuarios conectades en una parte geogréfica pequefia, par lo general no mayara 1 km: ofrecen candies de comunicacian de atta velacidad y por la general son redes Privadas y relativarnente libres de error. Redes de area meiropolitana (MAN), redes conmiultiples usuarios canec- tados en una porte geoardfica que va de 1a 10 km, aproxmadamente. Redes de dre ampio (WAN), redes con multiples usuarios conectadis en una amplia regian geogrélica, come entre Gucades, paises o continen- tes, par lo general la comuricacion abarca lineas telefinicas. satélites y 8 SISTEMAS ASTROS redes de cémputo, sus Canales son relativamente de baja copocidad y de mayor margen de error, 2.5 TOPOLOGIA DE REDES La fopologia de redes se refiere ol amegio geométrica que tendién Ins co- nexiones entre las computadoras, ademds, son una forma para closificar las redes, Las topologias mds usuales que se muestran ena figura 2.2 son: + Topalogia estrella: Todas las computaderas se cenecton ¢ una compu- jtadora central, Esta topalogia no permite la comynicocién directa entre dos computadords que no sean la central. * Topalegia en anillo: La red forma un anillo cantinuo en el cual puede vigjar la informacion, * Topologia en bus; Emplea un sole medio lamade bus, al cud todas las. computadoras se conectan. * Topologia en arbol; Existe una computodor principal que sirve como faiz y Unica saiida extema, * Topalogio ireguiar: No se regneta un modelo de canexidn. + Topalogia de Infeseccidn: En esta topologia existe ka conexién de dos o ms tipes de lopclogias. * Topologio completa: $e dan todos los tipos de topelagias. Figura 2.2. Topologias mds usodas para las redes de computaderas oe ae esr {S2h re KS eno Be ae REDES DE COMPUTADORAS ag 2.6 MODELO OSI El advenimiento de las sistemas de compute propicié un campe ideal para que los sisternas fueran abiertos, es decir que diferentes plotaformas de di- ferentes faricantes se pudieran comunicar, Sin ennbarge, antes de la déca- da de 1970 esto no ef posible porque los sistemas eran ceradas y los fa bricantes seguian sus propies madelas de comunicacién, Para atrantar este problema, entre 1977 y 1984 los especialistas del ISO (International Stancerd Organization) crearon el OS! (Open System Interconnection), un modelo de referencia para ta interconexin de sisternas abiertos. El modelo ISO/OS!| utiliza siete capes para organizar una red en mddulos funcionales bien de- finides (ver figura 2.3), con la cual los dsefacares puedan constuir redes reales, sin embargo, al ser este solo un modelo y ne una norma, el disefa- dor puede modificar el nOmero, nombre y funcién de lared. Los principios oplcades pero el establecimienta de siete copes fueron [Tanenboum, 1997]: 1. Una copa se creard en situaciones en las que se necesita un rivel diteren- te de obstraccién, 2. Cada capa deberd efectuar una funcién bien definica, 3. Lo funcién que realkard code capo deben’ seleccionarse conic intencidn de definir protacalas nomalizades intemacianalmente. 4. Los limites de las capes deberdn seleccionase tomando en cuenta la minirrizacién del flujo de informacién o faves de las Interfaces, 5. El numero de capes deberd de ser lo suficientemente gande para que funciones diferentes no tengan que ponerse juntas en la misma capa y. por ofa parte, también ceberd de ser lo suficientemente pequeno pan que Su arquitectura no sea dificil de manejar. Figura 2.3. Las caper del models OSI y su ie ‘Apheaweion (capa?) (ul Ey SISTEMAS ASTROS Una vez establecico el modelo OSI, las computadercs se pueden comu- nicar camo sé illustra en la figura 2.4. La comunicaciin se realiza de una copa de un nivel a otra capa del mismo nivel por medio de protecalas finecs pun- teadas). Se usan interfaces para transmitir los dates de una capa a otra capa inferior dentra de una rrisma computador: asi, hasta legara ka capa fie y pasar a la red sublende ola cape fideo de Ia otra computaders. Figura 2.4, Comunicacién entra dos cormputadaras usande el madale O51 2.7 NORMA IEEE-802 El estdnder IEEE-802 del Institute de Ingenieros Bécticos y Blectdénices (IEEE) espectica las caractersticas que deben de cumpilr las redes LAN y define las especificaciones para cada una de estes, come se indica en la tobla 2.2 (solo se muestran los estandares iniciales). REDES DE COMPLUTADORAS a Tabla 2.2. Componentes del estandor |EEE-802 pora LAN [Biack, 1993] Nombre Deseripcién del estandar 802.1 De una infroduecion al conjunto da nome: y define las primitivas deinterfaz 802.2 Describe Ia parte superior dela copa de aniace, la LLC 202.3 Epeciicaciones para la tecnologia de acceso CMA/CD [para Ethemet) e024 Epeciicaciones para la tecnclogia da festigo en bus 802.5 Epeciicaciones para la tecndlogia da testiga en anilo 802.6 Epecticaciones para redes de dea metropalitana: 802.7 Especiicaciones para redes de banda ancha 802.8 Especiicaciones para redes de fibra dptica 802.9 Epecifcacinnes pararades que intacran datas y vaz 802.10 Eepeciscaciones para seguridad enrecdes 802.11 Eneciécaciones pararadies inaiémicricas Lo arquitectura del esidnder 802 se muestra en la figura 2.5. Figura 2.5. El estindor IEEE 802 [adoptada de Black, 19973] 0 t Cepatisies = Capgeniice ge dates 2 SISTEMAS ASTROS 2.8 PROTOCOLOS ¥ PAQUETES 2.8.1 Protocolos Les protoceles son un conjunte de reglas que gobleman lq interaecién de procesos concurentes en sistemas distribuidies, estos sen utilzados en un gran nimero de campos como sistemas operatives, redes de computaderas o comunicacian de datas. Une de las conjuntas de protocolos mds usados en Intemet y que usamas: en los ejemplos de sockets és al TCP/IP (Transmission Contral Protocal / Intermet Protocol). Este conjunto de protocolos tiene menos copas que el OSI, lo que incrementa su eficiencia. TCP/IP es Un protocol confiable, ya que los paquetes san recibides en el orden en que son enviades, Muchas. sitios también usan e| protocelo UBP/IP (User Datagrama Protocal/intemet Protecal). El protecola UDP/IP es un profecela no confiable, ya que ne go rantiza la entregs. La figure 2.6 lustre las capes del prateeale TCP/IP y UDP/ IP comparade con el modelo OSI, Figura 2.4, Arquitectura de los protocolos TCP/IP y UDP/IP Referencia OSI Capas5a7 Capaa Capas 13 REDES DE COMPUTADORAS 3 2.8.2 Paquetes Un paquete es Ia forma usada pera enviar informacién en un ambiente dis- tribuido o de red, Cada mensaje es dividide y colbcace en paquetes. Un poauete contiene toda la informacién necesaria para constuir el mersaje anginal. Es dacir que los paquetes pueden lagar en desorden, pero al nade destino deberd de ser copazde poner los aqueles en una fama erdend, El segmente de datos del paquete contiene (ver figura 2.7): * Los encabezodes de coda capa del protocale a partir delos datos dela copa de enlane. + Los dates dela apicacién actual, Figura 2.7, Formoto tinica de un paquete Encahezado Datos BCE Direecién fuente + Direreicin destine + Mimero de mensaje + Hiiman de paquets BCE: Bloque de control de error + Reconocimiento + Informacién de contol Cuando los paquetes legon a la capa de enlace de datas [capa 2 del modelo OSI). son entramades en un marce (rama) donde se adiciona un bleque de control de emer, Aunque o veces se Usan los férmines de paque- tes ymarcos como equivalentes, esto no es camecto, ya que las férmines se refieren a unidades en diferentes capcs del modelo OSI fade transporte yia de enlace de dates. respectivamente). Los estandares IEEE 802.3, IEEE-802.4 e@lEEE 802.5, tienen su propio fornate de marce para sus paquetes, 2.8.3 Redes de bonda ancha Muchos de las tecnologias emerngentes se designan come redes multimedia de banda ancha. El propésito de unared de multimedia de banda ancha es proporcionar un servicio de transperte para cudilquier tipo de apicacién. Una 4 SISTEMAS ASTROS red de banda ancha apaya el servicio telefénico, de video, de dates, cam- pras a distancia, aplicaciones CAD/CAM, etc. De acuerdo con Black [1999]. el témine banda ancha ha side usade desde hace varios afias y sé han pro- puesto algunas definiciones para la tecnolagia de banda ancha, come las siguientes; + “Cuolquier sistema de alta copacidad que clrece un sistema de franspor- te de muttimedia. * Uno red que utiliza tecnologia de alfa frecuencia come mecarisme de transporte para el trafice de usuaries. * Cunlquier red que opere por encima delintervalo de frecuencia dela voz (G4 kHz). + Cualquier red que opere per aniba de Ia tasa primaria de ISDN [1.544 Mbit/s en Norleamérica y 2.048 Mbit/s en Europa)". Dentre de las redes de banda anche, la tecnologia de red mds popular es la tecnolegia ATM. (Asynchronous Transfer Mode). La tecnologia ATM esta bosada enlos esiverzos del gupo de estudio XVIII del ITU-T, of desanoliar el BISON pera la transferencia o alta velocidad de voz, video y datas a través. de redes pdbicas. El propdsito de ATM es propercionar una red con multiplexién y conrrn+ tacién, alta velocidad y bajo retarde pera apoyar cualquier tipo de trafice de usuario, como aplicaciones de voz, datos o video (Ford, Lew, Spanier & Stevenson, 1998]. ATM segmenta y muitiplexa el tréfico de Usuario en unida- des pequefias de longitud fija lomacdas celdas, La cekia fiene 53 bytes. de las Cudes 5 esGn reservades para el encaberado de la celda, los 48 bytes restantes se ocypan pora dates, Cade cela se identifica cen identificadores de circuitos virtvales contenices ene! encobezode. Una red ATM utiliza esos identificadores para encaminar el tréfico 9 través de computadorns de alta velocidad desde él equipa de las iretataciones del cllente (CPE) transmisor hasta el CPE receptor. ATM offece operaciones de deteacidn de error limita- da. Con la excepcidn del iréfico de sefalzacion, ATM no aftece servicios de retransmisi6n y san poces las operaciones que se realzan con el pequefic encabezodo, Lo intencién de tener celdas con poces servicios prestados es implementor una red que sea lo bastante rapida come para apoyar tasas de fransferencia, REDES DE COMPUTADORAS a5 2.8.4 Redes inalémibricas Actuolmente la moviicad y el cémouta mévil emengen con gran fuerza. Mi- llones de personas intercamibian informacién cada dia usando receptores de mensajes, tabletas electronicas. teléfonas mdviles y otras productos de commu nicacion inalamibfica. Con el auge dela telefoniainaldmbxica y los servicios de mensajeria, es una tendencia el que la comunioacién inakimbricase apique al campo dela camputacién personal y de los negacies. La gente desearia tener focilidades de accesa y compartir informacion en una escdia gobal y cercana en cudiquier sitio en que se encuentra, El propdsita de un sisterna de cornu nicaciones mavies se puede inferir del nombre de la tacnologia, que es jade prestor servicios de telecornuricaciones entre estaciones mdvias y estaciones terenas fijas, o entre dos estaciones méviles [Back, 1999]. Se pueden clistin- guir des formas cde comunicacién maviles: celular e inakambrica, Esercicios 1. gQudles lo diferencia entre unored LAN y MAN? 2 gCudlesla funcién del protocols IEEE 802.112 3. 2Qué ventajas tiene usar celdas en cermperacién con usar paquates en la scomunicacion de datas? 4. 3En qué conséste el sstema GSM y cudiesson sus principales campanentes? 5. gCudl es lo similitud entre una topologia en drbal y una de estrella? 4. Investiga los coroctersticas de los medias fisicas de comunicacién para redes de compute. 7. gQuéesquemas de comuricacién se utilizan paralas recles sateltales? 8 En el modelo OS), scud es la dferencia entre un protocols y una interfaz? 9. gQué fipos de recies existen en talniemet? 10. 3Qudl es Ia principal desventoja de una tapolagia en anillo? SISTEMAS ASTROS 1). gQué beneficios aporta usor una tapolagia de arbol en una red de difusidn de contenidas? 12. 2Qué beneficies aporta Usar Una topelogia completa o de mala en Unared de dates? 13. Considera que dos comoutacaras transmiten paquetes de 1.500 bytes por un cand compartide aque opera a 128,000 bits par segundo. Si las camputadaras tardan 90 mictosegundas entra la ferninacidn de trans- misidn de una computadera y el inicio de otra, squé tiempo se requiere org que Uno Computodora envie Un archive de 5 MB a la.olra compu fader? ACTIVIDAD INTEGRADORA 1. De is aplicarién de los contenidios, asi como de las hablidacies y ac- fitudes desaraladas. Se recomienda expasiciones por parte del profesor, asi coma discu- gones 6n grupo sobre las diferentes topologias delasrades da corm ricaciin y sus Componentes, Hacer hincapié en el modela de referen- Go OS! ysu importancia pera los sistemas abiertos. El capituie puede servir también come un repose para los aluminas que ya Cursaron la UEA Arquitectura de redes (Modelo OSI de ISO). Corna repaso, se recorrienda resumira en undo dos de sesiones de clases can active dades extraciase pora los aluminas, El dlumne debe de mostrar interés por entender e! principio de ape- racién de las redes de comunicacién de datos, ya que son la infraes- tructura que soparta el compute distribuida, 2 Dellogro de los objetivos establecides en el copitule o apartade del material. $e espera dcaray los objetives de este captiule con el apoyo ena soluci6n de los ejercicios que se incluyen ol final de este capituo. Capitulo 3. Modelos de arquitecturas Objetivo: Que el alumno comprenda los diferentes paradigmas de compu to, desde el ciente-servider al grid, y cémo se integran en los modelos or quitectinicos de los sistemas distribuides. 3.1 INTROBUCCIGN Lo argquitectura de un sistema es su estructura en términas de los compa nentes especiicadas por separade y sus interelaciones. El objetivo de una arquitectura general es aseguror que a estructura reunid presentes ¥ ee bables futuras demandas sobre el misma. Las principales son que el sistema sea fiable, monejable, adaptable y rentable [Coulouris et aw, 2012]. La arquitectura de un sisterna distribyide guarda algunos aspectos similares con el disefio arquitectonice de un edificie, los cuales defermninan fo solo su aparencia, sino también su estructura general y el estilo arqui- ftectonico (gotico, neockisica y mademo) y properciona un marca coherente de referencia para el diserio, Todos los tipos de sisternas distrituides tienen coractersticas basicas comunes. Un modelo de orquitectura es una descrip- idn abstoacta simplificada pero consétente de cada ospecto relevante del disefio de un sstema distribuide. Este capitulo describe las principales mo- delos arquitectanicas de los sistemas distribuides, particularmente en pa- radigmas cliente-servider, peer-to-peer, grid. proxy, cluster y las principales diferencias entre estos. 3.2 MODELO CLIENTE - SERVIDOR El madele cliente-servider es Ia arquitectura mids citeda cvande se discuten los sistemas cistribuides. Es el modelo mas importante y sique siendo el mas SISTEMAS ASTROS ameliamente ulllzaco. La figura 3.1 ilustra la estructura simple de esta arqui- tectura, en la cud los procesos taman el rol de ser clientes ¢ servidores, En particular, los procesos de clente interactian canlos pracesos de servidar individuales en equipos anfitianes [hast) potencialmente separades, can el fin de acceder 9 los recursos compariides que administran, Figura 3.1. Bemplo de unc estructura simple clente-servidar Servidor Cliente . Solicitud = if | s—_ Se Respuesta El modelo cliente-servider puede tomor diferentes configuraciones. Por ejemplo, puede existir mas de un clente coneciado a un servidor, como se indica enla figura 3,2. También se puede tener un grupo de servidares inter- conectades dedicaces a dar servicio o un grupo de clientes. Este escenaio $6 indica en la figura 3.3. Figura 3.2. Bemplo de estructura cliente-servicior porn dos chentas Cliente Mope.os DE ARUITECTURAS: a9 Figura 3.3, Grupo de servidores interconectadas bosads en el modelo cliente-servidor Servicio ‘Servidor 2 ae 3.3 Proxy Es un servider que se emplea cone intermeciario entre las peticiones de re- cursos Que realiza un Cliente a otra servider. Por ejemple, si una camputadara Addlcita un recuse a una computadara Clo hard mediante una peficion ale compuladera B que, o su vez, frasiaciard la pelican o ka computadera C, De esta manera, la computacara C no sabre que la peticion procedié original mente de la camputacior A. Esta situacién esiratégica de punto intermedia suele ser agrovechada para soportar una serie de funcionaldades, camo: * Preporcionar caché. * Control de acceso, + Regisiro del frafico, + Prohibir cierto tipo de trdfico. * Mejorar al rendimiento. + Mantener el anonimate, El proxy mas conocido es el servidar proxy webs, su funcién principal es Inferceptar la newegacién de los clentes por paginas web por motives de se- guridad, rendimiento, anonimato, entre otros. Las figuras 3.4 ¥ 3.5 muestran das ejemplos del use de proxy. 4 SISTEMAS ASTROS Figura 3.4, Arregio da proxy cliente y promy servicer pore acceder ol servidar desde dos chentes Proxy en Proxy en ellado del —el lado de! cliente servidor Solicitud — —- —_— Respuesta ‘Solicitud —_— <————— — ——_. Respuesta Figura 3.5, Acceso a servidores web vig Un proxy Servidor 3.4 PEER-TO-PEER El paradigma peer-to-peer [P2P) haside un tama muy tractive para muchas investigadores de diferentes areas, tales como redes, sistemas distribuidas, teora de lo complejided, bases de dates y otras. En el modelo clente-servider tradicional, dos tipos de nodes son em- pleads: clentes y servidores. En este contexto, los clientes solo solicitan servicios y el servidor solo proparciona a fos clientes el servicio apropiade. Un servider puede acepter varias solicitudes, procesarias y develverlos cor- terides solicitados a los chentes, En la Intemet actual, los chentes incluyen navegodores web, clientes de chat en linea y clientes de comes electroni- 09, mientras que los servidores normalmente son servidores web, servidores FTP y servidores de correo. En centraste, enlas sistemas P2P no se requiere und infraestructura dedca- do. Los servidores dedicades y clientes no existen, ya que cada peer puede to- mer el papel tonto de servider como de clente ai mismo tiempo, Una venta Mope.os DE ARUITECTURAS: a importante de los sistemas peer-to-peer es que todos los recursos disponibles son propercionaces par los peer, Durante la distribycién de un contenido, los peers aportan sus recursos pam fransmitir el contericio o los demas peers. Por lo tanto, cuando un nuevo peer se ogrega al sistema al sistema P2P, ko demanda se incrementa pero la capacidad general del ssterma también, Esto ne es posible en un modelo chente-servider con un numera fijo de servidares, El paracigma P2P se muestra en Ia figura 3.6, dende se puede ver que en un peer estan ejecutdndose al misme fiempe tanto un proceso servider como une cliente, también ambos ofrecen y solicitan respectivamente servi- clos a otras procesas similares en atroas peers. Beneficios de un sistema peer-to-peer + Nodos comparien recursos. * Se pueden desplegar algeritmos distribuides. + Ecolamiento mas facil del sstema, + Ahora de castas, + Rexibiidad, * Ningun punte unico de falls, * Mayor rbustez del sistema, Figura 3.4. Paradigrna peer-to-peer a SISTEMAS ASTROS Una infraestructura ce comuricecién P2P eski farnada por un grupo de nodes ublcades en und red fica. Estos nodes Construyen una absiraccién de red en la parte superior de la red fisica conocida coro red superpuesta, que es independiante de la red fisica subyocente, La figura 3.7 muestra este escenario, La red superpuesta se establece para cada sistema P2P a través de conexiones TCP o HTTP. Debido o la capo de abstiraccién de la pila de protocols TCP, las conexiones fisicas no son reflejadas por la red de super- posician. La red superuesta constuye tineles lagicas entre pares de nadas [Ripeany, Foster, lamnitchi & Rogers. 2007], con al fin de implementar su proplo mecanine de enrutamiento pera transportar sus mensajes. Figura 3.7. jemplo de unerad supemuesta peer-to-peer [Lopez-Fuentes, 2003] Red de superposicién 3.5 APPLETS Un applet es un cddigo que se ejecuta en el contexte de atre programa, per ejemplo. en un navegadar web. El cédigo se descarga en el navegadary $€ @ecuta alli, come se nvestra enla figura 3.8, Mope.os DE ARUITECTURAS: a Figura 3.8, 9] Asolicitud del cliente el servidor web, responde con el cédign del @pplet. b) El cliente interactia con el applet (adaptodo de [Coulouris ef al,, 2012]) Cliente Shaaia —o———eETES Servidor Web (Cédigo Applet a) Cliente ——— > — ei Servidor Web Computadora local b) Un applet normalmente lleva a cabo una funcién muy especilica, que ca- rece de uso independiente, y son amplamente utilizades en aplicaciones de telefonia movil. Un applet puede dar uno buend respuesta interactiva, yo que no sufre de los retrasas o varatlidad de anche de banda asaciade con la comunicaciin de la red. Sin embargo, un applet tipicamente corece de sesién y iene privilagios restringides de seguridad, A menudo, un applet consiste en un cédige pace confable, por eso se les impide tener acceso alsistema de orchives local. Los applet que se cagan a través de la red can frecuencia son corsiderades cama cédiges de poca confianza [anagan. 1998], o excepcion de que leven la firma digital de una entidad especificada come confiabk. Elemplos de los applets mas comunes son: Java applets. Anmaciones Flash, Windows media player. Modelos 3D. cs SISTEMAS ASTROS 3.6 CLUSTER En informatica, el témino cluster (“grupa" « ‘racimo"] hace referencia a canjuntas o cenglomeradas de cormmputaceras construidas meciante al uso de hardware comin y que se comportan come si fueran una Urica compute: dora, Un ejemplo de cluster se muestra en la figura 3.9. El uso delos ciuste- res voria desde las aplicaciones dle supercémputo, servidores web y comer io electronica hasta el software de misiones criicas y bases de dates de alto rendimiento, El computo con clusteres es el resultado dela convergencia de varias tandencias tecnaligicas actudies, enire las que se pueden destacar: * Microprocesaciores de alte rendimiento, + Redes de offa velocidad. + Software para computo distribuide de alto rendimienta. + Crecientes necesidades de potencia computacional, Los servicios esperaces de un clister principaimente son: + Alto rendimienta. + Alta déponibiidad. + Ecolablidad. * Boanceo de conga, Tipicamente respecto aia rapidez y disponiblidad, se espera que un. clis- ter sea mds econdrrico que el usa de computadercs individuales. Un clister puede ser: * Homogéneo, * Semihomogénes. + Heterogénes. Un elUster es homegénes cudnde todas las Computadercs flenen la mis- ma configuracian en hordwore y sistema operative, Es serninarnogénea qvands los computadoras tienen diferente rendimiento pero quarcan una similitud con respecte o su orquitectura y sistema operative. Finalmente, un cluster es heterogéneo cuandalas computadoras tienen diferente hardware: y sistema operative, Mope.os DE ARUITECTURAS: 55 Figura 3.9, emplo de clister ‘Coordinador Cliente 1 Cliente 2 Cliente 3 37 Gein El cémpute grid es un paracigme del cémputo distribuide, frecuentemente usade para indicar una iniraesiructura de gestian de recursos distripuidas que sé cenira en el acceso Coordinado a las recursas infamaticas remotas [Foster & Kesselman, 1999]. Estas recursos de compute son colectadas des- de multiples localzacionas para dcarzar una meta commun. A diferencia del compute de cluster (an gripe oracimel, el campute grid fiende a ser més heterogéneo y disperse gecgrficamente, Generamente las grids son Usc- das para una voriedad ce propdsites pero puede haber grids especicizadas pora fines especificas. Los recursas que son integradas por una infraestruc- fura grid sen finicamente platafamnas de cérrpute diedicadasa supercarmnpu faderas de alla gama o cllsters da propisite general, Algunos autores [Foster & Kesselman, 2013) ubican como onfececente del cémpulo grid al sistema de fiempe comparide Multics, Sin emibarge. este Conceato ha suffide multiples trarsformaciones a lo largo de los arias y diversas definicianes sobre el computo grid pueden ser encontrades en la literatura, Jaceb, Brown, Fukui y Trivedi [2005] definen la camputacién grid come cualquiera de una woriedad ce niveles de virtualzacién alo large de un continue, dende a lo large de ese continuo se podria decir que una solucién particular es una implementacién de compute grid frente o una relativamente simple apicacén usando recursos virtuales, pero inclusa en los niveles mas simples de virtualzacion, sempre se requieren habilitar tecnolagias de redes. a SISTEMAS ASTROS Beneficios del computa grid [Jacob et all, 2005]: Explotacién de recursos infrautilizades. Capacdad de CPU paralelas. Recursos virluales y arganizaciones virtuales pera la colaberacian, Acceso a recursos adicionales. Bolarceo de recursas, Fabilidad. * Mejor gestion de Infroestructuras de 7! mds grandes y distrinuidas. eee La conceptuaizacién del compute grid se muestra en le figura 3.10. Figura 3.10. Ejemple de cérputo grid 3.8 ARQUITECTURA DE CAPAS Una orquitectura de capa resulta familiar enlos sistemas distribuidas y estare- lacionade con la aisstraccidn. Con este enfoque, un sistema compiaio puede ser dividido en cierto numero de copes, donde las capes superiores hacen use. de los servicios ofrecidas por las capes inferiores. Be esta manera, una deter- minads capa ofrece una obstraccion de software, sin que las capas superiores oinferiores a esta deban de estar al tanto de los detalles de implementacién. En el caso de los sistemas distrituidos, los servicios se organizan de una manera vertical came copas de servicio. Un servicio distribyide puede ser proporcionado por una o mds process del servider, que interactian entre si y con los proceses de cliente para mantener una vision de todo el sistema, Mogeios pr aRGUATECTURAS. 7 coherente de los recursos del servicio. Por ejemplo, e! ojuste de hora entre cllentes puede realzorse por un servicio de hora dered a través de Intemet, usande el protocola de Tlempo de Red (NTP]. Es Util organizar este tipo de servicio en capas debide a la complejidad de los sistemas distribuides. Una vislén common de una arquitectura de capa se muestra ania figura 3.11. Figura 3.11. Copas de servicio en un sistema distribuide [Coulourtis ef af,, 2012] Aplicaciones, Servicios Sistema Operative Plataforma Como se indica en Io figura 3.11. un sisterna distribuide esta constituide principalmente por los siguientes estratos: + Plataforma. + Micidleware, + Aplicaciones y sericias, La,plotofamea para sistemas y aplicaciones distribuicas se campane de las capes de harsware y saftware de nivel mds baja, Estas capas de bajo nivel proporcionan servicios a las capes superiores. las cudes son implernenta- das de manera independiente en cada equipo, conduciendo a la interfaz de programaciin del sistema hasta un nivel que faciita la comunicacidn y la ceordinacion entre las procesas, Ejemplos de plataformas son: Intel x86/Windews. Intel xBé/Micse OS X. Intel x84/Linux, Intel x86/Solaris, see ry SISTEMAS ASTROS Middleware es un software que tiene como funcién principal enmascarar la heterogeneidad del sstema distribuide pera proparcionar un modelo de programacién conveniente o las programadores de aplicaciones. Femplos de ridckeware san: * CORBA [Common Object Request Broker) + Jeva RMI [ova Remote Method Invocation). Finalmente. la capa de aplicaciones y servicios son las prestaciones que offace el sistema distribuide a los usuarios. Se entiende carne las apleacia- nes distribuicas, 3. MIDDLEWARE En la primera generacién de los sistemas distribuides todas los servicios pro- porcionades por los servideres debian de programare a la medida. Asi. ser- vicios de acceso 0 bases de datos, de impresion y transferencias de archives tenian que ser desarrolladas por las propias aplicaciones, Queda en evider- do la necesded de crear servicios de Use mas comin por las aplicaciones, de fal manera que pueda inciuine én todas las aplicaciones come software: prefabricads. En este escenario surge la idea del middleware, representade- por estandares tales como ODBC, OLE, DCOM y CORBA. Middleware es un Conjunto de servicios que permite distribuir datos y procesas a través de un sistema multitorea, una red lacal, una red remota o Intemet [Martinez Gomariz, 2014]. Los servicios del Middleware pueden ser chsificados en dos grandes gupos: * Servicios de desarrollo. + Servicios de administracian. El objetive principal del middleware es conseguir Ia fransparencia en los sistemas cistribuidos, por medio de: + Olrecer la copacidad as! coma solicitar y recibir die manera trangparente alsistama, * Liberar a los disefacores y administradares del sstema de prablemas: derivades dela complejdad del sistema operative. Mope.os DE ARUITECTURAS: 58 En la prdctica, middleware 6s representado por procesos u objefos en un conunte de equines que interachian entre si para implementar ka cormunica- ion y el intercambio de recursos de soporte para las apicaciones distribui- das [Coulouris ef a, 2012]. E| middleware esid relacionado can el suminisiro: de materidies de constuccion utiles para la canstuecidn de carrponentes de software que pueden trabajar con otros en un sistema distriouide, Las als fraccanes del middewore anyon o diversas actividades de cemunicacan, come Ia invecacién de mélace remote, la comunicocién entre un gupe de proceses, notificacion de eventos, el porticionamients, la colocasion y recu: peracién de abjetos de dates campartides entre las equipes cooperantes, la repicacién de objetas de dates compartides y la transmisian de datos multimedia sn tiempo real, Un escenario dal middleware es mostrace enla figura 3.12. Figura 3.12. Escenorio del middleware en un distribuide A pesar de que el middewore iene como abjetive suministrar transpa- rencia de dishibucién, en general las soluciones especiices deben de ser odaptables alos requerimientos de las anlicaciones. Tanenbaum y Van Steen [2008] condderan que una soluci6n pan este problema es desarollar diver- sas versiones de un sistema middleware, dande cada version sea canfeccia- nada para und clase especifica de aplicaciones. 3.10 CORBA El paradigma ofentade o objetes juega un importante rol en el desarelo de software y cuenta can gran pepularidad desde su intoduccion, La oren- s° SISTEMAS ASTROS facidn a abjetos se comeras a utilizar para el descrrolla de sistemas distri- buidos enla década de 1980. El Grupa de Gestién de Objetos (OMG-Object Management Group] sé cred en 1987 come una asociacién de las empresas. lideres dela tecnalogia software para definir especiicaciones que puecan ser implementadas por ellas ¥ que facliten la interaperabilidad de sus pro ductos, Los middiewares bosacios en compaonentes se han convertide en une evelucion natural de los objetos distrinuicins, debide o que apoyo lo gestian de las dependenaas entre componentes, acuttande los detalles de bajo nivel asociades con el middleware, gestion de las complejdades de es- tablecer aplicaciones distribuidas con propiedades no funcionales apropia- das—como la seguridad-y el apoyo apropiado de estrategias de implemen- tacién. Los middlewares bosacios en objetos distribuidos estan cisehadas pero propercionar un medela de programacion basade en principies orien- todas a abjetos y, por tanto, para llevar los beneficins del enfoque a abjetas para la programacién distibuida. Los principales ejemplos de rriddeware basades en objetes distrituides incluyen Java RMI y CORBA, CORBA [Common Object Request Broker Architecture) es una hemamien- ta middleware que faciita el desarrolla de aplicaciones distriovidas en en- tomos heteragénecs tanta en hardware came en software [Coulouris et al, 2012], ejemplos de estos son: Distintos sistemas operatives (Unix, Windows, MacOS, 05/2). Distintos profocolos de corrunicacién (TCP/IP, IPX). Distintos lenquajes de programacién Java. C, C++]. Distinto hardwere. see El ebjetive principal de CORBA es especificar Un rriddleware pra care- truir apicaciones del tipo cliente-servider multinivel, distribvides y centrali- zadas, y que sean flexibles y extensibles. Pora dicarzar estos objetivos, COR- BA utiliza diferentes medias, camo las que a continuacion se describen. Del poradigma ofentade a abjeto explota los conceptes de encapsula- cién, herencia y polimorfisme. En la camuricaciin a través de invecar m& todos remotos es mds faci de programer que las sockets, RPC, atc. Usa el concepto de esqueleto como el encargad de la comunicacién con el clien- te. Define la separacion interfazimplementacion a través de CORBA IDL [In- teface Definition Language). Para la referencia a objeto, usa el identificadar Unico de un objeto, CORBA és implementado encima del protocols TCP/IP yusa modes de comunicacién asinrona y sincrona, Con el uso de envotturas (wrappers). CORBA penmite integrar los sistemas heredadas, y normamente Mope.os DE ARUITECTURAS: se usa solo una instancia de cada clase, CORBA famibién hace uso de una copa de softwore conecida come ORB (Object Request Broker), que permite alos objetos realzor lamadas a métodes situados en maquinas remotas a través de unared. Ademds, ORB manejala transferencio de estucturas de datns de manera que sean compatibles entre los dos objetos. ORB es un camponer- te fundamental dela arquitectura CORBA y su misién es facilitar la comunk caciin entre objetes, ORB también debe de faciitar diferentes transparen- clos, tales como de localzacién, imelementaciin, comuricacion y ejecucién, En CORBA [Coulouris ef al. 2001], el servider crea objetos remotos. hace referencias accesibles 0 abjetas rematas y espera a que las clentes inva- quen estos objetos remotes a a sus métados. Por su parte, el clente ab- tiene Una referencia de une o mds objetos rematos en el servidar e nvocaa sus métoddos, Lo arquitectua CORBA [ver figura 3.13) esta cisefiaca por cer soporte of rol de un intermeciorio de peticiones de objetos que permita que los clentes invoquen métodes an abjetos remotos, donde tanto los clientes cama los servidares pueden implementarse en diversas lenguajes de programacion, Figura 3.13, Prine}pales componentes Ge Io arquitechra CORBA [Coulotsis et al, 2001] Lo funcion de los principales componentes se describen a confinvacién [Coulouris ef al, 2001]. El ndcleo de ORB es un madule de carnunicacién ef udl permite una iinterfaz que incluye las operaciones de amanque y paro, las operaciones para la canverién entre referancias a abjetos remotos y cade- nas de texto, ad come las oreraciones pcra abtener listas de argumentes poro famades que emplean invecacion dinamica, El adapfador de objeto sirve como puente entre los objetos con interlaces IDL y las interfaces IDL, ademds de las interfaces del lenguaje de programacién de las comespon- dientes clases sirvientes. Las clases esquelefo se generan en el lenguaje del 52 SISTEMAS ASTROS servider a través de un compilacior de IDL. El esqueleto sine para degnachar las invecaciones los métodes remotes, asimismo desempaqueta los argu: mentas desde los mensajes de peticién y empaquetalas excepciones y los resultados en mensajes de respuesta. Los resgquardo/proxy son los encarga- dos de empaquetorlos argumentes de los mensajes de nvocaciony desem- poqveto las excepciones y los resultados de las respuestas. Cada reposiiorio de impiementacién activa los servidores registrados bojo demanda y localiza las servidores que estan en ejecuddn en cada momento usando el nombre del adaptador de objeto. El repasiforio de inferfaz praparciana informacién sobre las interfaces IDL ragistradas o los chentes y a los servidores que lo requieron. La interfaz de invocacidn dindmica permite que los clientes pue- don realizar irvecaciones dinamicas sobre objetos remotos CORBA cvando: no es practice el uso de proxies. La inferfaz de esqueleto dndmica permite que un objeto CORBA acepte invocaciones sobre una interfaz para la que no hay un esqueleto, El codigo delegade permite Convertir a objetas CORBA aquellos fragmantes de cédige existente que fue dsefiado sin praver log objetos distribuidios. Evercicios 1. Tlustra ta orquitectura cliente-servidor para una comunicacién de muchos amuches. 2 Cita un ejemplo del use de un proxy en una arquitectura distibuida. 3. Cita cl menes tres desventajas del modelo clente-servidor. 4 Cito dimenes tres cametersices dala orquitectua peer-to-peer, 5. Explica cudles la funcién del middleware en los sisternas distribuides. 4. aCéma esta inwalucrado el usa del caché en los sisternas distribuides? 7. gCudl es la diferencia entre una red superpuesta y una red fica? 8. gQué beneficio apera trabajar con CORBA en los sistemas distribuides? 9. Investiga las limitantes que tiene CORBA. Mope.os DE ARUITECTURAS: sa 10, gCudl és la diferencia entre una arquitectura grid y un cluster? oa 3Cud es la principal diferencia enire el paracigma cliente-servider y el parndigma peertopeert ACTIVIDAD INTEGRADORA, 1. De la optcacién de los cantenicios, asi como de las habiidacles y actitu- des desarolladas, Se recorrienda expogcianes por parte del profesor. ademds de discu- silanes en grupo sobre las principales arquitecturas en los sistemas is- tibvides, El profesor se puede apayor de sjemples que exstan en ka literatura pera explicar mejer las ventajas y desventajas de cada modelo. También se recomienda encager d clumno que estudie articules cient ficos los cudes le permitan profundizar su conecimiento con respecto a las nuevas tendencias en las arquitecturas del carnpute distriouide, Un promedio de tres o Quatro sesiones podtian ser requaridas para cubrirlos temas ce este capitulo, El dlumno debe de mostrar interés por identificar ta utlidad oie coda anqui- fectura para aplicaciones especificas, asi camala pasibilidad de cambinar estas arquitecturas en escenarios de compute distripuide mademas, Del logro de los objetives establecides en el capitule o apartade dal material, Se espera aicaruarlos objetives de este copitulo con el apoyo en la so- lucian de los ejercicias que se incluyen al final de este capitue, asi camo. reforzar su canecimienta conlecturas de articulos cientificas especializa- dos sobre las tendencias del compute distibuide. Capitulo 4. Procesos y comunicacién Objefivo: Que el olumne comprenda los diferentes Conceptos relacionados can los procesas yla comunicaaan distribuides camo la base para el de- sarrollo de aphcaciones distribuidas. 4.) INTRODUCTION Lo comuricaciin entre procesas es el ndicleo de tocios los sistemas distribui- das [lanenboum & Von Steen, 2008], por tal razén és importante entender la manera en que los procesas localizedos en diferentes computacoras pue- den intercambior informacion. En los sistemas cistribvidos tracicionaimente la comunicacion estG bosada en el paso de mensaje. Esta técrica apota sincronizacian entre procesos y permite la exclusan mutua, su principal ca- racterstica €s que no requiere memara compariida, por lo que resulta ser muy importante en la programacién de sistemas distribuidos. En este co- pitulo revisamoes diferentes conceptos relacionades cen los proceses y la comunicacion en los sistemas distriouides, come hilos, clientes, servidores, lalomada a un procedmients remote (RPC), el parodia cliente-servidar, la comunicacion en grupa y ia interfaz de sackets. 4.2 HILOS Las hilos se diferencian de las procesos en que los primeros camparten los mismas recursos del programa que las centiene, en tanta los procesas tie- nen de manera separada su cédiga, asi como sus datos, Se pueden identift carhiles de dos tipos de flujo: 56 ‘Sistemas pesTRMIBOE * Flujo Unico: En este coso, un programa utiliza Unicamente un hilo para controlar su ejecucién, + Flujo multiple: Son aquellos programas que utlizan varios confextos de gjecucion para realizar su trabajo, En un sistema multihiles, cada forea se inicia y termina tan pronta como sea posible, esto fociita Ia entracia de dates en sistemas en tiempo real, especialmente si estos datos provienen de diferentes fuentes. En un pro- gama multihile se tiene el hilo principal del programa en ejecucién, quien a su vez flane ofras hilos © fereas paralelas en ejecucién. Un hilo se define come una secusncia Unica de cantral de flujo dentro de un programa, en un programa puede haber mos de una secuencia de contral 5 hilos, Un hile es una parte del programa que se ejecuta independentemente del resto. El hilo es la Unidad ce cddigo mds pequefia que se pueda ejecutar en un enfomo multitareas. El usa de hilos pemnite al prograrmadar escribir progra- mas mds eficiantes, debide a que las hilos perrritan optimizar reacursas tan importantes camo el mejor desempefic del CPU al minimizar sus tiempos de inactividad, El uso de hilos es muy valinso en entomes interactives en red, yo que permiten sincronizar la diferencia entre la velocidad de transrrisidn de la red can las de pracesarriento del CPU. La welecidad en el manejo dal sistema de archives para lectura y grabacién es mds lenta comparada cana velocidad de procesamienta de estos dates por el CPU, en este comp el uso de hilos ayudamucho, Una ce Ios razones de importancia para el estudio de la pregramacin multihiles es que permite acceder a los recursas de tiempo libre dela CPU mientras se realzan otras tareas. La figura ilustra esquemdti- camente un programa de un hile y¥ un programa de cas hiles. Figura 4.1, Comperacién antre hitos: o} Programa con un sale hilo, b] Programa muttihiios PSOcEsOs ¥ COMUICACION sf 4.3 QUENTE En un sistema distribuido, el cliente es el elemento que solicita y usa el ser- vicio que proporciona una funciondidad especiiica o dato. El clente tiene uno pestura proactiva, esto quiere decir que estd trabajando en una torea expecifica y qvande necesita cierto dato.o una operacion especiica inveca al servider para obtenerlo, Generalmente es per medio de la apicacién clien- te que un usuario accede y manfiene un didlogo con el sshema. El usuarie reaiiza el didlogo via una interfaz gdfica de usuario. La operacién cel cliente consiste én arancor, realizar su trabajo y terninar. 4.4 SERVIDORES El servidor es el elemento que proparciona la funcianalidad a servicio enun sistema distribuida. Este servicio puede consistir en Compartir datas, infor- mer sabre una soficitud, compartir recursos fisicas, imprimir, etc. General mente se considera que un servider flene una pesicién reactiva en el siste- me. yo que se encuentra Inactive hasta que recibe und peticién de servicio. Cvando recibe la peticion, la procesa y envia la respuesta al solicitante, para después quedar nuevamente inactive en espera de una nueva peticion, En un sistema. el mode de ejecucién de un servider es continuo, ya que se inicialza ol arancar el sisterna y esta en operacién hesta que el sistema se apaga Un servicer tiene dos modes de oranque: + Estdtica. + Dindmico. Un arancwue estdtice sucede cuande al servider se aranca como parte dal aranque generd del sistema donde se encuentra localiza. En cantraste, Un aranque dindrmice sucede cvande un servidar es octivade por un prace- 50 del chante que salicite sus servicios, Los sarvideres famnan parte importante del middeware basica de un sis- tema distribuide. Entre kas caracteriticas fundementales de los servidores destoca que pueden ser reusables yrelocalizarse, Los servideres pueden ser Usados en diferentes toreas, entre las que se puecen destacor las siquientes: + Servidores de datos. + Servidores de archives. 58 SISTEMAS ASTROS = Servidores de impresin, + Servidores de caren. Servidores de programas. Servidores da bases de datos. Servidores de fecha y hora. Servidores de muttimedia, Servidores de hansacciones, Servidores web. eee 4.5 COMUNICACION ENTRE PROCESOS La comunicacidn entre proceses 6s un factor clave para consiruir sisters distribuidas, los paradigmas de cormunicacion mds usadas en sistemas dis- trilsuides san: * Cliente - servider. * Uomoda o un procedimiento remoto (RPC). + ~Camunicaci6n en grupo. Los Conceptos fundamentales que deben ser considerades para la cam nicacion son; * Los datos fienen que ser aplanacios antes de ser erwicidas. * Los datos tienen que ser representadas de la rrisma manera enia fuente ydestina, * Los dates tienen que empaquetase para ser enviades, * Usor operaciones de send para enviar y receive pera recibir. * Bspecificarlo comuricaci6n, ya sea en mods bloqueante one blequeante. + Abstraccién del mecanbmo de paso de mensaje. * La confiabiidad de la comunicacion. Por ejemplo, usar TCP en jugar de UDP. 45.1 Modelo cliente - servider (C-S) El término cfante - servidor (C-S] hace referencia o la comunicacin en ia que porticipan des aplicaciones. Es decir que est basade en la comunica- idn de uno a uno, La apicocién que inicio la comunicacian enviande una PSOcEsOs ¥ COMUICACION 58 peélicion y esperande una respuesta sé loma cliente, Mientras los serviciores esperan panives, aceplan peticiones recibidas a través de la red, realzan el trabajo y regresan el resultacio 0 un cédigo de error porque no se gener in peticién, Una maquina puede ejecutar un proceso o varios procesns cliente, La transferencia de mersaje en el modelo C-5 se ejecuta en el niclea. Una én general del funcionarniento del cliente - servidor se muestra en la figura 4.2, dende un servidar espera una peficién sobre un puerte bien conecide que ha side resevade para cierto servicio. Un cliente reserva un puerto arbitrario y ne usado pera poder comunicase, Figura 4.2. Modelo clente - servidor Caractersticas del software cliente - servidor El software clente es un programa de apfeacién que se vuelve clente tem- poral cvandose necedia acnesoremato. Este programa lama drectamente al usuario y se ejecuta slo durante una sesidn, Se ejecuta locaimente enia computacam del usuario ¥ se enconga de iniciar el contacto con el servider, Este pragrama puede acceder a varias servicios y no necesita hardware es- pedal ni un carmpigjo sistema operative, Por su parte, el software servider 8.UN programa especial de propasites dedicades a ofrecer Un servicio pero que puede monejar varias clientes remotes al mismo tiempa, Este programa se inicia autométicamente al aranque del sistema y continuard ejecutan- dase en varias sesiones, El servidor espera pasivamente el contacto de los clentes remotes. Por lo general, el software servider necesita ser instalado enuf sibtema operative mas rolbuste y contar con mucha capackdad de re- curses de hardware, En la figura 4,3 se muestra un seudecécige para un eco {echo] para un clente - servidor (C-S). 60. SISTEMAS ASTROS Figura 4.3, Saudecédige para un eco entre ciente yservidor [Lin, Hsieh, Bu, Thomas & McDonald, 1995] La camunicacian clente - servidor puede ser implementada a traves de licrerias PVM (Paralel Virtual Machine] © sockets que pemiten implemer- tor comunicaciones bloqueantes y no bloqueantes, ademds de que también pueden usar TCP pera tener comunicociones confiables. Deficiencias del modelo cliente - servider + El paradgma de comunicacién es la entrada/saida [E/5). ya que estas no son fundamentales en el cémputo centalizade. * No permite la trangparencia requerida para un ambiente distribuide. + El programadar debe de atender la transterencia de mensajes o las E/S, tanto del lade del cliente coma del lada del servidior. 4.5.2 Uamada de procedimiento remota (RPC) La lamada de precedimienta ramoto, mejor conacida came RPC. es una vaoriante del parndigma clente - servidor y es una via para implementar ania realidad este paradigma. En el RPC, un programa llama a un procedimiento- locaizade en olra maquina. El pragramedar no se preocupa por las transfe- rencios dle mensajes o de las E/§. Lo idea de RPC es que una llamada o un procedmiento remoto se parezcalo mds posible a una lomada local, esto le permite una mayer trarsparencia, Pora obtener dicha trarsparencia, el RPC usa Un resguordo de clenfe, que se encaga de empaca los parkmetros en un mensaje y le solicita al nicleo que envie el mensaje al servider, posterior mente se bloquea hasta que regrese la respuesta, PSOcEsOs ¥ COMUICACION cr Algunos puntos problemdticas del RPC son: * Quese deben de usar espacios de cirecciones distintos, debico a que se gjecuian en computadorcs diferentes, + Comolas commutadoras pueden na ser idénticas. la transferencia de pa- rametros y resultades puade complicare, + Ambas conmputadsras pueden descomponerse, Modo ce operocién del RPC En Ia figura 4.4 se muestra una lamada a un procedimiento remota, el cud 86 real@a corsideranda los siguientes pasos: 1. El procedimiento cliente lama al resquarde del cliente de kx manera usual, 2. El resquardo del cliente constuye un mensaje y reaiza un sefalamiento alnuclaa, El nuiclee envia el mersaje al ndcles remate, El ndicles remato proporciona el mensaje al resquarde del servicer, El resquordo del servidar desempoacalos parametres y lama of servider, . El servidor realia el trabajo y regresa el resultade al resquarde, El resguordo del servider empaca el resullade en un mensaje y hace un sefdanienta mediante el niclea. 8. El nucleo remato envia el mensaje al nucleo del cliente, 9. El ndcleo del cliente da el merscje ol resquarde del cliente, 10. El resquardo desempaca el resultado y lo entrega al cliente, Neo Re Figura 4.4. Modo de operaciin de un RPC entre un proceso cliente y uno servidor fa SISTEMAS ASTROS En el seudiacddiga de la figura 4.5 se indica un ejemplo de fragmentos de un RPC. Figura 4.5, Fragmmentes de cllente - servicoren RPC Comunicacién tansparerie 4 4.5.3 Comunicacién en grupo En un sistema distribuide puede haber comunicacién entre procesas de une a muchas o dé uno a muchas, come se indica én la figura 4.6. Las grupos son dindmicas, lo cual implica que se pueden crear nuevas grupos y destruir grupos antericras, Las técnicas para implantar ja comuricaciin en grupos pueden ser + Transmisién de multidifusién (muticast} * Transmision corpleta * Transmisién punte o punte Figura 4.4, La comunicacién an grupo se daentre un emiser [E} y varios receptors (R}) Con respecto a los aspectos de disefio de los grupos, se fienen las si- guientes opciones [lanenbaum, 1996): PSOcEsOs ¥ COMUICACION 6a * Grupos ceracas: Por ejemplo, él procesarniento paralela. + Grupes abiertos: Par ejempls, el soporte de servideres recdundantes, * Grupo de companens: Permite que las decisiones se tomen de mane eolectiva, * Venta: el gupe de compariers es simético y no tiene punto de falla. + Desventaja: la tama de decisones per vatacion es dificil, rearetraso- yes castosa, * Grupo jerdrquico: Existe un coordinader y varias frabajaderes. * Membresio de grupo: + Penrite crear, eliminar grupos, agregar o eliminar procesas de grupos. © Ufa técrices comola del servider del grupo a membresa distinvida, « Existen problemas de detecciin cuande un miembro ha fallado. * Bireccionamiento af grupo: Les grupos deben de poder dreccionare, Estas puecien ser: * Dreccian Unica grupal + Dreccidn de cada miembro del grupo: * Direccionamiento de predicacas + Primitives: Las primitives de comunicacian son: * send y receive, dela misma forma que en una comuricacién puntual = group _send y grop_receive pora comunicacion en grupo + Atomicidaci Se refiere a que cuando se envia un mensaje a un grupo. este debe dé llagaries a todas los miembros o a ninguna, asi came ga- rantizar ka cansistencka, * Ordenamiento de mensajes: Esta conuntoda conta atamicidad y permi- te que la comuricoci6n en gupe sea facil de comprender y utilizar. Los eriterias son: + Ofdenarniento can respecto al tiempo global * Ordenamiento consitente + Ordenarriante con respecte a grupos traslapadas * Bcalabildad: Permite que el gripe coniinde funcionanda, cun cuando se agrequen nuevos miembros. 4.4 Interfaz de programacién de aplicaciones (API) Las apicaciones clientes - servider se valen de protecoles de transporte pera comunicorse, Las aplicaciones deben de egnecificorlos detales sobre el tipo de servicio (cliente o servidor), los datos a transrnitir ¥ el receptor donde si- tuar los dates. La interfaz entra un programa de apicacian y los protocalas cs SISTEMAS ASTROS de comunicacién de un sistema operative se llama interfaz de programa clin de aplicaciones (API). Un API define un canjunte de procedimientas que puede efectuar una apicacién alinteractuar canal protecole, Por lo general, un API tiene proce- dimientes pora cade operacion bagea. Los pragramaciores pueden esceger Una gron veriedad de APIs pera sistemas clisiribuicas, Aigunas de estas son BSD sacket, Sun's RPC/XDR, libreria de paso de mensajes PYM y Windows Sockets. La AP| de socker, que tuve sus ofigenes en el UNIX BSD, se con virtié en una nerna de facto en la industria y muchos sistemas operatives la hen adoptads, tanto para computaderas bosadas en Widows fwinsack} come pan algunos sistemas UNIX. 4.6.1 Lainterfaz de socket Un socket es Un punto de referencia hacia donde los mensajes pueden ser enviades, o de donde pueden ser recibices. Al llamar la apicacién ¢ un procedmiento de socket. el control pasa o una rutina de la biblioteca de sockets que realza las lamadas al sistema operative para implementar la funcian de socket. UNIX BSD ylos sistemas derivadas contienen una biblio- feca de sockets, ka cual puede ofrecer o las aplicaciones una API de socket en un sistema de cémputo que no ofrece sockets originales. Los sockets emplean varios conceptos de otras partes del sistema, pera en particular estn integrades conta E/S, porlo que una apicackin se can nica con un socket de la misma forna en que se transfiere un archive, Quarr de Una aplicagian crea un sockel, recioe un descriptor para hacer referencia @ este, Si un sistema usa él misme espacio de descriptar para los sockets y otras E/S, es posible empleor lo miso opicacién pera transferir datos lecak mente come pera su uso en red. La ventaja del métods de socket es quela mayor parte de las funciones tienen tres o menas pardmetras, sin embarga, $@ debe llamar a varias funcianes a este métoda. 4.6.2 Funciones dela API de sockets Las funciones relacionados a la API sockets que permiten establecer und coamunicacion entre das camputaderas son: PSOcEsOs ¥ COMUICACION 65 socket } Esta nufina se usa poro crear un socket y regresa un descriptor comespon- diente a este socket, Este descriptor es usado en el lacio del cliente y en el lade del servider de su apicacién, Desde el punto de vista de la apicacion, el descriptor de archive es el final de un cand de camunicacién, La rutina retoma -1 si ocure un error. closet } Indica al sistema que el uso de un socket debe de ser finalizado. Sise usa. un protecalo TCP [ofentade a conexidn), close temmina la conexidn antes de ceraro. Cuando 4l socket se ciera, se libera al descriptar, por lo que la api- cackin ya ne transmite dates y al protocols de trangpartacién ya ne acegka: mensajes de entradas para el socket, bind() Suministra un nme a una direccién local a asociar con el socket, ya que quando Un socket es creado no qventa con draccién alguna, listen( ) Esta rufina prepora un socket par aceptar conexiones y solo puede ser usa- da e@n sockets que utilizan un cond de camunicaciin virtual, Esta rutina se deberd usar del lade del servider de la aplicacién antes de que se pueda aceptardiguna salicitud de conexén del lade del cliente. El servider ancola las solicitudes de los clentes conforme estas legan. La cola de solicitudes permite que el sistema detenga las solicitudes nuevas mientras que el servi- dor se encarga de las actuoies. accept ) Esta rutina es usada del lade del servidor de la aplicacién para permitir aceptor las conexiones de los programas cliente. Después de configurar una cola de datos, el servider lama accept, cesasu actividad y espera uno solicitud de conewén de un programa clente. Esta rutina solo es valda en proveedores de transporte de circuito virtual, Cuando tlega una solic fud al socket esnecificade accep | llena la estructura de la diraccién, con la dreccién del cliente que solicita la conexiin y establece la langitud de la direceién, ancepi{ ) crec un socket nuevo pera lo conexidn y regresa su descriptor al que Ip invoca, este nueve socket es usade por el servider para comunicase con él clente y al terminar se ciara. El socket original es usade- por el servider para aceptar la siguiente canexian del cliente. 66 SISTEMAS ASTROS connect( } Estarutina permite establecer una conexion a otro socket. Se utiliza de! lado del cliente de la apicacién permitiende que un protocol TCP inicie una conexi6n en la copa de trarsperte para el servider especificade, Cuanda 86 utiiza pora protaceles sin Conexidn, esta nutina registra lo dreecién del servidor en el socket, esto permite que el cliente transmita varies mensajes al mismo servider, Usvalmente el lado cliente de la aplicocion eniaza a una direccin antes de usar esta rutina, sin embargo, esto na es requerida. send{} Esta rufina es ufiizada para envier datos sobre un condi de comunicacién tanto del lade del clente come del loco servidor dela apicacién. Se usa par sockets ofentadios a conexion, sin emberge, podia uiilizarse para datagra- mcs pera haciendo use de connect/ | para establecer lo direccién del socket. sendtof ) Permite que el cliente o servidor transmita mensajes usando un socket sin cenexi6n (usando dofagramnas), Es exactamente similar a send) sala que se deberan especificarla dreccién destina del socket al cual se quiere enviar el dato, Se puede usar en sockets orlentados a conexidn pero al sistema igna- rara la dreccién destino indcada en sendiay J. recvl } Esta rutin lee dates desde un socket conectade y es usade fanto en el lado del chante came del lado del senidor de la apicacian. recyfrom| } Esta rutina lee dotes desde un socket sin Conexion. En este coso, el sisterna re gresalo dreccién del transmisor conlos mensajes de entracia y permite registrar la direccion del socket transmisor en la misma forna que espera senatof |. por la que la anieecién usa la dreccion regitracda came destino de la respuesta. 4.6.3 Ejemplo de cliente servidor usando socket 46.3.1 Comunicacién erientada a conexién [TCP} Un servicio orentade a conexién requiere que dos apicaciones establezcan una conexion de transportacién antes de comenzar el envio de datos, Para establecer la comunicacion, amiocs aplicaciones primero interactuan locat PSOcEsOs ¥ COMUICACION oF mente con protocole de transporte y después estos protocalos infercar- blan mensajes por la red, Una vez que ambes exiremes estan de acuerdo y se haya establecica la conexi6n, las aplicaciones podran envior dates. La secuencia de lamades pan un escencric oflentade a conexdén se indica en la figura 4.7, Figura 4.7, Use de! API socket para una comunicadién, offantoda o conexién JJomsa & Cope, 1994] Procesa servicor =~ | am Eolacande a ena Bind * we! aD coraxcn ar Bloque ef proceso hasta recibar una petcidn de conenife del canto. Agestun Acaptals cosaetn — Pattie oe conan Recibe y emin ‘oa daten Enwin y Race tes danas. Clore el canal Cours dl canal En Ia figura 4,7 se observa que, después de lamar o listen( J, el servidor $@ pone en modo pasive hasta que recibe una salicitud del cliente, Cucnda lasolicitud de servicio del clente lega al socket monitoreads por la funcién oeneni). se cea de modo automatica un socket nuevo. que sera conectada inmediatamente con el proces cliente. Este socket se llama de servicio ¥ se clera a temninar la transferencia de dates. El socket original que recibid la solicitud de servicio pemanece ablerto en estade de escucha para seguir aceplande nuevas solicitudes, c SISTEMAS ASTROS 4.6.3.2 Comunicaciin sin conexidn o servicio de datagoma El servicio de datagrama [ver figura 4.8) Jarrsa & Cape, 1996] es similar o enviar una carta pastal. El lade clente actia came la pesona que envia ka carta y el lade servider come la persona que le recibe, El servider usa bas llamades 0 socket/ ) ¥ bind| } pera crear y unir un socket. Como el socket es sin Conexdn, se deberan usar las lamadas 9 recvitom/ | ¥ sendto/ }. Se llama a la funeidn bind! } pero no a canneci] }, dejando esta Ultima camo opciondl, La direccién destino se especiica en la funcién senatos }. La fure cidn recvirom/ ) na espera conexién sino que responde a cualquier date que lleque al puerto que tiene enlazado. Figura 4.8, Comunicaciin pera apkcaciones que usan datagrams JJomsa & Cope. 1776] Proceso sarvidor Procesoctiente Apeciun del canal Aperure de can Eniazondo 9 une srocciie Putco 08 comma Enpere le tegade de cmagaras Dirin datezares, Erin dunpacrans Espers in tegade de saciyarnss Cas dal at mad Evercicios 1. Expiica las tres cosas que debe garantizar un MUTEX. 2. Dadaslas variables X y¥Z, canhilo H1 fijande anioos variables a 0 mien tras hilo H2 fija a ambes variables en |, escibe el seudecddiga de un MUTEX que garantice la consstencia de ambas variables, PSOcEsOs ¥ COMUICACION 63 i Multicast es una tecnologia pora comunicacién en grupo, exolica su funcionamienta. Cita cl mencs tres funciones relacionadas can los hilos y el uso de cada una de ellas, Cita di menes tres desventajas del modelo clente - servidor_ Expiica la diferencia entre el RPC y el modelo cliente - servidor. Explica la diferencia entre envio de datagrams y flujo de datos. 2Cudnde es importante usar una comunicacién ofentada a conexian? #Cudnde es importante usar una cemunicacién sin conexién? #Cudl es lo diferencia entre un servidor de transacciones y un servider de archives? 2Cudl es la diferencia entre una funcion send) y senctto |? ACTIVIDAD INTEGRADORA 1 Dela apicacién de los cantenicios, asi como de las hablidades y actitu- des desarolladas, $e racomienda expascionas por parte del profesor, asl conno practices: del laboraterio que permitan al estudiante entender el use y programe Gdn de los hilos en un entome distibuido. También se pueden realizar practicas de programacién de sockets en cose de que los alurnnos corez- can de estas conocimientas, asi coma ejemplos can RPC o Java RMI, Por la impartancia del tema, se recamienda desarrollar el conterica en un promedio de seis seslones que inchyan trabaje intense en él labaratario. El dumne debe de mostrar un gran interés per pregramar apicacianes distriouidas que involucren canceptes de hilos, objetos y diferentes nive- les de transparencia, re SISTEMAS ASTROS 2. Dallogra de los abjetives establecidos en el capitule 0 apartade del ma- terial. Se espera aicarzarlas objetivas de este capitulo con el apayo en la salu- cién de los ejercicias, asi coma en la programacion de diferentes madelos de comunicacion que invalucren aigtin nivel basco de transparencia, mm Capitulo 5. Sincronizacién Objetivo: Que el alumno anaice y comprenda las diferentes algaritmas rela- Gionades con sincranizacion, exclusion mutua, eleccian y camsenso distribui- dos, asi camo la importancia de estos én el disefio de sistemas distribuides. §.1 INTROBUCCIN La sincranizacién en sistemas distribuidas es mds complcada que enwun sis- tera centralized, ya que se debe de considerar algunos de los siguientes puntos: * Quela informacién se distribuye en varias maauinas. * Los pracesas foman decisiones con bese en informacién local. « Se debe evitar un punto Unico de fala. * No existe un reloj comin. come tarmpece otra fuente de tiempo global. 5.2 SINCRONIZACION DE RELQJES Pera lasincronizacién de relojes existen las siguientes altemativess: Relojes lagicos Seguin Lamport, la sincronizacién de relojes na debe ser absolute, debi doo que si dos pracesos no interactéan entre si, no requieren que sus relojes estén sincronizacas. * Lo distorsién de reloj es lo diferencia entre los valores de flermpo de los diferentes relojes locales, + Aqui importa el orden de ocurencia de los eventos, ne-la hora exacta, Relojes fisicos + Usan el tiempo atémice intemacional (TAl) y el tiempo coordenac uni- versal (UTC). n SISTEMAS ASTROS * Se pueden sincroniar por medio de radios de onda carta, + También se puede usar satelite pera sincranizar. 5.3 ALGORITMOS PARA LA SINCRONIZACISN DE RELOJES 5.3.1 El Algoritmo de Lamport Lampert define una relacién temporal lamada: ocure antes de. Por ejam- plo, [a |) 6) se interpreta came “a ocure antes de b", Para ilustrar este. consideremos lo siguiente stuacidn: 1. Sia yb son eventos del misrna proceso ya ecume antes que b, enton- ceso (1b 6s verdadero. 2. Sia es un envio de un mensoje por un proceso y b es la recepciin del mensaje por otro proceso, entonces a —] b es verdadero. 3. Eventos concurentes: si a | 6 no es verdadero ni b (|. fampace. Se requieren valores de tiempo para medir el tiempa: * Sia b, entances C ja) < C fp). « Cslempre es creciente (se pueden hacer comecciones hacia adelante pero no hacia otras). * Pera todas los eventos a yb. tenemes que Cla) ‘C /b}. Un ejemplo de tres procesos (P1.P2 yP3). dende cada uno tiene su propio: reloj a diferentes velocidades se muestra en la figura 5.14, mientras que en la figura 5.16 se muestra la coreccién da los relojes usanda el algeritme de Lampert. Figura 5.1. Un ejemplo del algaritmo de Lamport en tres proceses ‘SwucRONIEAC Ie 3 5.3.2 El algoritmo de Christian En este algoritma un servicor central pravee el tiempa por peticién del Usuario, este servidor es conocicie come servidor del fiempo (ver figura 5.2). Figura 5.2. Actvaizande la hora a trowés de un servider de tlemiaa emusora To _ th Importante: Soli: 4 Toy Ti se miden con foe | | caviar olarak act maquina emisora Scrvidar de tempo La operacién de este algaritme se resumes continuacién: * Periécicomente cada maquina envia un mensaje pera solicitar el fiempo actud o este servidor, + Elservider de tiampas regnonde can un meréaje que contiene el tiempo actud t. + La maquina emisora puede poner su fiempo ent + Tyr. * Un problema grave es que, come el tiempo nunca come hada atrds, e! walor actudl del tiempo del emisor podria ser mayor al wolor de HT 9-10 que perudicaria a los archives compiades. + Otro problenna és el tiempo de propagacion T,,.,J. el cud es distinto de Oy varia segun la carga enla red. + Una estimacién del tlempo de propagacién seria realzade por el rela) de la maquina emisora caloulanda {T, - T,)/2 e incrementéndole al llegar el valor tf. * $1 se conece el tiempo que tarda el servider en manejar la interupcién (f). la esfimacién de fiempo puede mejorar con base eno siguiente ex- presion; (T,-T,-t) 42. * Christian sugiere hacer varias mediciones pera mejorar la precision y descortarlos valores limites de (T,-T,). ya que estos estan en funcién de Io operacién de la red. rs SISTEMAS ASTROS 5.3.3 El algoritmo de Berkeley En este algoritme una comeutadara maestra pide perédicamente alas com putadoras escavcs sus relojes y efectia la sincronizacién (ver figura 5.3). Se calcula un tiempo promedio, el cud es tomade camo base si este no se dife- rencia més de un walor bose. La computaciors mostra envia los desfases de tempo o los escieves para que avancen sy reloj o disminuyan la velocidad del misme hasta lograr una reduccién especifica. Figura 5.3. Representacién del algedtmo. de Berkeley [Fonenbour & Von Steen, 2008) a 4 05 Elman la nace a las clan come wjoscar Hu releyes 820 Elmeecton grogert & ins clowns fos valores oe sus alge 5.4 Exclusion MUTA. En los sistemas clistrbuicas existen situaciones en que hay recurses compart. doslas cudesne pueden ser utiizadas pormds de un proceso al mismo tiempo. En sittemas que campartan memoria s¢ pueden utilizar semdforas o monitores para garantizar el uso dela regign crfica de mene exclusiva, Sin erbergo, en los sstemas distribuidos, los procesos ya no comparten la memoria fica, per ello se deben de idear otros algoritmas que geranticenla exciusién mutua. Los requisites basicos que debe cumplr un algaritmno de exciusién mutua son: * Inanicién. * Seguridad. * Orden. La inanicién cukda que un procesa que desea entrar en una region erfica pueda entrar en algun tiempo, lo cual implica que na se deben producir interoloqueos ni inaricién, La seguidad se refiere a que lo exclusdn mutua debe ce gorantizar que en la regién crifica, cvande mucho, solo se ejecute ‘SwucRONIEAC Ie 75 Un proceso éniun momento dade. El arden implica que el acceso a laragién aitica debe de realzarse siquiende el orden cama prapuesta por Lamport “sucedié antes". Para garontizar que ningun proceso entre en una regién aitica mientras esta sea ocupada por otro praceso en sstema cistripuide, 56 usan los siguientes algoritmos: + Algoritmo centraizade. * Algoritmo cistribuido (Ricat y Agrawal). * Algoriimo de onillo de token, 5.4.1 Algoritmo de servidor centralzacdo Este algoritmo simula un sale procescador pora realizar la exclusién. El algo- ritme nombra a un proceso coondinader En este algeritma el coordinador da acceso a la region critica al que posed un taken flo dewuelve al coordina- dar). Cuando un process sale dela region critica libera el token. El coardi- nader permite la entrada erviande el token one [parale cual no envia alge © puede envicr Un permiso denegacie}. Los problemes de este algorimo se presentan cuando el coordnader fala © cuando fala el poseedor del token. Un sale coordinadar en un gran siste- ma puede ocasionar un cuelo de botella. La figura 5.4 muestra un ejemplo de came opera este algoritme. ®®@ Process Pl asicha pore eccader al mmorecuraa el camrdnedoene: reiponde [Regier mea iia ceomenene OF toresees COMTERT quan sees 4 ae « ®@ ak oe re SISTEMAS ASTROS 5.4.2 Algoritmo de Rican y Agawela Este aigoritme esté bosade en un consenso distribuide y requiere de un arden para todes los eventos en el sistema [lananbaum & Yan Steen, 2008). Cuando un procese desea entrar a la ragién critica, corstuye un mensaje formade por su nambre, su numero de proceso y Ia hora actual, Desoues, este mensaje es mandado a todes los process, incluyéndase el mismo. Asi. $@ considera que la comunicadcion es confable. La figura 5.5 muestra un es- cenario de este algoritme, * Cuando un procesa recibe el menscje se pueden presentar tres altemativas: Q) Si el proceso recepter no esta en la regién aitica y tarmpeco desea entrar, ervia Un mensaje de OK al proceso emisor. b) Si elreceptor se encventa enlaregin oftica, no responderd y sala colocard ia solicitud en una cola. ¢] Si el receptor no esté en laregin aftica pero desea entrar, compe ralo efiqueto de tiempo del mensaje recitide con lo suya, ka menor gona. $i el mensoje recibicio es menor al suyo, ejecuta el pase al, pero 5] @5 Mayor al suya ejecuta el paso b]. * El proceso solicitante espera el permiso de los otros, entences entra ala tegién criica fPecuse compartida), si no ocurre asi se bloquea, + Cuande sale dela regién critica envia un OK y soca a todos las pracesos ensu cola, + Los problemas que presenta este algoritme son: + Que requiere mucho mds mensajes que el algoritme de servider cen tralizada. * Que no existe Ia tolerancia a fallas para ninglin procese, Figura 5.5. emplo de Algoritmo de Ricarl y Agrwain Acreds neces ‘SwucRONIEAC Ie 1 5.4.3 Algoritme de anillo de token Este algoritme distibuido tue propuesta per Lann [1977] para cicangar ex- clusi6n mutua en un sstema distibuide. En este algoritmo los procesos pue- den estar desordenadas [ver figura 5.6) y apera coma sigue: Premisas: + Todos los equipes conectades forman un anillo igico. * Cade proceso es un nedo del anillo yse le asigna una posicién enel anillo. + Cada nede del anille debe de saber cudl es la direccion de su vacino, Operacion: + Alarancar el sistema, al proceso de pasicién | se le da un token, el cud iré cireviande por el anillo. * Cuando el proceso k tenga el token, debe transferifio mediante un men- soje al proceso k+l. * Asi, al token ira pasando por todos las nodas del anilla. * Cuando un proceso recibe el token, si quiere entrar 9 la regin aiitica, tefiene el token y entra en la region atica, * Cuando el proceso sole de la region critica le posa el token ol siguiente nado del ania, Este algoritme no respeta el orden y puede requerir de 1 mensaje (en el mejer de les casos) a n-] mensajes fen el peor de Ins casos) para conseguir entrar a la region critica. En cose de perderse un mersgje con el token seria dificil detectarlo, porque se puede suponer que algun proceso esta usando: el taken. Si fala cualquier proceso del anillo estando en ta regién critica también es un prablema en este algeritme, ya que es dificil de datectaro, Figura 8.4, Algoma de cil de token (laneriaour & Von, Ania iégiea com taken a SISTEMAS ASTROS 5.5 ALGORITMOS DE ELECCIN Una eleecién es un procedimienta que se llava a cabe por los procesas de clerta grupe para escogera aigune para Una taren expeciica (ejarplo: coor dinacion). El objetive del algoritme de eleccién es asegurar que cucnde se comenza una tarea, se concuya que todos los procesos estan de qaoverdo en quién es el nuevo coerdinader, Un algaritme de eleccién para realzar este procedimiento emplea tres tipos de mensaje: + Anunciacién del evento de eleccién, * Votocién, + Anunciacion del resultade de Ia eleccion 5.5.1 El algoritmo del Grandulon El aigoritmo del “Grandulén” es un algeritme pera elegir un proceso coor dinader y fue propuesto por Garcia Molina, en 1982 [Coulouris ef af. 2012], [fanenbaum, 1994]. En general, el método a sequir es el siquiente: Premisas: + Elsstema es sincrane y utiliza flarmpo de espera pera la identificacién de fallas en los procesas. «* Se permite que los procesos se bloqueen durante la ejecucién del algoritme, + Lo entego de mensajes entre procesos se supone fiable y dentro de un perioda maxima «Los proceses estan ordenadas, tienen un unico identificador (IDs) cono- ido y se sabe cudnios process existen. Tipo de mensajes: ©) Mensaje de Beccién: comunica que se saleccianard un nueva coardinador. * Mensaje de Respuesta: 6s una respuesta al mensaje de eleccion, * Mensaje de Coardinador comurica el ID del proceso seleccionada come coordinacor. Operacién: 1. Un procesa x manda un mensqe dé eleocian a todas aquellos procesas que tengan un identificader mas grande cuando detecta que el coord nader ha fallade, ‘SwucRONIEAC Ie rr 2. El proceso x espera los votos y, $i ningun vate (ok) lega desouds de un. cierto tiempo, el proceso x se deciora ccordinadar, y envia el mensaje de- coordinader a las procesas con identificador mas pequefio que el suyo_ 3. $i] un voto lego [aunque pueden llegar varios votes), puede ser que otro coardinador sea declarade ganador, 4. 5] un proceso recibe un mensaje de eleccién, envia un vote y atra elec- clon empieza (pase 4 de la figura 5.7], 5. Cuando un coordinacor que habia follade regresa, empieza una eleccidn y puede volver a readquirr el control, aunque exista un coordinadar octal Un ejemplo de céme trabaja el algeritme del “Grandulén" se muesira en la figura 5.5. Figura 5.7, Gemplo del cigcritme del “Greandulin" Ford elegire un nueve coordinador © @ @ @ ® @—=—_6 & eo © 1 Proceso 4 datecta ques! 2 ProcesoPu notiica a jos procesoucon mayor Ceardinador (ProcesoPT}ha fellada [D.que! suy, que # Coordinader he fallado ®” @ ® _—— swe * 8 ¢ *@ K/e 3. Lonproceson actives quehan 4 LosProcesas PSy Pérepiten tos recibido el mensaje, regresanun Om pasos etectundos poral Proceso Fd co SISTEMAS ASTROS @ ®, ® at i e\ Wy 5 ElPracesoPGenvia OKel procesoPSy 6 Proceso PStana el mayoriO, se prociama detecta que es ol procesocconmayor 1D Conrdinadery bo comuniea a lt ote §.5.2 Algoritme de anillo Otros algeritrnios de eleccién se basan en fopologias de anillo, ya sea lb- gice © fkice, Existen varies algoritmas de eleccian basades en anillo, Sin embargo, aqui se describe el algoritmo de anillo de Chang & Roberts [1974] besado en el principio de extincién selectiva, Este algoritme se usa cuando: + Los procesos estan fica o ldgicamente ordenades en anillo. * Nose conoce el numero total de procesas (nm). * Cada procesa se comunica con su vecino (zquierda o derecho). Qperacién fia figura 5.8 ilustra la operacién de este aigartmo): Inicialmente todas los procesas son “ne participantes". Qualquier proceso P decide arancer una eeccion en cualquier momenta, Este proceso P se pone en estade “parlicipante" y envia un mensaje de eleccion M 9 su vecino, 4. El mersoje M enviade contiene el ID identificader) del proceso que ha iniciade la eleccidn, 5. Cuando el vecino recibe el mensaje de elecadn M, establece su estado como participante y comprueba el (D del mensaje. 6. 3] es mayer que su propio ID, entonces se lo envia drectamente a su veeino. 7. $i suiD es mayor al ID recibido, entonces lo odeca en el mensaje Mylo envia a su vecino, 8. Asise crovla el mensaje M sucesvarnente hasta que llaga a un proceso P, que compruebo que el ID recibide es el propio. Eso indica que solo ha sobrevivide el mayor ID, que es la del proceso P,,. PPS ‘SwucRONIEAC Ie a 9. Enfonces, este proceso P, es el coordinador y lo nofifica a su vecino. ‘Quando un proceso recibe un mensaje de coordinader debe de poner su estado came “no participante” y enviar el mensaje a su vecino. 10, Cuando el mensaje de coordinader retema al proceso que lo emitié (el coardinador), entances todas las procesas saben quién es el coordina- dar y todas quedan en estado “no participantes", En coso de que dos procesas inicien al mismo fiempe una eleccién y se envien mensajes de eleccian, un proceso en estado de “porficipante” debe de verificar el ID del proceso que envia el mensaje de eleccién. Si es menor al propia, el mensaje se descarta, Asi, todas los mensajes de deccién se extinguiran, excepto el que leva el ID rds alte, Figura $8, Algoritma de eleccidn que utiliza un oniko e°o @ @ .,* ‘Todos ies nodos en estado ‘no partcipente’. «Nod 2 emia un “mensaje de sleccién’. Node PT Falla y to detecta PY ‘Panticipantas”: P1, PS, P4, PS, P2, PS y PO, La circulacién el mensaje se detiene al llegar al nodo PS cy SISTEMAS ASTROS 5.6 ALGORITMOS DE CONSENSO. La gran mayora de los investigadores del drea considera que el problema fundamental del computa distribvide es el carserso distribuide. Es decir, come lograr que un Conjunto de eracesos, ejecutandese en distintes neces, 3@ pongon de acuerdo con respecto al valor de un dato. Par que cualquier protocols de coerdinacién funcione corectamente, se basan en que todos las pracesadores Carrectas se pongan de acuerde con respecta al valor del date que infercambian. El problema del consenso cansiste en conseguir Que, oun en presencia de procesadores errdnees, los procesadores corec- tos sean capoces de ponerse de ocuerclo con respecto o un water, sin impor- tor que este valor no sea el 6ptime. §.6.1 Problema de los generales bizantinas El problenna de los generales bizontinas fue planteade originalmente por Lampert. Shostak y Peace [1982]. Este problema plantea que un grupo de generales sitia una cided y deben de ponerse de acuerdo o través de un plan de otaque precisamente para atocar o retirarse, independientemmeante de que existan generales traidores. Las generales sale se Comurican a tra- vés. de mensajes 4 los otras generalas. Uno de ellos, el general comandanie. do los rdenes. Los oiras, tenientes generaies, deben de cdecidr si alacaro retirarse. Sin ermbargo, una o mds de los generales puede ser un traidor o pueden falar, Esta traicién puede verse de dos formas: + Los mensajes pueden no llegar 0, dicha de otra manera, las comunica- clones no son confiables, * Un generd traider puede mentir, es deck. un nodo puede falar de ma- nera impredecible. A continuacién se revisa las circunstancias bajo las que se puede lograr un acuerdo entre los genérales leales y cuande este aouerdo és imposible. (Cosa 1: Tres generals Este cogoilustra el escenario para cuando hay un general comandante y dos ferientes generales, y uno de ellos es traider, aPueden los generoles leales llegar a un consenso?, es decir, gacoroer “atacar’ o “retirarse? ‘SwucRONIEAC Ie 8a Asume que el general camandante es el traider [como se ilustra en la figura 52a), Entances, el general comandante indicara al teniente general | “atecor’ y ol feniente general 2 “retirarse". Ambos tenientes trotaran de: verificar la orden recbida comunicdndose entre ellos. El teniente general | indicard al teniente general 2 que recibid la orden de “atacar", mientras que el teniente genera 2 indicara al teniente general | que recibid la orden de “retirarse". Ambos tenientes generales pockdan solo deduci que el genera comandante es fraidor pero na podrdin tomar una decisién consensada, $i se consideran los mismos paricipantes, chera asume que el teniente generd 2 es el traidar. el general comandante es teal, al igual que el tenien- te genera 1. Este escenario se ilustra en la figura 5.9b, donde el general comandante da la orden de “atacar' 4 ambes tenientes genercies, quienes infercambian la orden recibica, El teniente general | indica ai teniente gene- rol 2 “atacar’. Sin embargo, el teniente general 2 es traider, por ello cambia lo orden recbida y le indica al teniente general | “retirarse", Para ambos escenarios, el taniente general escucha dos ordenes distintas, tante del general Comandante camo del teniante genera 2, sin saber core actvar, por lo que en aries escenarios no existe cansense, Figura.$.9. Caso de tres generales conde uno es fraidor. a) El general cemandante 5 el hraider, bj El fenienta general es el raider. No se llega a un consenso- General y General ol Caso 2: Cuatro genercies Ahora se muestra un caso similar ol anterior pera con cuatro genenaies, Hay un general comandante y tres tenientes generales, y uno de ellos es troicor, @Pueden los generals leales lagar a un Consenso?, es deci, apueden acor dar“tacar” o “retirare"? cs SISTEMAS ASTROS Asume que el general cemandante es el traicior yas tres tenientes gene- rales son leales, Independientemente de las Grdenes que reciban los tenien- tes generales del general comandante, ellos las intercarnbian entre si, de tal manera que los tres recibirdn tres mensajes. Al decidir por la mayoria delas ordenes recibidas, los tres tenientes genercies tomeran la misma decisén. En este caso, “atacor’. Este escenario se muestra en la figura 5.100, Si se csume que el comandante general, yllos tenientes generaies | y 2 son leales, excepto el teniente general 3, quien es traidor, sé tendria un es- cenario come el plateade en la figura 5.10b, El comandante general envia a tedios los tenientes generales la orden de “atacar”. Esta orden es retransme- tida por los tenientes generaies 1 y 2.0 los demnds, sin embargo, el teniente general. como es un traider, cambia la orden recibicia y envio a los tenientes generales | y 21a orden de “retirarse", Esto no combia la decisén corsen- sada de las tenientes generates | y 2, ya que por mayoria deciden “atacar’. También se puede notar que el general traider pude haber enviade cuak quiet mensaje sin que esto clectora el consense del resuttada, Figura §.10. Caso.de cuatie generciias done uno es traicor. 9) El general comandante es el fraidor, bl Un teniente general es el traidor. En ambos casos, el consenso es "atacar” El problema de los generales bizontinos es frecuentemente reterda en la folerancia a follas de los sistemas distribuides, también se conoce camo problema de acuerde bizantine. Lamport ef ov. [1982] demostraron que en un sistema Conk procesos defectuosos, el consense se puede lograr sola si estan presentes 2k+! pracesos que funcianen carectamente, para un total dé 3k+] procesas,

You might also like