Вы находитесь на странице: 1из 134

UNIVERSIDAD TECNOLOGICA DE PANAMA

FACULTAD DE INGENIERIA DE SISTEMAS COMPUTACIONALES

LICENCIATURA EN REDES INFORMATICAS

SISTEMAS OPERATIVOS III


APUNTES COMPLETOS, PRESENTACIONES EN PPT, LABORATORIOS
RESUELTOS

PROFESOR MARTIN AROSEMENA

MAYO 2018
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Contenido
MODULO I ..................................................................................................................................... 7
INTRODUCCION A LOS SISTEMAS DISTRIBUIDOS. ....................................................................... 7
I CARACTERIZACIÓN DE LOS SISTEMAS DISTRIBUIDOS. .............................................................. 7
1.1 Panorama general introductorio. .................................................................................... 7
1.2 Caracteristicas de los sistemas distribuídos. ................................................................... 9
1.3 Ventajas de los sistemas distribuidos. ........................................................................... 21
1.4 Desventajas y Factores a Considerar: ............................................................................ 22
1.5 SISTEMAS OPERATIVOS DE RED. .................................................................................... 23
1.6 Diferencia entre Sistemas distribuídos y sistemas centralizados o de red. ................. 24
MODULO II .................................................................................................................................. 34
COMUNICACIÓN ENTRE PROCESOS EN SISTEMAS DISTRIBUIDOS ........................................... 34
2.1 Introducción ...................................................................................................................... 34
2.1.1 Comunicación entre procesos ....................................................................................... 34
2.2 Mecanismo de paso de mensajes .................................................................................... 35
2.3 Comunicación cliente-servidor......................................................................................... 36
2.4 Llamadas a procedimientos remotos (RPC) ..................................................................... 37
2.5 Comunicación entre grupos de procesos ......................................................................... 38
2.6 Tecnologías de comunicación para Sistemas Distribuidos: Sockets (ejemplos: Unix,
Sun RPC, JAVA RMI) ................................................................................................................ 40
Los tipos de sockets son: ........................................................................................................ 40
Ventajas del Uso de Sockets: ................................................................................................. 40
Desventajas del uso de Sockets: ............................................................................................ 41
Qué son los sockets? .............................................................................................................. 41
Propiedades de los sockets .................................................................................................... 41
Existen básicamente dos tipos: .............................................................................................. 41
Tipos de Sockets ..................................................................................................................... 42
MODULO III ................................................................................................................................. 45
MIDDELWARE ............................................................................................................................. 45
3.0 Middleware....................................................................................................................... 45
3.1 Describir el origen, generalidades y diseño de un middleware. ..................................... 45
¿Qué tipos de middleware están disponibles? ..................................................................... 45
Taxonomía de los software middleware ............................................................................... 46
Categoría de integración ........................................................................................................ 46
Orientados a procedimiento o procesos ............................................................................... 46
Orientados a objetos .............................................................................................................. 47
Profesor Martín Arosemena 2 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Orientados a mensajes (MOM, Message-oriented middleware) ......................................... 47


Orientados a componentes .................................................................................................... 48
Agentes ................................................................................................................................... 48
Categoría de Aplicación .......................................................................................................... 48
Middleware para acceso a información (DAM, Data Access middleware) .......................... 48
Middleware de escritorio ....................................................................................................... 49
Middleware basados en la web ............................................................................................. 49
Middleware a tiempo real ...................................................................................................... 49
Middleware especialistas ....................................................................................................... 50
EVOLUCION MIDDLEWARE..................................................................................................... 50
Modelo centralizado............................................................................................................... 50
Modelo Cliente/Servidor ........................................................................................................ 50
Existen modelos basados en cliente servidor que extienden la idea. .................................. 51
Arquitectura en 2 capas ......................................................................................................... 51
Arquitectura en 3 capas ......................................................................................................... 51
3.2 Identificar los diversos tipos de middleware en un sistema con ambiente distribuido. 52
Tipos de middleware ..................................................................................................... 52
Funciones Middleware ....................................................................................................... 53
Componentes Middleware ................................................................................................. 53
Servicios middleware ......................................................................................................... 54
3.3 Describir middleware para sistemas embebidos. ........................................................... 55
3.4 Describir la arquitectura y aplicaciones de un middleware. ........................................... 55
PROTOCOLOS DEL MIDDLEWARE....................................................................................... 55
Ejemplos de protocolos: ..................................................................................................... 56
Ventajas y campos de aplicación del middleware............................................................. 57
Aplicaciones. ....................................................................................................................... 58
MODULO IV: REDES .................................................................................................................... 60
4. Introducción........................................................................................................................ 60
¿Qué es la interconexión de redes? ........................................................................................... 60
Algunas de las ventajas que plantea la interconexión de redes de datos, son: ....................... 60
Tipos de Interconexión de redes ................................................................................................ 60
Dispositivos de interconexion de redes. .................................................................................... 60
Concentradores (Hubs) ............................................................................................................... 60
Repetidores................................................................................................................................. 62
Puentes (Bridges) ........................................................................................................................ 63
Encaminadores (Routers) ........................................................................................................... 64
Profesor Martín Arosemena 3 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Pasarelas (Gateways) ................................................................................................................. 67


Conmutadores (Switches) .......................................................................................................... 67
4.1 La necesidad de una arquitectura de protocolos .......................................................... 71
4.2 La arquitectura de protocolos TCP/IP ............................................................................ 72
4.3 Sockets ............................................................................................................................ 77
4.4 Redes en Linux ................................................................................................................ 77
4.5 Redes en Windows ......................................................................................................... 77
MODULO V: CLÚSTER Y GRID ..................................................................................................... 78
5.1 Clúster ............................................................................................................................. 78
5.1.1 Introducción ...................................................................................................................... 78
5.1.2 Beneficios .................................................................................................................... 78
5.1.3 Clasificación de los clústers ........................................................................................ 80
5.1.4 Componentes de un clúster ....................................................................................... 81
Nodos ...................................................................................................................................... 81
Almacenamiento .................................................................................................................... 82
Sistema operativo ................................................................................................................... 82
Conexiones de red .................................................................................................................. 83
Middleware............................................................................................................................. 85
Ambientes de Programación Paralela ................................................................................... 85
5.1.5 Sistemas de clústeres implementados....................................................................... 86
Beowulf ............................................................................................................................... 86
Berkeley NOW .................................................................................................................... 86
Google ................................................................................................................................. 86
Cluster PS2 .......................................................................................................................... 87
Cluster X .............................................................................................................................. 87
Red Española de Supercomputación ................................................................................. 87
Thunder ............................................................................................................................... 87
ASCI Q.................................................................................................................................. 88
5.1.6 Aplicaciones de los clústers ........................................................................................ 88
Clústeres en aplicaciones científicas ....................................................................... 88
5.2 Grid........................................................................................................................................ 89
5.2.1 Introducción....................................................................................................................... 89
5.2.2 Beneficios........................................................................................................................... 90
5.2.3 Clasificación de los grid ..................................................................................................... 92
5.2.4 Arquitectura de una grid. .................................................................................................. 97
5.2.5 Componentes de una grid ................................................................................................. 97
Profesor Martín Arosemena 4 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

5.2.6 Sistemas de Grid Implementados ..................................................................................... 98


5.2.7 Aplicaciones de los grid. .................................................................................................. 100
MODULO VI ............................................................................................................................... 102
PROCESAMIENTO DISTRIBUIDO, CLIENTE-SERVIDOR Y CLUSTER ........................................... 102
6.1 COMPUTACION CLIENTE-SERVIDOR. ................................................................................. 102
Arquitectura Cliente servidor................................................................................................... 105
6.2 PASO DE MENSAJES DISTRIBUIDOS. .................................................................................. 108
6.3 LLAMADAS A PROCESAMIENTOS REMOTOS. .................................................................... 110
6.4 Cluster y PROCESAMIENTO DISTRIBUIDO: ........................................................................ 115
6.5 Servidores clusters de Windows ........................................................................................ 116
6.6 Sun clusters ......................................................................................................................... 120
Entorno de hardware de Sun Cluster ....................................................................................... 120
Entorno del software de Sun Cluster ....................................................................................... 121
Supervisor de pertenencia al clúster (CMM) ....................................................................... 122
Depósito de configuración del clúster (CCR) ........................................................................... 123
Sistemas de archivos del clúster .............................................................................................. 123
Servicios de datos escalables ................................................................................................... 124
Normas de equilibrio de cargas ............................................................................................... 125
Interconexión del clúster.......................................................................................................... 126
Grupos de ruta múltiple de red IP............................................................................................ 127
Interfaces de red pública ...................................................................................................... 127
6.7 Cluster Beowulf y Linux ...................................................................................................... 127
Los antecedentes .............................................................................................................. 128
La leyenda. ....................................................................................................................... 128
Bibliografía ................................................................................................................................ 130

Profesor Martín Arosemena 5 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Indice de figuras.

Figura No. 1 Internet como un gran sistema distribuído. .......................................................... 9


Figura No. 2. Un sistema distribuido organizado como middleware. ..................................... 10
Figura No. 4. Modelo cliente servidor. ................................................................................... 102
Figura No. 5. Flujo de llamada a procedimiento remoto ....................................................... 114

Profesor Martín Arosemena 6 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

MODULO I

INTRODUCCION A LOS SISTEMAS DISTRIBUIDOS.

I CARACTERIZACIÓN DE LOS SISTEMAS DISTRIBUIDOS.

1.1 Panorama general introductorio.

Antes de definir lo que es un Sistema Distribuido, vamos a definir un término más general: La
Computación Distribuida, podemos definirla de muchas maneras, este término se utiliza
indiscriminadamente para referirse a cualquier sistema en el que múltiples agentes autónomos,
cada uno con capacidades de cómputo individual, se comunican entre sí y afectan mutuamente
su comportamiento. Los agentes, usualmente llamados procesadores, procesos o nodos,
pueden ser desde computadoras completas hasta autómatas celulares con capacidad de
cómputo y memoria muy limitados que se pueden comunicar mediante mensajes.

La Computación Distribuida hace referencia a cualquier evento en el cual se maneja un sistema


en una red de computadoras y trata de describir las tendencias hacia la funcionalidad
distribuida: sistemas distribuidos, procesamiento distribuido, bases de datos distribuidas y
cualquier otro término computacional que sea distribuido. Podemos decir entonces, que la
Computación Distribuida se refiere a los servicios que provee un Sistema de Computación
Distribuido.

Un sistema distribuído es aquel en el que los componentes localizados en computadores,


conectados en red, comunican y coordinan sus acciones únicamente mediante el paso de
mensajes. Esta definición lleva a las siguientes características de los sistemas distribuídos:

Concurrencia de los componentes, carencia de un reloj global y fallos independientes de los


componentes.

Proporcionamos tres ejemplos de sistemas distribuidos:

 Internet
 Una intranet, que es una porción de Internet gestionada por una organización
 La computación móvil y ubicua.

Compartir recursos es uno de los motivos principales para construir sistemas distribuidos. Los
recursos pueden ser administrados por servidores y accedidos por clientes o pueden ser
encapsulados como objetos y accedidos por otros objetos clientes. SE analiza el web como un
ejemplo de recursos compartidos y se introducen sus principales características.

Los desafíos que surgen en la construcción de sistemas distribuidos son la heterogeneidad de


sus componentes, su carácter abierto, que permite que se puedan añadir o reemplazar
componentes, la seguridad y la escalabilidad, que es la capacidad para funcionar bien cuando se
incrementa el número de usuarios, el tratamiento de los fallos, la concurrencia de sus
componentes y la transparencia.

Una de las primeras caracterizaciones de un Sistema Distribuido fue realizada por Enslow, ya en
1978, que le atribuye las siguientes propiedades:

Profesor Martín Arosemena 7 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 Está compuesto por varios recursos informáticos de propósito general, tanto físicos
como lógicos, que pueden asignarse dinámicamente a tareas concretas.
 Estos recursos están distribuidos físicamente, y funcionan gracias a una red de
comunicaciones. o Hay un sistema operativo de alto nivel, que unifica e integra el
control de los componentes.
 El hecho de la distribución es transparente, permitiendo que los servicios puedan ser
solicitados especificando simplemente su nombre (no su localización).
 El funcionamiento de los recursos físicos y lógicos está caracterizado por una autonomía
coordinada. A pesar del tiempo transcurrido, esta definición sigue siendo, en esencia,
válida.

Así, para Coulouris un sistema distribuido es aquél que está compuesto por varias computadoras
autónomas conectadas mediante una red de comunicaciones y equipadas con programas que
les permitan coordinar sus actividades y compartir recursos.

Bal ofrece una definición muy similar: ``Un sistema de computación distribuida está compuesto
por varios procesadores autónomos que no comparten memoria principal, pero cooperan
mediante el paso de mensajes sobre una red de comunicaciones''. Y según Schroeder, todo
sistema distribuido tiene tres características básicas:

 Existencia de varias computadoras. En general, cada una con su propio procesador,


memoria local, subsistema de entrada/salida y quizás incluso memoria persistente.
 Interconexión. Existen vías que permiten la comunicación entre las computadoras, a
través de las cuales pueden transmitir información.
 Estado compartido. Las computadoras cooperan para mantener algún tipo de estado
compartido. El funcionamiento correcto del sistema se describirse como el
mantenimiento de una serie de invariantes globales que requiere la coordinación de
varias computadoras.

Como lo hemos observado, el término de Computación Distribuida se define de varias maneras


y lo mismo se aplica al término de Sistema Distribuido, así que en lugar de seguir dando más
definiciones de estos términos, nos concentraremos en el análisis de las características más
importantes de los Sistemas Distribuidos, de esta manera podremos construir una definición
propia de lo que es un Sistema Distribuido al finalizar este capítulo.

Una característica muy importante es que las diferencias entre las computadoras y las maneras
en que estas se comunican no son transparentes para el usuario final, esto mismo aplica para la
organización interna del sistema distribuido. Otra característica importante es que los usuarios
y las aplicaciones pueden interactuar con un Sistema Distribuido de manera consistente y
uniforme, sin importar donde y cuando se lleve a cabo la interacción.

Todo Sistema Distribuido bebe también ser relativamente fácil poder expandir, lo cual se logra
al tener computadoras independientes, pero al mismo tiempo “esconder” las funciones de
dichas computadoras en el sistema. Normalmente un sistema distribuido debe de estar siempre
disponible a pesar de que ciertas partes que lo conforman puedan no estar funcionando.

Los usuarios y las aplicaciones no deben de notar en ningún momento que estas partes están
siendo reemplazadas o reparadas, o que se han agregado nuevas partes al sistema para poder
dar servicio a más usuarios o aplicaciones.

Profesor Martín Arosemena 8 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

1.2 Caracteristicas de los sistemas distribuídos.

Características de un Sistema Distribuidos: Cualquier diseñador de sistemas debe tener los


conocimientos necesarios para enfrentarse a todas las complicaciones que pueden surgir al
momento de considerar los requerimientos para el desarrollo de un sistema distribuido. A
continuación explicaremos cada una de las características de los Sistemas Distribuidos, según
Coulouris son estas características, los desafíos que presentan los sistemas distribuidos.

a) Heterogeneidad:

Al hablar de heterogeneidad nos referimos a la variedad y diferencia que podemos


encontrar en los elementos que componen una red de computadoras sobre la que se
ejecuta un sistema distribuido, dicha heterogeneidad no sólo se aplica a las redes y al
hardware de las computadoras, sino también a lossistemas operativos, los lenguajes de
programación y las implementaciones en las que trabajan los diferentes
desarrolladores.

Un ejemplo de esto lo podemos ver muy claro en Internet, ya que es una red que está
conformada por muchos tipos de redes (Figura 1) cuyas diferencias se encuentran
enmascaradas, puesto que todas las computadoras que se conectan a este utilizan los
protocolos de Internet para comunicarse una con otra, así una computadora conectada
a una red Ethernet puede comunicarse con otra computadora conectada a una red
TokenRing, basta con que se haga una implementación de los protocolos de Internet
para cada una de esas redes.

Figura No. 1 Internet como un gran sistema distribuído.

Profesor Martín Arosemena 9 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Otro ejemplo lo podemos ver en los lenguajes de programación y en las aplicaciones


escritas por diferentes programadores; en el caso de los lenguajes de programación es
importante tener en cuenta las diferencias que puede haber en la representación de los
caracteres y estructuras de datos como cadenas de caracteres y registros, las cuales
pueden variar y pueden ocasionar conflictos entre programas que necesitan
comunicarse entre ellos. De igual manera dos programas que son desarrollados por
programadores diferentes tienen que utilizar estándares comunes para la comunicación
en red y para la representación de los datos elementales y las estructuras de datos en
los mensajes, ya que si no se cuenta con dichas similitudes, los programas no podrán
comunicarse entre sí aunque se hayan desarrollado en el mismo lenguaje de
programación.

Un término que no podemos dejar de mencionar al hablar de heterogeneidad es el de


Middleware (Figura 2); este término se aplica a la capa de software que provee una
abstracción de programación, así como un enmascaramiento de la heterogeneidad
subyacente de las redes, hardware, sistemas operativos y lenguajes de programación;
además, el Middleware proporciona un modelo computacional uniforme al alcance de
programadores de servidores y aplicaciones distribuidas que permite la invocación
sobre objetos remotos, notificación de eventos remotos, acceso a bases de datos
remotas y procesamiento distribuido de transacciones.

Figura No. 2. Un sistema distribuido organizado como middleware.


Otro término importante para este apartado es el de código móvil, que se emplea para
referirse al código que pude ser enviado de una computadora a otra para que esta última
la ejecute, un ejemplo de un código móvil son los applets de java, que son enviados del
servidor a la computadora del cliente para que este los ejecute en su explorador de
Internet. Al implementar un código de este tipo podemos encontrarnos con el problema
de que el conjunto de instrucciones (a nivel máquina) de una computadora puede no
ser el apropiado para otra máquina, por ejemplo, un usuario de una PC puede enviar un
archivo ejecutable a un usuario de Linux y este último no será capaz de ejecutar dicho

Profesor Martín Arosemena 10 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

archivo. Para solucionar este problema se han creado lo que se conocen como máquinas
virtuales, las cuales proveen un modo de crear código ejecutable sobre cualquier
hardware, ya que el compilador de un lenguaje concreto generará un código para una
máquina virtual y esta se encargará de “traducir” dicho código al apropiado para un
hardware particular, así, un compilador de Java producirá un código para la máquina
virtual de Java, y esta última sólo necesitará ser implementada una sola vez para cada
máquina en la que se va a ejecutar.

b) Extensibilidad y Apertura:

La extensibilidad y la apertura son dos características de un sistema distribuido que


están ampliamente ligadas la una con la otra. Algunos autores dicen que un sistema
abierto debe de ser extensible y otros sostienen que un sistema extensible puede ser
etiquetado como un sistema abierto. De cualquier manera lo que es importante saber y
tener en cuenta es que un sistema distribuido debe de contar con ambas características.
Un sistema distribuido abierto es un sistema que ofrece servicios desarrollados de
acuerdo a reglas estandarizadas que describen la sintaxis y la semántica de dichos
servicios. Por ejemplo, en una red de computadoras, estas reglas son las que regulan el
formato, contenido y significado de los mensajes que se envían y se reciben a través de
dicha red. Estas reglas son formalizadas en protocolos.

En el caso de los sistemas distribuidos, los servicios se especifican generalmente a través


de interfaces que por lo general son descritas en un Lenguaje de Definición de Interfaz
(IDL por sus siglas en ingles), dicho lenguaje especifica los nombres de las funciones que
están disponibles así como los parámetros de entrada, los valores de salida y los posibles
errores que pueden obtenerse al invocarse dichas funciones. Si la definición de una
interfaz se hace de manera adecuada, esta permitirá que dos procesos puedan
comunicarse entre sí, siempre y cuando ambos procesos cuenten con la misma interfaz.
Esto también permite que cada dos desarrolladores independientes construyan su
propia implementación de dichas interfaces, lo cual conlleva al desarrollo de dos
sistemas distribuidos desarrollados por separado que operan de la misma manera.

Una especificación se considera adecuada cuando es completa y neutral. Completa


significa que todo lo necesario para hacer una implementación de la interfaz ha sido
especificado y que no será necesario que el propio desarrollador sea quien agregue
detalles específicos de la implementación. Neutral significa que las especificaciones no
deben tener ninguna tendencia hacia como se debe de hacer la implementación de
dicha especificación. La completitud y la neutralidad son muy importantes para la
interoperabilidad y la portabilidad, que son características que complementan la
apertura de un sistema distribuido. La interoperabilidad, también conocida como
compatibilidad, caracteriza el grado en el que la implementación de sistemas o
componentes de diferentes fabricantes pueden coexistir y trabajar juntos, siempre y
cuando se utilicen los servicios como este especificado por el estándar común bajo el
cual dichos sistemas fueron desarrollados.

Profesor Martín Arosemena 11 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

La portabilidad por su parte caracteriza a que nivel puede ser ejecutada una aplicación
desarrollada para un sistema distribuido “A” sobre un sistema distribuido “B” que
implementa las mismas interfaces del sistema “A”, pero sin hacerle modificaciones.

Uno de los principales objetivos que se persiguen al desarrollar un sistema operativo


abierto, es que este sea flexible, lo que implica que dicho sistema puede ser integrado
por diferentes componentes (tanto de hardware como de software), posiblemente de
diferentes proveedores, que nuevos componentes pueden agregarse al sistema y que
componentes existentes pueden ser reemplazados sin afectar el funcionamiento de los
componentes ya existentes, en otras palabras, un sistema distribuido abierto debe de
ser extensible.

Para lograr la flexibilidad en un sistema distribuido abierto es necesario que el sistema


este organizado en módulos o componentes relativamente pequeños y fáciles de
reemplazar, esto implica que además de definir las especificaciones y la documentación
de las interfaces de alto nivel a las que tienen acceso los usuarios y las aplicaciones,
también es necesario definir las especificaciones de las interfaces de las partes internas
que componen el sistema y describir de qué manera interactúan entre sí.

c) Seguridad:

La gran mayoría de la información que maneja un sistema distribuido tiene un alto valor
para los usuarios de dicho sistema, y es por eso que la seguridad de la información juega
un papel clave al momento de desarrollar dicho sistema.

La seguridad de la información es todo lo que concierne a asegurar que no ocurrirán


cosas malas con los mensajes que envían los clientes para solicitar información a un
servidor, y por supuesto, con la información que estos reciben como respuesta a sus
peticiones. No basta con asegurar que estos mensajes serán transmitidos de forma
oculta, sino que también hay que asegurar que la información sea entregada
únicamente a quien debe de ser entregada y que esto se hará siempre de forma correcta
y en el momento en que se requiere.

La seguridad es relativa a la amenaza que cada sistema afronta, afecta a todos los puntos
del sistema y debe de ser fácil de obtener. La seguridad debe ofrecer los siguientes
servicios:

 Confidencialidad, es decir, el manejo privado de la información: proteger la


información de ser accedida por usuarios no autorizados.

 Autentificación, o capacidad de asegurar la identidad de un usuario. o


Integridad, que asegura que la información que empleamos no ha sido
manipulada, alterada o corrompida desde el origen.

 No repudio, de una operación de emisión y recepción de información por parte


de los agentes.

Profesor Martín Arosemena 12 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 Control de acceso a la información y/o recursos administrados por un sistema.

 Disponibilidad de los recursos necesarios de un sistema cuando estos sean


requeridos, lo que protege la información contra interferencia con los
procedimientos de acceso a los recursos.

El alto valor de que tiene la información es la razón principal por la que esta se puede
ver amenazada de muchas formas, entre las principales podemos encontrar:

Interrupción: Destruye la información o la inutiliza. Ataca la disponibilidad.

Interceptación: Obtiene acceso a información. Ataca la confidencialidad.

Modificación: Modifica la información. Ataca la integridad.

Fabricación: Falsifica la información. Ataca la autenticidad.

Para defenderse de este tipo de amenazas se han desarrollado diversas técnicas de


encriptación, firmas digitales, implementación de barreras perimetrales (firewalls),
modelos de seguridad internos y externos, etc. Sin embargo, estas técnicas parecen no
ser suficientes para evitar que intrusos logren interferir con el flujo de información
óptimo de un sistema, ya que encuentran formas de “brincarse” las barreras de
seguridad de muchas organizaciones y además siguen ideando nuevas formas de atacar
y amenazar la información, un ejemplo de estos nuevos ataques son los ataques de
denegación de servicio.

Estos ataques consisten en bombardear un servicio con un gran número de peticiones


simultáneas (y por lo general inútiles) de modo que el sistema se colapse,
obstaculizando el servicio a los usuarios que desean utilizarlo. Como hoy en día la
capacidad de los sistemas distribuidos ha crecido mucho, en ocasiones resulta muy difícil
o incluso imposible bloquear el servicio utilizando una sola computadora atacante, por
lo que ahora se han desarrollado los ataques de denegación de servicio distribuidos, los
cuales hacen uso de miles o incluso millones de computadoras para generar las
peticiones al sistema que se desea bloquear, por lo que bloquear un ataque de esta
magnitud resulta sumamente complicado.

Si bien no podemos asegurar que un sistema distribuido sea cien por ciento seguro, es
importante contar con un esquema de seguridad lo más robusto posible, que a pesar de
no ser inmune a todo tipo de ataques, si será capaz de frenar la gran mayoría de dichos
ataques. Algunas recomendaciones muy útiles para los desarrolladores,
administradores e implementadores de un sistema distribuido se presentan a
continuación:

Efectuar un análisis de riesgos.

Esto se suele mencionar en la literatura como el primer paso a realizarse cuando se


plantea la seguridad en un sistema. La idea es muy sencilla: trazar todos los elementos
que conforman nuestro sistema (hardware y software) y observar cuáles involucran más
Profesor Martín Arosemena 13 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

o menos riesgo. Esto desembocará en un plan de seguridad cuyo objetivo es disminuir


el riesgo total del sistema, que se puede modelar como la suma de los riesgos de sus
componentes:

RIESGO TOTAL = RIESGO (componente 1) + RIESGO (componente 2)...

El riesgo de cada componente está en función directa a las pérdidas que ocasionaría el
que éste deje de operar, así como en función de cuán vulnerable es dicho componente
en este momento. Por ejemplo, una base de datos de clientes involucra un gran riesgo
debido al gran valor que la información representa para una organización; pero una
simple PC Windows de la misma organización conectada directamente al Internet (sin
firewall/proxy de por medio) también lo representa, debido a que puede ser objeto de
un ataque desde el exterior, con el posible riesgo de fácil propagación hacia otros
computadores de nuestra red.

Lo más valioso debe alejarse de lo más vulnerable.

En la fórmula del "riesgo" propuesta arriba, es evidente que los componentes de nuestro
sistema con alto valor y alta vulnerabilidad serán de lejos los que presenten mayor
riesgo. Sin embargo, en muchos casos no es sencillo disminuir el valor de cierto
componente (y por tanto la pérdida en caso de problemas), y tampoco se puede eliminar
completamente la vulnerabilidad del mismo (por ejemplo, si está de cara a Internet.) En
este caso lo que conviene es separar o dividir este componente en dos partes
suficientemente alejadas e independientes a fin de que el riesgo total disminuya. Por
ejemplo, los portales de comercio electrónico deben dar cara a Internet (siendo
vulnerables en principio) y a la vez manejar información muy costosa (como
transacciones con tarjeta de crédito.) Esto los convierte en un sistema de alto riesgo. Sin
embargo es casi universal la separación que se efectúa entre los componentes
dedicados a dar cara a Internet (como los Web Servers) y los componentes que
manipulan la información comercial (generalmente sistemas DBMS.) En términos
prácticos, esto significa que el hacker no puede acceder directamente al DBMS (lo que
sería catastrófico), y sólo podría atacar al Web Server, lo que en principio no acarrea
mayores consecuencias.

Mantener las cosas simples.

Un sistema complejo es más difícil de asegurar y potencialmente proporciona una mayor


cantidad de puertas abiertas a los atacantes. En general, es recomendable intentar
dividir el problema mediante la simplificación de la configuración, para así identificar los
puntos o rutas de control vulnerables para incrementar la seguridad.

La seguridad debe estar en todos los niveles. Esto se puede expresar más sencillamente
como: no confiar el sistema a un único mecanismo de seguridad.

La información fluye a través de los distintos componentes y/o capas del sistema y son
muchas las instancias en las que se puede mejorar su seguridad. La recomendación
estipula que utilicemos todas estas instancias a pesar de que en principio puedan
parecer redundantes. Por lo general los administradores tienden a preocuparse por un

Profesor Martín Arosemena 14 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

único punto de acceso desde donde supuestamente hay una gran probabilidad de ser
atacados (por ejemplo, la conexión a Internet.) Por tanto se invierte esfuerzo y dinero
en controlar este único punto bajo la asunción de que es la única puerta de entrada a
los maleantes y que por tanto, tras asegurarla, todo el sistema quedará seguro. Esto
tiene dos problemas:

Muchos ataques o "vulnerabilidades" se originan (de forma inocente o intencional)


desde dentro de la organización.

El sistema que controla la "puerta" siempre puede fallar.

Esto obliga a implementar la seguridad no en un único punto evidentemente vulnerable,


sino en todos los lugares por donde fluye la información al interior de cada componente
involucrado.

Encriptar tanto como sea posible.

La tecnología de encriptación de información destinada a pasar a través de la red ha


evolucionado bastante, haciéndose popular el término VPN para hacer referencia a
canales que encriptan la información de un modo más o menos transparente. Hay
soluciones propietarias así como estándares relativamente implementados como IP Sec.
Ciertas aplicaciones estándares han recibido soluciones de encriptación también
estándar. El caso del Web encriptado bajo SSL (HTTPS) junto con la industria de
certificados digitales es el caso más conspicuo. De igual modo los estándares para correo
electrónico PGP (o derivados) y S/MIME son integrados cada vez con mayor frecuencia
en las aplicaciones de los usuarios finales.

En nuestra organización deberíamos encriptar todo lo que sea posible. La razón de esto
es evidente si de lo que se trata es de enviar un mensaje privado por Internet. Sin
embargo, al interior de la organización la encriptación puede ayudar también.
Naturalmente hay que sopesar los inconvenientes que trae la encriptación en términos
de incomodidad de uso, costo de licencias, ciclos de CPU, etcétera; con el hecho de que
cierta información es definitivamente de carácter público y por tanto no tiene sentido
que esté encriptada.

Además de estas hay muchas más recomendaciones de seguridad que podemos


mencionar, por ejemplo: no confiar en la autenticación estándar, no usar la
configuración "estándar", educar a los usuarios, ejecutar sólo los servicios
imprescindibles, mantenerse al día con las actualizaciones y hacer chequeos regulares,
establecer planes de contingencia y sistemas de respaldo, mantener contacto con el
proveedor de líneas de comunicación, no permitir conexiones directas desde la red
interna a Internet, hacer uso de una red perimétrica o zona desmilitarizada, prácticas de
programación segura, vigilancia, establecimiento de políticas, etc.

d) Escalabilidad:

Profesor Martín Arosemena 15 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

La escalabilidad es una de las características más importantes para los desarrolladores


de un sistema distribuido. Se dice que un sistema es escalable si logra conservar su
efectividad cuando hay el número de recursos y el número de usuarios incrementa
significativamente. La escalabilidad de un sistema pude medirse en tres aspectos
diferentes:

 Con respecto a su tamaño: lo que significa que se pueden agregar más usuarios
y más recursos al sistema de una manera muy fácil.

 Con respecto a su localización o área de implementación: lo que significa que


tanto los usuarios como los recursos pueden estar en locaciones remotas y
separadas el uno del otro.

 Con respecto a su administración: lo que significa que puede ser fácil de


administrar a pesar de que se utiliza en diferentes organizaciones
independientes que cuentan con diferentes políticas de seguridad y que hacen
un uso particular del sistema. Desafortunadamente, un sistema que es escalable
en uno o más de estos aspectos por lo general afecta el rendimiento del sistema
conforme al crecimiento del mismo.

Problemas de la Escalabilidad

Cuando se necesita escalar un sistema a un nivel más alto es muy común que surja algún
tipo de problema. Si consideramos la escalabilidad con respecto al tamaño de un
sistema, nos encontramos con las limitaciones que presentan los servicios, los datos y
los algoritmos centralizados.

Por otro lado tenemos los problemas de la escalabilidad con respecto a la localización o
área de implementación de un sistema distribuido. Una de las principales razones por
las cuales resulta difícil escalar los sistemas distribuidos que existen actualmente, es que
dichos sistemas fueron diseñados para trabajar redes de acceso locales (LANs) y que
están basados en una comunicación síncrona. En este tipo de comunicación el cliente
hace la solicitud de un servicio y hace un bloqueo de la comunicación hasta que recibe
la respuesta. Este acercamiento por lo general trabaja bien en LANs en las que la
comunicación entre dos máquinas por lo general no toma más de algunos cientos de
microsegundos.

En el caso de las WANs, tenemos que tomar en cuenta que la comunicación entre los
procesos pudiese tomar varios cientos de milisegundos, lo que representa un
alentamiento muy considerable del sistema. Otro problema a considerar es que la
comunicación en una WAN es poco confiable y en la gran mayoría de los casos es punto
a punto, al contrario de las redes locales que generalmente son muy confiables y
permiten hacer difusiones o transmisiones de tipo “broadcast”, lo que hace mucho más
fácil el desarrollo de sistemas distribuidos.

Profesor Martín Arosemena 16 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Finalmente, podemos mencionar los problemas que acarrea la escalabilidad de la


administración de un sistema distribuido. Este problema se da cuando un sistema
distribuido de expande a otro dominio, que por lo general contará con diferentes
políticas de uso y pago de recursos, administración y seguridad. Por lo general cuando
esto pasa se deben de tomar al menos dos tipos de medidas de seguridad:

El sistema distribuido tiene que protegerse de ataques malignos provenientes del nuevo
dominio, y restringir el acceso a los servicios y datos que no están a disponibilidad de los
usuarios del mismo.

Técnicas de Escalabilidad

Una vez que mencionamos ya los problemas de la escalabilidad, analizaremos algunas


maneras de solucionar dichos problemas. Como los problemas de escalabilidad de los
sistemas distribuidos se manifiestan como problemas de rendimiento causados por la
capacidad limitada de servidores y de las redes de comunicaciones, existen solamente
tres técnicas de escalabilidad: eliminar la latencia de las comunicaciones, distribución y
replicación.

Eliminar la latencia de las comunicaciones es útil en el caso de querer lograr la


escalabilidad geográfica de un sistema, la idea básica es simple: tratar de evitar la espera
de respuestas a las peticiones que se hagan a servicios remotos lo más que se pueda.

Otra técnica importante para lograr la escalabilidad es la distribución, que consiste en


tomar un elemento, separarlo en partes pequeñas y distribuir esas partes en todo el
sistema. Un ejemplo de un sistema distribuido que hace uso de la distribución es el
servicio de nombre de dominio (DNS), el cual esta distribuido en diferentes servidores
que permiten el acceso a la misma información a todos los usuarios, sin necesidad de
tener un sólo servidor que proporcione este servicio.

En la mayoría de los casos, los problemas de escalabilidad los vemos reflejados en el


rendimiento del sistema, por lo que generalmente la replicación de los componentes del
sistema distribuido puede resultar ser una buena idea. La replicación aumenta la
disponibilidad de los componentes del sistema y además ayuda a balancear la carga
entre los componentes que se replican, con lo que se logra una mejora del rendimiento
del sistema. Si consideramos un sistema que se encuentra distribuido en una red muy
extensa, el hecho de tener una copia de algún componente más cerca, también mejora
el rendimiento del sistema puesto que soluciona los problemas de latencia de las
comunicaciones que ya mencionamos anteriormente.

e) Tratamiento de Fallos:

El fallo tanto del hardware como del software es algo prácticamente inevitable, y por
más confiable que pueda parecer algún componente, siempre es importante estar
preparado para cuando este falle. En un sistema centralizado por lo general el fallo de
cualquier componente del sistema provoca que todos los servicios que este ofrece dejen

Profesor Martín Arosemena 17 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

de funcionar, en cambio, en un sistema distribuido, los fallos son parciales, puesto que
solo afectan a los servicios que el componente que fallo este prestando, mientras que
otros servicios que prestan otros componentes siguen funcionando. El tratamiento de
fallos en un sistema distribuido es una tarea difícil, pero que se puede lograr si se utilizan
las técnicas adecuadas, según el sistema que se desee proteger. Algunas de las técnicas
más comunes son:
Detección de Fallos: Obviamente no es posible tratar un fallo si este no se ha detectado,
sin embargo, la detección de un fallo dentro de un sistema distribuido puede no ser tan
sencillo como parece, recordemos que además de componentes de hardware y
software, los sistemas distribuidos operan gracias a la transmisión de mensajes, y el
funcionamiento del sistema depende en gran parte de estas transmisiones de datos
entre los diferentes componentes; un fallo en la transmisión de datos entre
componentes no es fácil detectar, pero es algo que podemos esperar (dependiendo del
medio por el que se haga la transmisión y otras condiciones) y al saber que existe la
posibilidad de ese fallo, podemos monitorear y aplicar técnicas que aseguren que dicha
transmisión siempre sea correcta.

Enmascaramiento de Fallos: Una vez que un fallo es detectado, es importante encontrar


la manera para que un usuario del sistema no note dicho fallo y que pueda seguir
utilizando el sistema de manera normal, esto es, ocultar los fallos del sistema y
encargarse de que los servicios que se ofrecen al cliente nunca sean interrumpidos. Son
muchos ejemplos del enmascaramiento de fallos, en el caso de un mensaje que se
corrompió al ser enviado, una manera de ocultar el fallo es haciendo la solicitud de
reenvío del mensaje, y de esta manera el usuario nunca notará que hubo un problema.
Otro ejemplo lo dan las técnicas de redundancia que explicaremos más adelante, pero
que básicamente consiste en tener disponibles varios elementos que puedan dar el
mismo servicio y que en caso de que uno falle, otro este en la disponibilidad de realizar
el trabajo en su lugar, esto puede darse cuando fallan componentes de un servidor
(discos duros, tarjetas de red, etc.), o incluso cuando fallan las conexiones a la red o los
sistemas de bases de datos.

Tolerancia a Fallos: es importante saber cuándo un sistema puede llegar a tener ciertos
problemas sin que estos afecten de manera grave al usuario de los servicios
proporcionados, para así, ignorar la ocurrencia de dichos fallos cuando la aplicación lo
soporte, o bien, hacer saber al cliente que hay un problema en lugar de gastar tiempo y
recursos innecesarios para corregirlo cuando probablemente el problema no se pueda
arreglar rápido y el cliente termine por abortar el proceso; Pretender arreglar de manera
inmediata todos los problemas que puedan surgir en un sistema puede resultar incluso
dañino para el mismo sistema, puesto que hay problemas que mientras son arreglados
pueden afectar el rendimiento de otros componentes del sistema que sí están
trabajando.

Recuperación Frente a Fallos: Una vez que fue detectado un fallo y que se ha decidido
arreglarlo, hay que encontrar la mejor manera de hacerlo, y además, de recuperar el
estado del sistema antes de que ocurriera el fallo; esto requiere del software adecuado
para poder reconstruir o bien retractar los cambios que no fueron completados al
momento en que fue interrumpido el sistema, un ejemplo de esto lo podemos ver en
los sistemas manejadores de bases de datos, que se sirven de una bitácora de las
Profesor Martín Arosemena 18 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

transacciones que se realizan y de acuerdo a esta bitácora se decide reconstruir o


retractar las transacciones hechas sobre la base de datos antes de que se interrumpiera
el funcionamiento de la misma.

Redundancia: un sistema distribuido puede lograr ser tolerante a fallos gracias a la


utilización de componentes redundantes dentro del sistema. La redundancia se logra
con la replicación de dichos componentes y con la habilidad del sistema de recurrir a los
componentes de respaldo en caso de que el componente de uso primario falle, todo
esto por supuesto, sin que el usuario se percate de lo que está sucediendo. La
redundancia se puede dar en muchas partes del sistema: componentes internos de los
servidores, servidores de aplicaciones, de Web, de archivos, de correo o de bases de
datos, sistemas de almacenamiento, conexiones a la red de comunicación, etc. Es muy
importante tomar en cuenta que todos los componentes que estén replicados en el
sistema deben mantenerse actualizados para evitar problemas de consistencia, y
además, la actualización de la información entre dichos componentes no debe de tener
un efecto significativo para las necesidades de transmisión de datos del sistema.

f) Concurrencia: El control de concurrencia trata con los problemas de aislamiento y


consistencia del procesamiento de transacciones. El control de concurrencia de un
sistema distribuido asegura que la consistencia de los datos que se almacenan y que se
procesan en el sistema se mantienen en un ambiente distribuido multiusuario. Si las
transacciones son internamente consistentes, la manera más simple de lograr este
objetivo es ejecutar cada transacción sola, una después de otra. Sin embargo, esto
puede afectar mucho el desempeño de un sistema distribuido dado que el nivel de
concurrencia se reduce al mínimo. El nivel de concurrencia, es decir, el número de
transacciones simultáneas activas, es probablemente el parámetro más importante en
sistemas distribuidos. Por lo tanto, los mecanismos de control de concurrencia buscan
encontrar un balance entre el mantenimiento de la consistencia de los datos y el
mantenimiento de un alto nivel de concurrencia.

Si no se hace un adecuado control de concurrencia, se pueden presentar dos anomalías.


En primer lugar, se pueden perder actualizaciones provocando que los efectos de
algunas transacciones no se reflejen en los datos almacenados. En segundo término,
pueden presentarse recuperaciones de información inconsistentes. Las técnicas que se
utilizan para asegurar un control de concurrencia de un sistema distribuido, como hilos,
semáforos, candados, etc., se discutirán más adelante, en la parte de análisis de la
arquitectura de cliente-servidor.

g) Transparencia: Se dice que un sistema distribuido es transparente, cuando este es capaz


de presentarse ante los usuarios y las aplicaciones como si fuese un sistema que corre
en una sola computadora, y no como un sistema cuyos procesos y recursos están
distribuidos físicamente en varias computadoras.

Tipos de Transparencia:

Según el Manual de Referencia ANSA y el Modelo de Referencia para el Procesamiento


Distribuido Abierto de la Organización Internacional de Estándares (ISO 1995), el

Profesor Martín Arosemena 19 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

concepto de transparencia de puede aplicar a 8 aspectos diferentes de un sistema


distribuido:

Transparencia de Acceso: oculta las diferencias entre la representación de los datos y la


manera en que los recursos son accedidos.

Transparencia de Ubicación: oculta la localización de los recursos y permite el acceso a


los mismos sin la necesidad de conocer su localización.

Transparencia de Migración: oculta que un recurso o un cliente del sistema sea


reubicado, lo que permite hacer dichas reubicaciones sin afectar la operación de los
usuarios y los servicios.

Transparencia de Recolocación: oculta que un recurso o un cliente del sistema pueda


moverse a una ubicación diferente mientras están en uso.

Transparencia de Replicación: oculta la existencia de múltiples ejemplares del mismo


recurso.

Transparencia de Concurrencia: oculta que un recurso sea compartido por varios


usuarios sin interferir entre ellos mismos.

Transparencia Frente a Fallos: oculta el fallo y recuperación de un recurso dentro del


sistema, dejando que los usuarios terminen sus tareas a pesar de los fallos de hardware
o software que pudieran presentarse.

Transparencia de Persistencia: oculta si un recurso (de software) está almacenado en


memoria o en disco.

Desde el punto de vista de los usuarios, la transparencia se logra cuando:

 Sus pedidos se satisfacen con ejecuciones en paralelo en distintas máquinas.


 Se utilizan una variedad de servidores de archivos.
 El usuario no necesita saberlo ni notarlo.

Grado de Transparencia:

A pesar de que la transparencia es una característica generalmente deseable para


cualquier sistema distribuido, hay situaciones en las que el pretender enmascarar todos
los aspectos relacionados con la distribución de los componentes del sistema puede no
ser lo más óptimo; en algunas ocasiones es mejor hacer del conocimiento del usuario
que el sistema está compuesto por varios elementos y que por más óptima que sea la
transmisión de mensajes o la distribución y replicación de componentes, habrá cierto
tiempo de respuesta mínimo entre cada transacción que es imposible evitar.

Hay también una relación directa entre el nivel de transparencia y el rendimiento de un


sistema distribuido, por lo que lo ideal es encontrar un bien equilibrio entre ambos
factores. Por ejemplo, si pretendemos garantizar la transparencia de replicación en un
sistema, es necesario que el usuario sepa que para garantizar la consistencia de la
Profesor Martín Arosemena 20 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

información es necesario actualizar todos los componentes replicados cuando se hace


un cambio, por lo que el acceso al sistema puede verse interrumpido por algunos
segundos mientras esta operación se lleva a cabo.

Es muy importante considerar la transparencia como uno de los principales objetivos


del diseño e implementación de un sistema distribuido, sin embargo, es importante
tener en consideración otros factores que pueden ser afectados por la transparencia,
principalmente el desempeño general del sistema.

1.3 Ventajas de los sistemas distribuidos.

En general, los sistemas distribuidos exhiben algunas ventajas sobre los sistemas
centralizados que se describen enseguida.

a) Factores Estratégicos: Hoy en día, los clientes, proveedores y compañías se


encuentran generalmente en diferentes localidades alejados los unos de los otros.
Debido a que todos estos utilizan computadoras, las redes de información que los unen
y que les permiten interactuar pueden ofrecer a las empresas mayor competitividad.

b) Costos de Equipo: El cociente precio/desempeño de la suma del poder de los


procesadores separados, contra el poder de uno solo centralizado, es mejor cuando
están distribuidos, esto lo podemos calcular con base al costo promedio de MIPs
(Millones de Instrucciones por Segundo), el cual es mucho mayor en mainframes que en
un número fijo de estaciones de trabajo. Sin embargo, cabe mencionar que los
mainframes soportan cientos de dispositivos y permiten que miles de clientes
compartan los mismos recursos computacionales del mismo, aunque la diferencia en
costos es enorme.

c) Conocimiento y control de los usuarios: La gran mayoría de los usuarios de los


servicios computacionales son cada vez más cultos y competentes por lo que dichos
usuarios desean operar sus propios sistemas, a su manera, por lo que no están contentos
con los sistemas centralizados que llevan el control sobre los sistemas que son
desarrollados, cuándo, cómo y por quiénes son operados. La computación distribuida
ofrece a los usuarios estar más cerca de los procesos y de los datos.

d) Costos de Desarrollo: Cuando se trabaja con un sistema distribuido que cuenta con
diferentes módulos de software que pueden integrase como parte de un solo sistema,
los usuarios finales interesados en desarrollar sus propias aplicaciones pueden hacerlo
utilizando sus propias máquinas, lo que trae como consecuencia la reducción del costo
y tiempo de desarrollo de una nueva aplicación.

e) Interfaces de Usuarios: La mayoría de las estaciones de trabajo que se utilizan hoy en


día soportan el uso de interfaces gráficas sofisticadas con dispositivos de señalamiento
y sistemas de audio y video; esta tecnología resulta ser muy atractiva especialmente
para usuarios con diferentes estilos de aprendizaje que por lo general se decepcionan
por los tradicionales reportes o interfaces presentadas en formato de texto o con
gráficos de poca calidad.

Profesor Martín Arosemena 21 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

f) Flexibilidad y Facilidad de Configuración: Los sistemas distribuidos, y en general la


computación descentralizada, ofrece muchas opciones para mejorar el desempeño y la
fiabilidad de un sistema mediante el uso de procesos y datos redundantes.

g) Explotación del Hardware: Las estaciones de trabajo y computadoras personales


permiten el desarrollo de software especializado que hace uso de las características
específicas del hardware de la estación de trabajo, cada una de estas estaciones puede
ser utilizada como un servidor especializado (por ejemplo, de correos, de Web, de
archivos, de bases de datos, etc.) y estos servidores con los que satisfacen las peticiones
de clientes que desean hacer uso de los servicios con los que cuenta dicho servidor. A
esta configuración se le conoce comúnmente como configuración “cliente-servidor” y
se explicará a detalle más adelante.

h) Nuevas aplicaciones: Muchas aplicaciones nuevas de tiempo real requieren ser


procesadas y acceder datos de manera local, lo cual es posible solamente si se utiliza un
sistema distribuido con estaciones de trabajo distribuidos en los lugares que más se
requiera.

i) Crecimiento: El poder total del sistema puede irse incrementando al añadir pequeños
sistemas, lo cual es mucho más difícil en un sistema centralizado y caro.

Por otro lado, los sistemas distribuidos también exhiben algunas ventajas sobre sistemas
aislados. Estas ventajas son:

Compartir datos: un sistema distribuido permite compartir datos más fácilmente que
los sistemas aislados, que tendrían que duplicarlos en cada nodo para lograrlo.

Compartir dispositivos: un sistema distribuido permite acceder dispositivos desde


cualquier nodo en forma transparente, lo cual es imposible con los sistemas aislados. El
sistema distribuido logra un efecto sinergético.

Comunicaciones: la comunicación persona a persona es factible en los sistemas


distribuidos, en los sistemas aislados no.

Flexibilidad: La distribución de las cargas de trabajo es factible en el sistema distribuido,


se puede incrementar el poder de cómputo.

1.4 Desventajas y Factores a Considerar:


Así como los sistemas distribuidos exhiben grandes ventajas, también se pueden identificar
algunas desventajas, algunas de ellas tan serias que han frenado la producción comercial de
sistemas distribuidos en la actualidad.

a) Falta de Estándares: La falta de estándares y herramientas de desarrollo para ambientes


distribuidos pueden crear graves problemas de compatibilidad, portabilidad e
interconectividad en los sistemas distribuidos. Esto se da cuanto se crean muchas copias
incompatibles de la misma aplicación. El desarrollo y uso de estándares para
aplicaciones, computadoras y redes son desarrolladas en lugares, por personas y en
tiempos diferentes, lo cual resulta muy complicado, y es por eso que es común ver este
tipo de problemas en un sistema distribuido.
Profesor Martín Arosemena 22 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

b) Complejidad del Diseño: Los grandes sistemas de computadoras pueden distribuirse en


muchas computadoras, sin embargo, separar el sistema en muchas partes y decidir en
qué lugar van a residir dichas partes, no es una tarea trivial. Los problemas de compartir
datos y recursos son tan complejos que los mecanismos de solución generan mucha
sobrecarga al sistema haciéndolo ineficiente. El verificar, por ejemplo, quiénes tienen
acceso a algunos recursos y quiénes no, el aplicar los mecanismos de protección y
registro de permisos consume demasiados recursos. En la actualidad, las soluciones
para estos problemas son incipientes.

c) Falta de Infraestructura en Soporte y Administración: Hasta ahora muchos de los


problemas de administración y soporte que demanda un sistema distribuido no han sido
solucionados, y las soluciones que existen para algunos otros problemas son limitadas.
Algunos ejemplos de estos problemas son la planeación de sistemas de información de
acuerdo a la cambiante tecnología que hay hoy en día, el manejo de recursos
distribuidos y el diseño de la estructura organizacional para la computación distribuida.

d) Seguridad e Integridad: La distribución de datos y de programas en múltiples


localidades pueden crear muchos problemas de seguridad e integridad que no con
fáciles de solucionar y que por lo general requieren también de un proceso paralelo que
ayude a solucionar dichos problemas, por lo que la carga del sistema aumenta y el
rendimiento en general puede verse afectado.

e) Opciones: La disponibilidad de muchas opciones y decisiones puede ser tanto buena,


como mala. En ocasiones tener muchas opciones nos quita tiempo, puesto que tenemos
que analizar, entender y probar todas las que están disponibles antes de llegar a tomar
una decisión cobre cual es la mejor. Por el lado contrario, el tener muchas opciones nos
permite diseñar un sistema que este conformado.

1.5 SISTEMAS OPERATIVOS DE RED.


Definición de sistema operativo de red (nos)

Un sistema operativo de red (Network Operating System) es un componente software de


una computadora que tiene como objetivo coordinar y manejar las actividades de los recursos
del ordenador en una red de equipos. Consiste en un software que posibilita la comunicación de
un sistema informático con otros equipos en el ámbito de una red. Dependiendo del fabricante
del sistema operativo de red, tenemos que el software de red para un equipo personal se puede
añadir al propio sistema operativo del equipo o integrarse con él. Netware de Novell es el
ejemplo más familiar y famoso de sistema operativo de red donde el software de red del equipo
cliente se incorpora en el sistema operativo del equipo. El equipo personal necesita ambos
sistema operativos para gestionar conjuntamente las funciones de red y las funciones
individuales.

Características de los Sistemas Operativos de Red

En general, se puede decir que un Sistema Operativo tiene las siguientes características:
Profesor Martín Arosemena 23 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 Conveniencia. Un Sistema Operativo hace más conveniente el uso de una computadora.


 Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen
de la manera más eficiente posible.
 Habilidad para evolucionar. Un Sistema Operativo deberá construirse de manera que
permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema
sin interferir con el servicio.
 Encargado de administrar el hardware. El Sistema Operativo se encarga de manejar de
una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto
es, asignar a cada proceso una parte del procesador para poder compartir los recursos.
 Relacionar dispositivos (gestionar a través del kernel). El Sistema Operativo se debe
encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera.
 Organizar datos para acceso rápido y seguro.
 Manejar las comunicaciones en red. El Sistema Operativo permite al usuario manejar
con alta facilidad todo lo referente a la instalación y uso de las redes de computadoras.
 Procesamiento por bytes de flujo a través del bus de datos.
 Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fácil al usuario el
acceso y manejo de los dispositivos de Entrada/Salida de la computadora.
 Técnicas de recuperación de errores.
 Evita que otros usuarios interfieran. El Sistema Operativo evita que los usuarios se
bloqueen entre ellos, informándoles si esa aplicación esta siendo ocupada por otro
usuario.
 Generación de estadísticas.
 Permite que se puedan compartir el hardware y los datos entre los usuarios.

Sistemas Operativos de red.


 Son aquellos sistemas que mantienen a dos o más computadoras unidas através de
algún medio de comunicación (fisico o no), con el objetivo primordial de poder
compartir los diferentes recursos y la información del sistema.

El primer Sistema Operativo de red estaba enfocado a equipos con un procesador
Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.

Los Sistemas Operativos de red más ampliamente usados son: Novell Netware, Personal
Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

1.6 Diferencia entre Sistemas distribuídos y sistemas centralizados o de red.

En los entornos con grandes computadoras y minicomputadoras, el procesamiento y la


memoria se encuentran centralizados. Hay varias razones para ello, incluyendo el costo,
la seguridad y la gestión.

La computadora central se convierte en el núcleo de la organización de proceso de datos,


habiendo un equipo de profesionales que tienen como única tarea el trabajar y administrar el
sistema.

Profesor Martín Arosemena 24 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Los terminales conectados al ordenador central permiten que otros usuarios puedan compartir
las posibilidades de cálculo y la memoria de las computadoras centrales.

Este tipo de proceso centralizado se diferencia del sistema de proceso distribuído utilizado por
las LAN.

En un sistema de proceso distribuído, la mayor parte de los procesos se lleva a cabo en la


memoria individual de las computadoras personales, a las que denomina estaciones de trabajo.
El servidor de archivos o sistema central se convierte en un lugar para almacenar los archivos y
para gestionar la red, además de ser el lugar al que se conectan las impresoras y
otros recursos compartidos.

1.7 Objetivo de diseño de un sistema distribuido.


En este capítulo vamos a tratar elementos físicos de la infraestructura, las redes y las
comunicaciones.

¿Qué es una red?

Una red es un conjunto de ordenadores conectados entre sí que permite compartir recursos e
intercambiar información entre ellos. El conjunto es interoperable.

Las razones para hacerlo son claras:

 Compartir programas y ficheros.


 Compartir recursos de impresión.
 Compartir líneas de comunicación remota.
 Compartir conexiones de Internet.
 Disponer de correo electrónico.
 Creación de grupos de trabajo.
 Administración de usuarios y seguridad.
 Etc.

Componentes de una red.

Estación de trabajo.

Ordenador, normalmente un PC normal, que actúa como cliente de la red y desde donde
trabajan los usuarios. Es el lugar natural donde normalmente se ejecutan los programas cliente.

El diseñador debe conocer la potencia de los ordenadores cliente ya que condiciona de forma
importante la capacidad de los programas clientes.

Profesor Martín Arosemena 25 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Figura No. 3. Componentes de una red.

Servidores de red.

Ordenadores, normalmente potentes y especializados, donde se ejecuta la parte importante del


servicio operativo de red y desde donde se proporcionan la mayoría de servicios de red. Si no
forma parte del esquema de niveles lógicos del sistema distribuido (de los que hablaremos más
tarde) han de ser ignorados por el diseño. Si forman parte de esos niveles lógicos, son lugares
naturales para situar servidores.

Si se utilizan para situar servidores que no son de red, el diseñador deberá asegurarse de que
tienen suficiente potencia para dar el tiempo de servicio necesario.

Adaptadores de red.

Elementos de enlace entre los componentes físicos de la red. Su relación con el diseño es la
velocidad de tráfico de red que consiguen.

Cableado y conexiones inalámbricas.

Medio físico de comunicación y transmisión entre los componentes de una red. Sin ninguna
influencia en el diseño.

Además existen redes inalámbricas cada vez más usadas que permiten la utilización inmediata
de terminales móviles en local.

Servicios de interés para aplicaciones distribuidas.

Profesor Martín Arosemena 26 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Las redes proporcionan, entre otros servicios:

 Servidores de ficheros, datos e impresión.


 Gestión centralizada y unificada de los recursos comunicaciones remotas de la
plataforma para disponer de:
 Acceso unificado a Internet.
 Servidores de FTP para implementar servidores de ficheros remotos e
interoperables de forma transparente a los sistemas conectados.
 Integración de puntos de red remotos, de forma interoperable si las redes
locales y remotas son homogéneas y cuasi-interoperable si no los son. Aunque
en este último caso se ha de estudiar caso por caso.
 En redes homogéneas, servicios unificados e integrados de gestión y autentificación de
usuarios y gestión de seguridad de acceso a recursos compartidos.
 Comunicaciones externas con terceros.

Todos estos servicios de comunicación remota se pueden escalar de forma transparente con
tantas líneas y/o recursos de comunicación como se necesiten. Esta prestación es
importantísima.

La gran importancia de todo ello es que se puede utilizar en la implementación de aplicaciones


distribuidas de forma transparente a través de servicios de Middleware, la mayoría de ellos
servicios directos de red como componentes del DSM (Distribuited System Management) del
que hablaremos más tarde.

Topología de la red.

La topología de una red hace referencia a la forma física con la que se configura.

La tipología de la red no tiene influencia en el diseño, si en el funcionamiento. Por eso, su


importancia en el diseño es indirecta. Puede que por razones de servicio, un departamento de
la empresa tenga horario de trabajo diferente de otros. Y para evitar que toda la red esté
funcionando todo el tiempo, se decide montar una tipología de red que permita trabajar a cada
departamento por su cuenta. Ello supone, evidentemente, la existencia de como mínimo un
servidor por departamento y una conexión entre ellos. Y, evidentemente que las aplicaciones
tengan en cuenta que no siempre toda la red está disponible.

Protocolos.

Son las reglas y procedimientos que utilizan las redes para establecer la comunicación en los
nodos. Son el soporte del transportista. Sin importancia en el diseño ya que están embebidos
en el Middleware.

Las redes locales se pueden ampliar simplemente añadiendo más estaciones. Sin embargo la
evolución natural del crecimiento de la red se encontrará más tarde o más temprano con tres
situaciones:

Profesor Martín Arosemena 27 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 El crecimiento de estaciones habrá llegado a saturar el servidor y hay que colocar otro
servidor o bien hay que colocar estaciones muy alejadas (aunque en local) del servidor.
 La necesidad de integrar dos redes independientes.
 La necesidad de segregar una parte de la red para conseguir que una parte de las
estaciones pueda trabajar con mayor velocidad de red (por ejemplo, porque en parte
de los clientes se instala una aplicación de diseño gráfico).

La evolución de las redes, normalmente en un proceso doble de expansión e integración


puede seguir diferentes caminos según la situación inicial y las necesidades de crecimiento
de cada compañía.

Clusteres.

Un clúster es un conjunto de dos o más ordenadores acoplados en red que comparten un


subsistema de discos, muchas veces en replicación por espejo, y un software que trabajan como
un sistema único garantizando el funcionamiento normal del sistema aunque falle uno de los
ordenadores.

Los elementos de un clúster son:

 Los nodos de proceso.


 La red de interconexión.
 El subsistema de discos compartidos.

Se comparte el acceso a disco y los recursos de administración de datos pero cada nodo dispone
de su propia memoria y sistema operativo.

Los nodos de proceso pueden ser ordenadores independientes u ordenadores con


multiprocesadores o ambas cosas simultáneamente.

El software del clúster reparte la carga por los nodos de forma transparente. Así el efecto
exterior es de un único ordenador que aporta una altísima fiabilidad de funcionamiento.

Como los ordenadores integrados en el clúster están integrados entre ellos por una red, la
velocidad de esa conexión de red es fundamental en el rendimiento del clúster. No es lo mismo
una conexión entre los ordenadores del clúster por cable Ethernet que por fibra óptica.

El clúster aparece para los programadores y administradores como un sistema único.

Clusters y aplicaciones distribuidas.

Una de la razones de montar aplicaciones distribuidas es conseguir dar servicio cuando cae un
servidor. Si los servidores los colocamos en clusters, la tolerancia a fallos de la aplicación
distribuida será muy alta y podremos ahorrar en software dedicado al análisis de consistencia
que ha de garantizar la recuperación y funcionamiento del sistema en caso de caída en uno de
los nodos. Incluso la aplicación puede diseñarse no distribuida colocando datos y software en el
clúster.

Profesor Martín Arosemena 28 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

La contrapartida es que si Vd. deja una aplicación condicionada a un clúster no la podrá instalar
en entornos muy pequeños, restricción muy importante en aplicaciones distribuidas.

Que hacer, pues, ¿Clúster o software de consistencia? Una vez más, no hay soluciones mágicas.
Mandan la importancia de garantizar servicio versus los costes de cada solución, la importancia
o no de introducir un punto de heterogeneidad (el clúster lo es) o la calidad de las soluciones
clúster de su plataforma habitual.

SAN (Storage Area Networks).

Según Garther Group, las SAN suponen la gestión centralizada de recursos y datos en un
dominio de almacenamiento que proporciona servicios compartidos a un grupo de servidores y
a sus aplicaciones.

Los dispositivos NAS (Network Attached Storage) se utilizan para compartir información en las
redes LAN mientras que las soluciones SAN (Storage Area Networks) facilitan copias y recuperar
información para optimizar el rendimiento del negocio.

SAN puede definirse como una red de fibra óptica y dispositivos de conmutación dedicados a
interconectar recursos de almacenamiento y servidores sin interferencia de la red de trabajo.

Proporcionan:

 Carencia de puntos únicos de fallos.


 Alto rendimiento ya que la conexión no es por la LAN convencional con ancho de bando
limitado y compartido.
 Escalabilidad, es muy fácil añadir nuevos elementos de almacenamiento.
 Disponibilidad.

Comunicaciones.

Ámbito y situación.

Tradicionalmente se conoce como comunicaciones en el mundo de la informática las conexiones


entre ordenadores y/o redes remotas.

La interconexión dio un vuelco espectacular con la llegada de Internet. Se llega a cualquier punto
del planeta de una misma forma. Y a costes razonables.

La velocidad de conexión aumenta continuamente, tanto en vías convencionales, por ejemplo


las redes telefónicas conmutadas habituales, como en el desarrollo de redes de fibra óptica.

Aguzada por el aumento espectacular de la demanda, la oferta se multiplica en cantidad y


calidad. Y todo ello lleva los costes hacia abajo y la llegada de tarifas planas objetivan los costes.
Y además rápidamente.

Profesor Martín Arosemena 29 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Qué necesita el diseño distribuido de las comunicaciones.

Olvidemos por un momento la infraestructura y hablemos de diseño. En aplicaciones


distribuidas con puntos remotos, el diseñador se ve afectado por:

Velocidad de la conexión, que le afecta, como ya se ha hablado, como un punto de


heterogeneidad.

Disponibilidad de la conexión, en lugar y tiempo.

Necesidad de que los puestos remotos sean autónomos o no. No es lo mismo una aplicación de
consulta en el puesto remoto que una de venta cara al público. La primera puede tener
momentos de no servicio pero la segunda no. Y entre este blanco y negro hay una colección de
grises.

Si tiene suficiente con interconexión (filosofía de interfaces) o necesita interoperatividad


(integración transparente).

El coste de la comunicación a partir de dos factores: el coste fijo del enganche y el coste del
consumo.

Administración remota sin presencia física ya que los costes y el tiempo de los desplazamientos
tienen mucha importancia en los prerrequisitos del diseño.

Diseño y comunicaciones.

Y ahora cotejemos diseño con infraestructura.

Velocidad de la conexión. En entornos concretos se pueden disponer de conexiones tan rápidas


como las locales. Por ejemplo en lugares donde llegan cableados de fibra óptica. Y donde no
llegue siempre queda telefonía con soluciones ADSL y todo la que la evolución de la técnica va
sacando. En aplicaciones distribuidas: si crea una aplicación de gestión de tiendas, Vd. no sabe
a priori cual va ha ser el plan de expansión, y por tanto de localización, de las tiendas de su
compañía. Lo que le llevará a estar muy pendiente en cada momento de cuál es la solución de
comunicaciones que necesita en la siguiente etapa de crecimiento de su compañía.

Disponibilidad de la conexión, en lugar y tiempo ha aumentado espectacularmente. La telefonía


móvil junto a los PC’s portátiles revolucionaron la situación. Esta doble combinación permite
disponer de conexión remota donde y cuando se necesite. A velocidad lenta y costes no baratos.

Necesidad de autonomía de los puestos remotos. En este sentido poco ha cambiado ya que
depende de la naturaleza de la aplicación. Es una realidad que muchas de las clásicas
aplicaciones de consulta C/S han sido sustituidas por aplicaciones Internet evitando así todo el
problema de la replicación. Pero las aplicaciones que no permiten la caída temporal de servicio
persisten.

Se dispone ya de interoperatividad e interconexión remota para elegir cuando se necesite. La


limitación de la interoperatibilidad remota es el coste y la velocidad. La ventaja de la

Profesor Martín Arosemena 30 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

interconexión es el estándar de Internet, en particular del correo electrónico, y su cobertura


prácticamente global.

El coste de la comunicación va a la baja con la competencia y las tarifas planas.

La Administración remota sin presencia física es plenamente posible con la interoperatividad


de las redes locales con las remotas. Y con los productos de apoyo disponibles. Aquí el coste de
la comunicación queda minimizado totalmente por la disponibilidad del apoyo en el punto
remoto y por la eliminación del coste de los viajes y del tiempo ahorrado en ellos. Y además, el
tiempo y la calidad del servicio de soporte será inmensamente mejor.

Concepto de Conectividad de Sistemas.

Hablar de conectividad de sistemas es hablar de las posibilidades de operarlos conjuntamente,


de la interconexión entre ellos.

La conectividad es una consecuencia de las posibilidades de las redes y recursos de


comunicación remota establecidos entre los sistemas ligados. Se acaba reflejando en las
posibilidades que se ofrecen para trabajar los sistemas conjuntamente.

Hay dos formas básicas de mirar un sistema interconectado desde la perspectiva de las
posibilidades de trabajar en él.

 Interaccesibilidad o interconexión.

Los sistemas son accesibles entre ellos pero no de forma transparente a los programas.

Si los sistemas se mantienen interaccesibles, la conexión entre ellos sólo será posible con
filosofía de interfase y no existirán aplicaciones distribuidas si no se desarrolla Middleware
específico.

 Interoperatividad.

Los sistemas son accesibles de forma transparente a los programas. Supone la existencia de
un Middleware, comprado o construido, que lo permite. Hoy día prácticamente todos los
sistemas son interoperables.

¿Qué hacer si heredamos sistemas únicamente interconectados? Si queremos hacer sobre


ellos aplicaciones distribuidas hay que convertirlos en interoperables.

Hay tres caminos.

o Comprar Middleware.
o Migrar a sistemas interoperables.
o Encapsular las causas creando el Middleware en los puntos y funciones en que se
necesite interoperatividad.

Conectividad y diseño distribuido.

El diseño de cualquier aplicación distribuida tiene como precondición que los sistemas
integrados son interoperables. Si no fuera así se habrían de marcar los puntos de
heterogeneidad y actuar tal como se explica al final del apartado anterior.

Profesor Martín Arosemena 31 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

La conectividad de sistemas integra todos los elementos de una plataforma dentro de una
plataforma interoperable.

El diseño distribuido es la forma de conseguir aplicaciones distribuidas sobre la plataforma


interoperable. El diseño se apoya en las posibilidades de interoperabilidad que le proporciona
la conectividad.

El diseñador de aplicaciones distribuidas debe conocer las posibilidades de conectividad de las


plataformas de las que dispone y de las que existen en el mercado. Pero no ha de caer nunca en
la trampa de confundir las dos actividades.

Arquitectura física y lógica.

La arquitectura física de una arquitectura distribuida viene determinada por las capas de
conectividad de la plataforma del sistema.

Por ejemplo, una arquitectura física de cuatro niveles puede estar compuesta por:

o Un HOST.
o Uno o varios servidores en al central que actúan de Front-end conectado/os al HOST.
o Servidores departamentales conectados a los servidores de la central. • Redes de PC’s
conectados a cada servidor departamental.

La arquitectura lógica está determinada por los niveles o capas donde las aplicaciones pueden
localizar recursos (datos y procesos) gestionados de forma interoperable a través de
Middleware. La arquitectura lógica resulta de la física filtrándola con los puntos donde la
organización permite o necesita colocar administración.

Hay diferentes criterios para establecer la arquitectura lógica sobre la física:

La interoperatibilidad del Middleware

o La estructura empresarial.
o La dispersión geográfica.
o La política de administración del sistema distribuido. • Necesidades específicas de cada
aplicación. • Etc.

Aspectos de la conectividad que afectan al diseño.

o Niveles lógicos de la arquitectura que permiten la conectividad. Recuerde que allí es


donde podrá localizar servicios, datos o procesos.
o Introducción de puntos de heterogeneidad. Por ejemplo una comunicación remota
lenta.
o Buscar elementos de conectividad que puedan ayudar. Por ejemplo sustituir una
conexión lenta (Gateway) entre dos servidores por otra rápida (un Router), utilizar
Clústeres, localizar servidores en una máquina UNIX, etc...
o Clústeres y Mainframe como proveedores de servicios fiables y potentes.
o La topografía de la red
o Las posibilidades de los dispositivos móviles

Aplicaciones distribuidas.
Profesor Martín Arosemena 32 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Es un buen momento para repasar que tipo de aplicaciones se pueden montar distribuidas según
los modelos C/S basados en Sistema Operativo e Internet. Y empezar a entender el por qué.

La solución tecnológica de estas aplicaciones ha evolucionado siguiendo la tecnología


informática sobre las que se han desarrollado. Primero C/S basado en Sistema Operativo y, más
tarde, también basado en Internet. Pero no la tipología de las aplicaciones distribuidas que con
ellos se montan que sólo se han ampliado

La evolución de las diferentes tecnologías, adaptándose a la evolución informática y las nuevas


propuestas informáticas, para mejorar las facilidades y prestaciones de distribución, han
producido diversas generaciones de aplicaciones distribuidas.

Profesor Martín Arosemena 33 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

MODULO II

COMUNICACIÓN ENTRE PROCESOS EN SISTEMAS DISTRIBUIDOS

2.1 Introducción

La comunicación entre procesos es necesaria si se desea que varios procesos puedan colaborar
para realizar una misma tarea. La Sincronización es el funcionamiento coordinado en la
resolución de una tarea encomendada.

El sistema operativo ofrece mecanismos básicos de comunicación, que permiten transferir


cadenas de bytes. Deben ser los procesos que se comunican quienes interpreten el significado
de las cadenas transferidas para su labor coordinada. Los mecanismos de comunicación y
sincronización son dinámicos. Es decir, cuando se necesita un mecanismo de este estilo, se crea,
usa y destruye, de forma que no se establezca de forma definitiva ningún mecanismo de
comunicación, ya que ellos podrían producir efectos indeseados. Es decir, la comunicación es
algo puntual.

Los servicios básicos de comunicación son:

 Crear: el proceso solicita la creación del mecanismo


 Enviar o Escribir: el proceso emisor envía información al proceso receptor
 Recibir o Leer: el proceso receptor recibe información
 Destruir: el proceso solicita la destrucción del mecanismo de comunicación

La comunicación puede ser síncrona y asíncrona:

 Síncrona: los dos procesos han de ejecutar servicios de forma simultánea. El


emisor ha de ejecutar el servicio enviar mientras el receptor ejecuta recibir.
 Asíncrona: el emisor hace el envío y prosigue su ejecución. El SO ofrece
un almacenamiento intermedio para guardar la información enviada, hasta que
el receptor la solicite.

2.1.1 Comunicación entre procesos

a. El proceso es el concepto básico para expresar concurrencia, tanto en un sistema


centralizado como en uno distribuido. Con la introducción de los procesos se permite
dividir el software en módulos, cada uno de los cuales expresa una actividad
lógicamente concurrente con el resto. Este modelo permite mayor simplicidad y más
fácil comprensión del software utilizado, frente al comportamiento, muchas veces
confuso, de un programa secuencial que trata de expresar un comportamiento
concurrente.

b. El modelo de proceso resulta incompleto si no se proporcionan mecanismos para la


comunicación entre procesos. Esto es debido a que, normalmente, en todo sistema
concurrente, existen interacciones entre sus diferentes actividades concurrentes.

Profesor Martín Arosemena 34 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

c. La diferencia más importante entre un sistema distribuido y uno centralizado es


precisamente cómo se realiza la comunicación entre procesos. En un sistema
centralizado, las interacciones entre procesos se hacen sobre memoria compartida,
[9] mientras que en un sistema distribuido se necesita intercambio de mensajes.
Los mecanismos a estudiar son entonces: el paso de mensajes punto a punto y
la llamada remota a procedimiento. Una variante de los mensajes punto a punto
son los buzones. Estos se usan para enviar o recibir mensajes, permitiendo no sólo
desacoplar emisor y receptor sino, también, tener múltiples emisores y receptores.

d. En un sistema distribuido, un emisor también debería poder referenciar, al mismo


tiempo, a un conjunto de receptores ya que la información contenida en un mensaje
puede ser necesaria en más de un punto del sistema distribuido. Por tanto, la
comunicación con grupos de procesos es otro tipo de interacción que conviene
analizar y solucionar. Un grupo es un conjunto de objetos que comparten una
semántica de aplicación común, así como el mismo identificador de grupo y/o
dirección de comunicación. Cada grupo es visto como un ente lógico individual, que
no deja ver a los usuarios su estructura interna ni las interacciones entre sus
miembros. Si se pretende una definición más cercana a la implementación, podría
ser esta: un grupo de procesos es un conjunto de puntos extremos de comunicación
(por ejemplo sockets de UNIX) que se pueden referenciar como un único ente. Los
grupos de procesos son una herramienta natural para programar un sistema
distribuido, y su importancia ha ido incrementándose en entornos de programación
distribuida a lo largo del tiempo. Sin embargo, aún no hay un modelo que unifique
las semánticas más apropiadas que deben cumplir las interacciones de los miembros
de estos grupos (tipos de primitivas de comunicación, notificación de la entrada y
salida de los procesos que forman un grupo, entre otras).

2.2 Mecanismo de paso de mensajes

El mecanismo de paso de mensajes punto a punto [2] [9] se define como una forma de
comunicación en la que el usuario es explícitamente consciente del uso de mensajes en la
comunicación mediante envíos y recepciones. Este tipo de interacción empezó a tener gran auge
con la llegada de las arquitecturas multiprocesadores y distribuidas. Dicho mecanismo de
comunicación entre procesos se ha desarrollado en el campo de los sistemas distribuidos de
forma casi independiente al desarrollo de las redes de ordenadores.

La Organización Internacional de Normalización (ISO) propone un conjunto de protocolos de


comunicación para la interconexión de sistemas abiertos (OSI) y define un modelo de referencia
compuesto por siete niveles: nivel físico, nivel de enlace de datos, nivel de red, nivel de
transporte, nivel de sesión, nivel de presentación y nivel de aplicación. El objetivo de los cuatro
primeros niveles es ofrecer comunicación fiable entre dos puntos extremos. Los tres últimos
niveles se refieren a los modos de interacción, representación de datos y servicios adicionales
que se ofrecen a los usuarios. Sin embargo, estos protocolos no consideran el ámbito y las
necesidades de los sistemas distribuidos puesto que:

 Un sistema distribuido normalmente se organiza en torno a una red local. Estas


redes son altamente fiables y no necesitan un control de errores de transmisión
tan exhaustivo.
Profesor Martín Arosemena 35 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 Las interacciones dentro del sistema distribuido generalmente intercambian


datos de pequeña longitud. La redundancia que se incluye para implementar los
protocolos ISO es muy grande en proporción a los datos de usuario.
 Los protocolos de paso de mensajes permiten tolerar los fallos introducidos por
la red, bien reintentando en caso de fallos transitorios, o bien reencaminando
los mensajes en caso de fallos permanentes. Sin embargo, la detección de
errores no es suficiente: además de considerar pérdidas de mensajes, corrupción
de datos, duplicaciones y llegada de mensajes fuera de secuencia (en orden no
FIFO), un sistema distribuido también necesita tratar con particiones de red, [9]
caídas de equipos y entregas no causales entre otros. Estos fallos no siempre se
pueden corregir con retransmisiones (es difícil diferenciar entre la partición de
la red y la caída de un conjunto de servidores).
 No se tienen en cuenta las demandas de ciertos tipos de aplicaciones distribuidas
que necesitan servicio de comunicación con grupos de procesos.

Un diseño eficiente de los mecanismos de interacción entre procesos sólo se puede


conseguir analizando cómo y para qué se utilizan.

2.3 Comunicación cliente-servidor

Es una arquitectura de paso de mensajes, que puede operar variables


compartidas mediante un archivo público de acceso remoto (tipo CGI-BIN o MIME); su
propiedad de distribución de trabajo aprovecha la versatilidad de que un servidor puede
también ser cliente de otros servidores. El acceso a los terceros recursos se hace
mediante el intermedio del servidor, quien se convierte en cliente de otros. Por
ejemplo un servidor web puede ser cliente de los servicios DNS, MySQL, POP3, SMTP,
pero ser anfitrión de Java, PHP, ASP, HTML, FTP; o por ejemplo un buscador web es
servidor de consultas para usuarios pero es cliente de toda la web en dónde hace sus
búsquedas. El número de encadenamiento entre nodos cliente-servidor con otros
iguales debería ser muy grande pues esto exigiría tareas extra de administración de
tráfico, que están contempladas inherentemente en el propio esquema de paso de
mensajes. El número de encadenamiento de clientes-servidores se define como Modelo
de N capas.

El siguiente diagrama muestra un modelo cliente-servidor de dos capas, el típico


esquema de Web Hosting con varios servidores en una sola máquina, para el servicio
HTTP en Internet; los servidores forman una linea frontal en la que si una petición no
puede ser atendida, se traslada al servidor contiguo. En el caso de requerirse un servicio
de más bajo nivel entonces se pueden agregar capas de servidores que operan detrás
de la linea frontal, por ejemplo un PHP o SQL Server. Para esto se usa el modelo común
de tres capas, por ejemplo el servidor HTTP-PHP-SQL. según la configuración del
software se pueden mover alterar el balance de carga hacia los clientes o hacia el
servidor, por lo cual debe entenderse que el Modelo de Balance de Carga entre clientes
y servidor es independiente del modelo de N capas. Un Modelo de tres capas puede

Profesor Martín Arosemena 36 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

funcionar de tal manera que la capa intermedia sea la que tiene menos carga de
procesamiento, pero tendrá más trabajo de comunicación.

En un sistema distribuido, las necesidades de comunicación conducen a utilizar


esquemas específicos de gestión de los recursos para los que el paso de mensajes resulta
adecuado.

Un recurso estará a cargo de un proceso gestor, con quien deberá comunicarse cualquier
proceso que pretenda acceder a él, siguiendo un esquema cliente-servidor; lo que
permite expresar el acceso a servicios mediante un protocolo de petición-respuesta. El
modelo cliente-servidor se puede implementar mediante un mecanismo de paso de
mensajes específico, como por ejemplo el mecanismo de transporte TCP para HTTP y
HTTPS, la Interfaz CGI/BIN o la interfaz de sockets de UNIX para TCP/IP o UDP/IP.

Figura No. 4. Resumen de las modalidades más utilizadas en la modalidad cliente-servidor

2.4 Llamadas a procedimientos remotos (RPC)

Para trabajar con procesos distribuidos que necesitan compartir recursos con otros
procesos también se han diseñado interfaces que permiten manejar un espacio de
direcciones común sobre un sistema de memoria física distribuida: sistemas de memoria
compartida distribuida (DSM). La idea es ofrecer a las aplicaciones diseñadas según un
Profesor Martín Arosemena 37 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

modelo de memoria compartida, un soporte para su ejecución en un entorno


distribuido.

Con el objetivo de disminuir la diferencia semántica entre programas que usan servicios
locales (mediante llamadas al sistema) y programas que usan servicios remotos, se han
desarrollado mecanismos que encapsulan los detalles de direccionamiento y
sincronización del envío-recepción de la petición y/o respuesta.

Así, en los lenguajes procedurales, las llamadas a procedimientos remotos RPC's


(Remote Precedure Call), proporcionan una sintaxis de llamada a función como interfaz
para el acceso a servicios. En los lenguajes orientados a objetos, cada recurso es un
objeto identificado unívocamente en el sistema distribuido, al que se accede invocando
los métodos definidos para esa clase de objeto. El acceso a os objetos se realiza
mediante una interfaz de invocación de métodos remotos (por ejemplo, RMI de Java).

2.5 Comunicación entre grupos de procesos

En sistemas distribuidos es de gran interés el soporte de primitivas de paso de mensajes


de amplia cardinalidad es decir de 1:N, ya que existe la necesidad de intercomunicar a
los procesos con otros, ya sea replicados o similares, ya sean procesos anfitriones o
clientes de otros. El concepto de grupos de procesos que se comunican entre sí crea la
necesidad de un gestor, cuyas funciones son similares a aquellas de las tareas de Control
de Acceso a Usuarios.

Una de las formas de comunicación con cardinalidad múltiple es el broadcast o difusión;


permite enviar un mensaje a todas las direcciones accesibles por el emisor, y se usa en
redes locales. Un caso particular de broadcast, el multicast, permite seleccionar un
subconjunto de direcciones a las que enviar el mensaje. El soporte para multicast es muy
útil en sistemas replicados, como se verá más adelante. Como ejemplo, el protocolo IP
reserva un conjunto de direcciones para multicast.

El estándard POSIX significa Interfaz de Sistema Portable tipo UNIX,


(Portable Operating System Interface UniX type) y establece una familia de estándares
de llamadas al sistema operativo definidos por el IEEE y especificados formalmente en
el IEEE 1003. Persiguen generalizar las interfaces de los sistemas operativos para que
una misma aplicación pueda ejecutarse en distintas plataformas. Estos estándares
surgieron de un proyecto de normalización de las API y describen un conjunto de
interfaces de aplicación adaptables a una gran variedad de implementaciones de
sistemas operativos. Los grupos de procesos que se diseñan bajo una especificación
POSIX trabajan en función de señales. Una señal es una instrucción de alto nivel que se
dirige a un grupo de procesos, la razón de esto es que a diferencia de un S.O.
centralizado, en el que se ha de multiplexar (Intercalar) la ejecución de varios procesos,
aquí la distribución de un proceso obedece a una necesidad de terminarlo en menor
tiempo dividiéndolo en tareas más pequeñas, todas idénticas repartidas por la red; de
tal manera que es fácil entender las funciones del administrador de grupos de procesos
Profesor Martín Arosemena 38 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

pues es más simple replicar un proceso idéntico muchas veces, que manejar un conjunto
diverso de procesos.

Los grupos de procesos están a su vez agrupados en sesiones, que residen en una capa
de software que se encarga de administrarlos de la misma forma en que se administran
las sesiones de usuarios. Los grupos de procesos no pueden migrar de una sesión a otra,
y un proceso sólo puede crear nuevos grupos de procesos que pertenezcan a la misma
sesión a la que pertenece. Un proceso únicamente puede unirse a un grupo de procesos
que esté en su misma sesión. Nuevas imágenes de proceso creadas por una llamada a
una función de la familia exec heredarán el grupo de proceso y la sesión de la imagen
original.

Un segundo uso no relacionado del término grupo de procesos aparece en el contexto


de sincronía virtual, un modelo de ejecución distribuido en el que grupos de procesos
corriendo en diferentes máquinas se asocian para compartir eventos, replicar datos o
coordinar acciones, no tanto basado en un reloj de tiempo real sino en un esquema de
eventos disparadores.

El desarrollo de Internet está forzando la evolución de los protocolos de nivel de red.


Así, el protocolo IPv4, cuyas direcciones de 32 bits suponen un problema de
escalabilidad, está dejando paso al IPv6, que especifica direcciones de 128 bits. Internet
y los nuevos paradigmas de cómputo están imponiendo sus estilos de comunicación. De
este modo, se aprecia una tendencia general a la utilización de HTTP como protocolo de
acceso a servicios, como evolución del esquema RPC clásico. Por otra parte, la
distribución de servicios ha provocado una evolución del esquema cliente-servidor
clásico hacia estructuras peer-to-peer, donde los roles de cliente y servidor son
intercambiables. En tales sistemas, habitualmente dinámicos, los nodos indistintamente
ofrecen y solicitan servicios, y eventualmente cooperan en la búsqueda de servicios y en
el encaminamiento de peticiones.

Podemos resumir la Disposiciones Generales de la comunicación:

 Utilizando el servicio básico de acceso al medio, el cliente debe localizar e iniciar


la comunicación con el servidor.
 No se utiliza la metodología de compartición de archivos, ya que todos los
accesos a la información se llevan a cabo a través de servicios de datos (paquetes
o datagramas).
 Los programas de manejo y control de información solo se envían y reciben los
resultados de las operaciones.
 Debido a la flexibilidad de establecer sesiones con múltiples servidores y manejo
de información en varias bases de datos (en sitios remotos es requerido el uso
de estilos transaccionales y cooperativos).

Profesor Martín Arosemena 39 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

2.6 Tecnologías de comunicación para Sistemas Distribuidos: Sockets (ejemplos: Unix, Sun
RPC, JAVA RMI)

Los sockets son utilizados como medios de comunicación entre procesos ejecutados en
máquinas distintas, que permite que estos procesos intercambien información (envió y
recepción). Los sockets están basados en tecnología Cliente-Servidor, utilizan los
puertos del ordenador que están entre 1 y 65535 en casi todas las plataformas (Unix,
Windows, MacOs) de los cuales del 1 al 1024 son puertos conocidos (23 telnet, 21 ftp,
22 ssh, etc) los cuales no pueden ser utilizados para la codificación de comunicación
entre dos equipos utilizando sockets.

Los socket se encuentran en la capa de transporte del modelo OSI, es decir pueden ser
UDP (no orientado a conexión) y TCP (orientado a conexión).

Los pasos para establecer una conexión son las siguientes:

1. El servidor crea un socket con nombre y espera la conexión del cliente

2. El proceso cliente crea un socket sin nombre

3. El proceso cliente realiza una petición al socket del servidor

4. El cliente realiza la conexión a través de su socket con el socket del servidor.

Los tipos de sockets son:

Sock_dgram: socket de comunicación en modo no conectado, utiliza el protocolo udp


que no verifica ni valida que los paquetes lleguen completos.

Sock_stream: para comunicación en modo conectado, utiliza el protocolo TCP que


garantiza y verifica que los paquetes lleguen completos

Sock_raw: utiliza el protocolo de capa 3 (nivel de red)

Sock_seqpacket: similar al sock_stream, pero los mensajes tienen tamaño fijo.

Ventajas del Uso de Sockets:

- Optimización del ancho de banda.

- Compatible con casi todos los lenguajes de Programación

- Disponible en casi todos los sistemas operativos (Windows, Unix, Mac Os)

Profesor Martín Arosemena 40 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Desventajas del uso de Sockets:

- Complicado de desarrollo

- Necesario determinar direcciones ip, puertos y protocolos.

Qué son los sockets?

Los sockets son mecanismos de comunicación entre procesos que permiten que un proceso
hable (emita o reciba información) con otro proceso incluso estando en distintas máquinas.

 Una forma de conseguir que dos programas se transmitan datos.


 Un socket no es más que un "canal de comunicación" entre dos programas que corren sobre
ordenadores distintos o incluso en el mismo ordenador.
 Desde el punto de vista de programación, un socket no es más que un "archivo" que se abre
de una manera especial.

Propiedades de los sockets


 Fiabilidad de la Transmisión. No se pierden los datos transmitidos.

 Conservación del Orden de los Datos. Los datos llegan en el orden en que se emitieron.
 No Duplicación de los Datos. El Dato sólo llega una vez.

 Comunicación en modo conectado. La conexión está establecida antes de iniciar la


comunicación. De este modo, la emisión desde un extremo va destinada al otro
(implícitamente).

 Conservación de los límites de los mensajes. Los límites de mensajes emitidos pueden
encontrarse o conocerse en el destino.

 Envío de Mensajes “urgentes”. Permite el envío de datos fuera de flujo o fuera de banda.
Al enviar datos fuera del flujo normal, son accesibles de inmediato.

Existen básicamente dos tipos:

 Los no orientados a conexión

• El programa de aplicación da la fiabilidad

 Los orientados a conexión.

Profesor Martín Arosemena 41 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

• Comunicaciones fiables

• Circuito Virtual

Figura No. 5. Comparación entre sockets y tuberías (pipes)

Tipos de Sockets

 Un socket queda definido por una dirección IP, un protocolo y un número de puerto.
 En el caso concreto de TCP-IP, un socket se define por una dupla Origen – Destino.
 Tanto el origen como el destino vienen indicados por un par (ip, puerto).

Sockets no orientado a conexión

 Es el llamado protocolo UDP.


 No es necesario que los programas se conecten.
 Cualquiera de ellos puede transmitir datos en cualquier momento, independientemente
de que el otro programa esté "escuchando" o no.
 Garantiza que los datos que lleguen son correctos, pero no garantiza que lleguen todos.
 Se utiliza cuando es muy importante que el programa no se quede bloqueado.
 No importa que se pierdan datos.

Sockes orientado a conexión.

 Primero hay que establecer correctamente la conexión.


 Ninguno de los dos puede transmitir datos.
 Se usa el protocolo TCP del protocolo TCP/IP, para gestionar la conexión.
 Se garantiza que todos los datos van a llegar de un programa al otro correctamente.

Profesor Martín Arosemena 42 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 Se utiliza cuando la información a transmitir es importante, no se puede perder ningún


dato.
 No importa que los programas se queden "bloqueados" esperando o transmitiendo
datos.

Figura No. 6. Arquitectura de Conexión.

Servidor:

• Está ejecutándose y esperando a que otro quiera conectarse a él.

• Nunca da "el primer paso" en la conexión.

• Es el que "sirve" información al que se la pida.

Cliente:

• Es el programa que da el “primer paso ” en la conexión.

• En el momento de ejecutarlo o cuando lo necesite, intenta conectarse al servidor.

• Es el que solicita información al servidor.

Servidor (Funcionalidad)

Profesor Martín Arosemena 43 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Avisar al sistema de que comience a atender dicha conexión de red.

• Se consigue mediante la función listen().

• A partir de este momento el sistema operativo anotará la conexión de cualquier cliente para
pasárnosla cuando se lo pidamos.

• Si llegan clientes más rápido de lo que somos capaces de atenderlos, el sistema operativo hace
una "cola" con ellos y nos los irá pasando según vayamos pidiéndolo.

 Pedir y aceptar las conexiones de clientes al sistema operativo.

• Para ello hacemos una llamada a la función accept().

• Esta función le indica al sistema operativo que nos dé al siguiente cliente de la cola.

• Si no hay clientes se quedará bloqueada hasta que algún cliente se conecte.

Cliente (Funcionalidad)

El programa cliente realiza los siguientes pasos:

 Apertura de un socket, como el servidor, por medio de la función socket()


 Solicitar conexión con el servidor por medio de la función connect().

• Dicha función quedar á bloqueada hasta que el servidor acepte nuestra conexión o bien
si no hay servidor en el sitio indicado, saldrá dando un error.

• En esta llamada se debe facilitar la dirección IP del servidor y el número de servicio que
se desea.

 Escribir y recibir datos del servidor por medio de las funciones write() y read().
 Cerrar la comunicación por medio de close().

Profesor Martín Arosemena 44 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

MODULO III

MIDDELWARE

3.0 Middleware
3.1 Describir el origen, generalidades y diseño de un middleware.

El middleware es el software de múltiples propósitos que proporciona servicios a las


aplicaciones, fuera de lo que ofrece el sistema operativo. Cualquier software entre el kernel
y las aplicaciones de usuario puede ser middleware.

Nick Gall, Analista y Teórico en Sistemas, dijo: "El middleware es software que se trata de
software". El middleware no ofrece funciones de una aplicación tradicional, sino que
conecta software a otro software. El middleware es la cañería para su infraestructura de TI
porque el middleware permite el flujo de datos de una aplicación a otra.

Imperio y empresa

La antigua Roma tenía uno de los sistemas de saneamiento más destacados de la historia.
La compleja red de acueductos y alcantarillas era tan importante que Plinio el Viejo la
consideraba como "el logro más notable de todos" los de Roma. Al igual que los acueductos
de Roma que trasladaban agua, el middleware empresarial traslada datos de un lugar a otro.
No estamos diciendo que el middleware es el mayor logro de la humanidad, pero muchos
otros tipos de software (que tal vez sean más notables) pueden funcionar gracias al
middleware.

¿Qué tipos de middleware están disponibles?

Figura No.7 . Tipos de middleware.

Profesor Martín Arosemena 45 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Taxonomía de los software middleware

La taxonomía o clasificación del software middleware puede ser descrita en dos grandes
categorías: una de integración y otra de aplicación. Éstas poseen a su vez diferentes clases.

Figura No. 8 . Taxonomía de los software middleware.

Categoría de integración

El tipo de integración que incluyen posee la capacidad de unirse con sistemas heterogéneos.
Cada middleware posee diferentes protocolos de comunicación o formas de operar en
diferente software. Los tipos de integración se pueden ver como:

Orientados a procedimiento o procesos

Los middleware que son orientados a procesos, utilizan una comunicación sincronizada
(como por ejemplo el teléfono). Una de las características de estos, es que utilizan el client
stub y el server skeleton. El client stub convierte la petición en un mensaje que es mandado
al servidor; luego el server skeleton recibe el mensaje, lo convierte en la petición y llama a
la aplicación del servidor donde ésta es procesada. Terminado el procesamiento, ocurre el
proceso inverso. El client stub chequea los errores, envía los resultados al software que
inició la petición y entonces suspenden el proceso. Las ventajas de estos middleware es que
usan un tipo estándar en nombres de servicios y procesos remotos, pueden retornar
respuesta aun con problemas en la red y pueden manejar múltiples tipos de formatos para
datos y niveles heterogéneos de sistemas de servicio. Las desventajas son que no poseen
escalabilidad, no pueden retornar la información a un programa diferente del que realizó la
solicitud (reflexión) y poseen procesos muy rígidos.

Profesor Martín Arosemena 46 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Orientados a objetos

Soportan pedidos de objetos distribuidos. La comunicación entre los objetos puede ser
sincronizada, sincronizada diferida o no sincronizada. Soportan múltiples pedidos similares
realizados por múltiples clientes en una transacción. La forma de operar es:

 El objeto cliente llama a un método lógico para obtener un objeto remoto.

 Un ORB Proxy (también conocido como stub) pone en orden la información y la


transmite a través del agente (broker).

 El agente actúa como punto medio y contacta con diversas fuentes de información,
obtiene sus referentes IDs, recolecta información y, en ocasiones, la reorganiza.

 El proxy remoto (también conocido como skeleton) desordena la información que le


llega del agente y se la pasa al objeto servidor.

 El objeto servidor procesa la información y genera un resultado que es devuelto al


cliente siguiendo los pasos inversos.

Las ventajas son que permiten generar reflexión y escalabilidad, que opera con múltiples
tipos de información y estados y que soporta procesos múltiples. Las desventajas consisten
en obtener la existencia de vínculos antes de la ejecución y de un código contenedor para
algunos sistemas heredados.

Orientados a mensajes (MOM, Message-oriented middleware)

Se pueden dividir en dos tipos, espera y publicación/suscripción. El paso de espera se puede


dividir en mensaje y espera. El paso de mensaje inicia con que la aplicación envía un
mensaje a uno o más clientes, con el MOM del cliente. El servidor MOM, recoge las
peticiones de la cola (Message Broker) en un orden o sistema de espera predeterminado.
Los actos del servidor MOM son como un router y usualmente no interactúan con estas. El
MOM de publicación y suscripción actúa de manera ligeramente diferente, es más orientado
a eventos. Si un cliente quiere participar por primera vez, se une al bus de información.
Dependiendo de su función, si es como publicador, suscriptor y ambas, este registra un
evento. El publicador envía una noticia de un evento al bus de memoria. El servidor MOM
envía un anuncio al subscriptor registrado cuando la información está disponible.

Profesor Martín Arosemena 47 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Orientados a componentes

Un componente es un programa que realiza una función específica, diseñada para operar e
interactuar fácilmente con otros componentes y aplicaciones. El middleware en este caso en
una configuración de componentes. Los puntos fuertes de este middleware es que es
configurable y reconfigurable. La reconfiguración se puede realizar en tiempo de ejecución,
lo que ofrece una gran flexibilidad para satisfacer las necesidades de un gran número de
aplicaciones.

Agentes

Los agentes son un tipo de middleware que posee varios componentes:

 Entidades: Pueden ser objetos o procesos.

 Medios de comunicación: Pueden ser canales, tuberías, etc.

 Leyes: Identifican la naturaleza interactiva de los agentes. Pueden ser la


sincronización o el tipo de esquema.

Las ventajas de los middleware agentes son que la capacidad de éstos para realizar una
gran cantidad de tareas en nombre del usuario y para cubrir una amplia gama de estrategias
basadas en el entorno que les rodea. Sin embargo su implementación es complicada debido
a la complejidad y dificultades dadas por las operaciones que manejan.

Categoría de Aplicación

La clasificación por aplicación incluye los middleware que son ajustados para aplicaciones
específicas.

Middleware para acceso a información (DAM, Data Access middleware)


Los middleware para acceso a información tienen la característica de poder interactuar con
diversas fuentes de datos. En este tipo de middleware se encuentran los que procesan
transacciones, gateways de bases de datos y sistemas distribuidos de
transacción/procedimiento. Sus ventajas residen en la comunicación que tienen entre
múltiples fuentes de datos, la conversión del lenguaje de programación de la aplicación a un
lenguaje aceptado por la fuente de datos de destino y la capacidad de respuesta en un
formato y lenguaje aceptable para el solicitante.

Profesor Martín Arosemena 48 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Middleware de escritorio
Los middleware de escritorio pueden hacer variaciones en la presentación de la información
pedida por el usuario por aplicaciones de rastreo y asistencia, controlar cualquier servicio de
transporte y proveer una copia de seguridad y otras operaciones de fondo. Otras pueden
ser manutención y gráficas, ordenamientos, directorios de servicios, manejo de información
de la base de datos, manejo de procesos, calendarización de trabajos, notificación de
eventos de servicios, manejo de instalación de software, servicios de cifrado y control de
accesos.

Middleware basados en la web


Este tipo de middleware asiste al usuario con la navegación web, el uso de interfaces que le
permiten encontrar páginas de su interés y detectar cambios de interés del usuario basado
en su historial de búsquedas. Provee de un servicio de identificación para un gran número
de aplicaciones y comunicación entre procesos independiente del sistema operativo,
protocolo de red y plataforma de hardware. Los middleware que se encuentran fuertemente
unidos a la red se llaman servidores de aplicaciones, ya que mejoraran el rendimiento,
disponibilidad, escalabilidad, seguridad, recuperación de información, y soportan la
administración colaborativa y su uso. Los middleware pueden contactar directamente a la
aplicación ganando mejor comunicación entre el servidor y el cliente. Otros servicios
importantes dados por este tipo de middleware son servicios de directorios, emails, cadenas
de suministros de gran tamaño, accesos remotos a información, descarga de archivos,
accesos a programas y acceso a aplicaciones remotas.

Middleware a tiempo real


La información en tiempo real es caracterizada porque la información correcta en un instante
puede no serlo en otro. Los middleware en tiempo real soportan las peticiones sensibles al
tiempo y políticas de planificación. Esto se realiza con servicios que mejoran la eficiencia de
las aplicaciones de usuario. Los middleware en tiempo real se pueden dividir en diferentes
aplicaciones:

 Aplicación de base de datos en tiempo real.


 Sensor de procesamiento.
 Transmisión de información.
La información que pasa a través de un middleware en tiempo real se ha incrementado
dramáticamente con la introducción de Internet, redes inalámbricas, y las nuevas
aplicaciones basadas en la difusión. Las ventajas de este tipo de middleware son que
proveen un proceso de decisión que determina el mejor criterio para resolver procesos
sensibles al tiempo, y la posibilidad de ayudar a los sistemas operantes en la localización de
recursos cuando tienen tiempos límites de operación. Los middleware multimedia son una
rama mayor en los middleware en tiempo real. Éstos pueden manejar una gran variedad de
información. Estos tipos pueden ser textos, imágenes de todo tipo (GPS, imágenes, etc.),
procesadores de lenguajes naturales, música y video. La información debe ser recopilada,
integrada y entonces enviada al usuario sensible del tiempo. Los dispositivos multimedia
pueden incluir una mezcla de dispositivos tanto físicos (parlantes, cámaras, micrófono) como
lógicos.

Profesor Martín Arosemena 49 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Middleware especialistas
En muchos casos los middleware proveen una tarea muy específica que no se puede ajustar
a las categorías anteriores. Un ejemplo serían middlewares médicos.

EVOLUCION MIDDLEWARE
La arquitectura de los sistemas ha evolucionado con el tiempo. Acompaña los cambios
tecnológicos y de paradigmas. Algunos tipos de arquitectura:

 Centralizadas (Monolíticas).

 Cliente/Servidor (2 niveles).

 En múltiples capas (3 o más niveles).

 Orientadas a servicios (Altamente desacopladas).

Modelo centralizado
También conocidas como “Mainframe architectures”. Toda la “inteligencia”, procesamiento
de negocio, interfaces y persistencia, se realiza en un host central. Los usuarios interactúan
a través de terminales tontas. Capturan el teclado, envían la información al host, este
procesa y se retorna la pantalla a la terminal.

La interacción puede realizarse tanto en terminales unix, dos/windows u otras.


Fueron (y lo son todavía) muy exitosas en ámbitos donde se realizan procesamientos
intensos de datos, Por ejemplo, entidades bancarias, procesamiento de tarjetas de crédito,
etc. Es común encontrar hoy día mainframes en perfecto funcionamiento. Sus
programadores se cotizan en el mercado (escasean).

 Posee limitantes.

 No soporta fácilmente el uso de interfaces gráficas.

 Se dificulta el acceso a repositorios de datos (DBMS) distribuidos.

 Hoy día existe un resurgimiento de las arquitecturas tipo mainframe.

 Como soporte para servidores en arquitecturas cliente servidor distribuidas.

Modelo Cliente/Servidor
 Como una evolución de las anteriores, surge este modelo.

 El servidor de archivos es reemplazado por una base de datos (relacional).

 Se tienen dos partes claramente diferenciadas, el cliente y el servidor.

 El cliente emite consultas, las cuales son respondidas por un servidor.


Profesor Martín Arosemena 50 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 En este caso, se recibe solo la respuesta, en vez de un archivo compartido.

 El procesamiento es dividido entre el cliente y el servidor, balanceando la carga entre


ambos.

Existen modelos basados en cliente servidor que extienden la idea.

 Arquitecturas en 2 capas

 Arquitecturas en 3 capas

 Arquitecturas en 3 capas

 Monitores transaccionales

 Servidores de mensajes

 Servidores de aplicación

Arquitectura en 2 capas

 La presentación y la lógica de negocio se encuentran en la maquina cliente.

 Los datos y el acceso a los mismos, se resuelve en el servidor.

 El servidor suele ser mucho más poderoso que las maquinas cliente.

 Este tipo de arquitecturas es buena cuando el volumen de los usuarios es alto.

 Ahora la lógica de negocio puede colocarse también dentro de la base de datos


(nuevas herramientas)

Arquitectura en 3 capas

 También conocidas como arquitecturas multicapa (no están limitadas a 3),una capa
intermedia se añade entre el ambiente del cliente y el servidor de base de datos,esta
capa puede implementarse de múltiples formas:

 Servidores de aplicación.
 Monitores transaccionales.
 Sistemas de mensajería.

Esta capa intermedia puede:

 Facilitar encolado de peticiones.


 Ejecutar aplicaciones y lógica de negocio (en forma de programas).
Profesor Martín Arosemena 51 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 Cachear información desde la base de datos.


 Definir planificación y prorización del trabajo realizado.

3.2 Identificar los diversos tipos de middleware en un sistema con


ambiente distribuido.

Tipos de middleware

Se pueden clasificar los diferentes middleware en función de su escalabilidad y su tolerancia


a fallos, aunque tomando en cuenta que esta investigación no fue corroborada, pueden
haber otros tipos de clasificaciones:

Remote Procedure Call (RPCs)

 El cliente realiza una llamada a procedimientos que están corriendo en máquinas remotas.
Pueden ser síncronos o asíncronos.

Publish/subscribe

 Este tipo de monitores middleware activan y entregan información relevante para los
subscriptores.

Message Oriented Middleware (MOM)

 Los mensajes enviados al cliente se recogen y se almacenan hasta que son solicitados,
mientras el cliente continúa con otros procesos.

Object Request Broker (ORB)

 Este tipo de middleware permite que los clientes envíen objetos y soliciten servicios en un
sistema orientado a objetos.

SQL-oriented Data Access

 Middleware entre las aplicaciones y los servidores de base de datos.

Profesor Martín Arosemena 52 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Funciones Middleware

Las aplicaciones middleware realizan las siguientes funciones:

Ocultar la distribución: middleware maneja el hecho de que una aplicación esté compuesta de
muchas partes interconectadas ejecutándose en ubicaciones distribuidas.

Ocultar la heterogeneidad: middleware oculta o hace transparente al usuario diversas


plataformas de sistemas operativos, protocolos de comunicación y dispositivos hardware.

Proveer interfaces uniformes y estándares de alto nivel: tanto a los desarrolladores como a los
integradores de aplicaciones, de tal manera que las aplicaciones sean fácilmente desarrolladas,
reusada s, transportadas y puedan interoperar correctamente.

Suministrar un conjunto de servicios comunes: para realizar varias actividades de propósito


general con el fín de evitar duplicar esfuerzos y facilitar la colaboración entre aplicaciones.

Componentes Middleware

El middleware está compuesto de agentes de software que generalmente actúan


entre el sistema operativo y las aplicaciones, con la finalidad de proveer
comunicación entre diferentes aplicaciones en un sistema distribuido. Las funciones
que realiza el middleware dentro de un cluster de servidores (datacenter) son:

 Una interfaz única de acceso al sistema, denominada SSI, la cual genera la


sensación al usuario de que utiliza un único computador muy potente.

 Herramientas para la optimización y mantenimiento del sistema: migración de


procesos, checkpoint-restart (congelar uno o varios procesos, mudarlos de
servidor y continuar su funcionamiento en el nuevohost), balanceo de carga,
tolerancia a fallos, etc.

 Escalabilidad: debe poder detectar automáticamente nuevos servidores


conectados al cluster para proceder a su utilización.

 Existen diversos tipos de middleware, como por ejemplo: MOSIX, OpenMOSIX,


Condor, OpenSSI, etc.

El middleware recibe los trabajos entrantes al cluster y los redistribuye de manera


que el proceso se ejecute más rápido y el sistema n o sufra sobrecargas en un
servidor. Esto se realiza mediante políticas definidas en el sistema
(automáticamente o por un administrador) que le indican dónde y cómo debe
Profesor Martín Arosemena 53 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

distribuir los procesos, por un sistema de monitorización, el cual controla la carga de


cada CPU y la cantidad de procesos en él.

El middleware también debe poder migrar procesos entre servidores con distintas
finalidades:

 Balancear la carga: si un servidor está muy cargado de procesos y otro


está ocioso, pueden transferirse procesos a este último para liberar de carga al
primero y optimizar el funcionamiento.

 Mantenimiento de servidores: si hay procesos corriendo en un servidor


que necesita mantenimiento o una actualización, es posible migrar los procesos
a otro servidor y proceder a desconectar del cluster al primero.

 Priorización de trabajos: en caso de tener varios procesos corriendo en


el cluster, pero uno de ellos de mayor importancia que los demás, puede
migrarse este proceso a los servidores que posean más o mejores recursos para
acelerar su procesamiento.

Servicios middleware

Dentro de los principales servicios que se pueden ofrecer con una


plataforma middleware se encuentran los siguientes:

Administración de Objetos: Soporta desde simples tipos de datos hasta


grandes volúmenes de información.

Administración de Documentos: Usa el servicio de administración de objetos


y además nombra y organiza documentos. Soporta el lenguaje de fórmulas
(lenguaje de script para construir aplicaciones de usuarios).

Seguridad: soporta encripción, firmas digitales y control de acceso discrecional.

Indexamiento: Suministra acceso indexado tanto a resúmenes como a


contenidos completos de documentos. Opera con herramientas de recuperación
basadas en contenido y descriptores de documentos

Mensajería: soporta direccionamiento y transporte de correos,


incluyendo direccionamientos a grupos de nombres y nombres jerárquicamente
organizados.

Eventos: Soportar notificación dinámica a través de mensajes de correo o


registro de Bitácora (Log).

Registro (Logging): Para auditar eventos.

Profesor Martín Arosemena 54 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Nombrado: Soporta enlaces Cliente/Servidor y lo integra con servicios


de transporte y seguridad.

Administración del Sistema: Soporta control de administración desde


consolas remotas.

Además de lo anterior, los siguientes componentes podrían ser servicios

Middleware:

 Administración de Presentaciones: Administrador de formas,


administrador de gráficos, enlazador de hipermedios y administrador de
impresión.

 Computación: Ordenamientos, servicios matemáticos de cálculos, servicios


de internacionalización (para manipulación de alfabetos y caracteres).

 Administración de la Información: Servidor de Directorios, Administrador


de Logs, administrador de archivos, administrador de registros, sistemas de
bases de datos relacionales, sistemas de bases de datos orientadas a objetos,
administrador de bodegas de datos.

 Comunicaciones: Mensajería Peer-to-Peer (P2P), Llamadas a


procesos remotos (RPC), colas de mensajes, correo electrónico, intercambio
electrónico de datos (EDI).

 Administración de Sistemas: Servicio de notificación de eventos, servicios


de contabilidad, administrador de la configuración de dispositivos, administrador
de instalación de software, detector de fallas, coordinador de recuperaciones.

3.3 Describir middleware para sistemas embebidos.

3.4 Describir la arquitectura y aplicaciones de un middleware.

PROTOCOLOS DEL MIDDLEWARE

Es el software que proporciona un enlace entre aplicaciones de software


independientes. Middleware a veces se llama a la vía que conecta dos aplicaciones
y pasa los datos entre ellas. Los middleware permiten que los datos contenidos en

Profesor Martín Arosemena 55 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

una base de datos puedan ser accedidos a través de otra, ahorrando tiempo a los
programadores.

Figura No. 9. Protocolos de Middleware.

Un protocolo permite que componentes heterogéneos de sistemas distribuidos


puedan desarrollarse independientemente, y por medio de módulos de software que
componen el protocolo, haya una comunicación transparente entre ambos
componentes. Es conveniente mencionar que estos componentes del protocolo
deben estar tanto en el receptor como en el emisor.

Los protocolos de recursos y conectividad manejan todas las transacciones de red


específicas para grid que se desarrollan entre los computadores y los recursos de
grid. Por ejemplo, los computadores contribuyendo en una grid específica deben
reconocer los mensajes de grid relevantes e ignorar el resto.

Ejemplos de protocolos:

 IP: Protocolo de Internet.- Protocolo de la capa de Red, que permite definir la


unidad básica de transferencia de datos y se encarga del direccionamiento de la
información, para que llegue a su destino en la red.

 TCP: Protocolo de Control de Transmisión.- Protocolo de la capa de Transporte,


que permite dividir y ordenar la información a transportar en paquetes de menor
tamaño para su transporte y recepción.
Profesor Martín Arosemena 56 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 HTTP: Protocolo de Transferencia de Hipertexto.- Protocolo de la capa de


aplicación, que permite el servicio de transferencia de páginas de hipertexto
entre el cliente WEB y los servidores.

 SMTP: Protocolo de Transferencia de Correo Simple.- Protocolo de la capa de


aplicación, que permite el envío de correo electrónico por la red.

 POP3: Protocolo de Oficina de Correo.- Protocolo de la capa de aplicación, que


permite la gestión de correos en Internet, es decir, le permite a una estación de
trabajo recuperar los correos que están almacenados en el servidor.

Ventajas y campos de aplicación del middleware

Entre las principales ventajas que se obtienen al utilizar el middleware se


encuentran:

 Simplifica el proceso de desarrollo de aplicaciones al independizar los entornos


propietarios.

 Permite la interconectividad de los diferentes Sistemas de Información de una


organización.

 Proporciona mayor control del negocio al poder contar con información


procedente de distintas plataformas sobre el mismo soporte.

 Facilita el desarrollo de sistemas complejos con diferentes tecnologías y


arquitecturas.

Dentro de los inconvenientes más importantes se des tacan la mayor carga de


máquina necesaria para que puedan funcionar.

Profesor Martín Arosemena 57 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Aplicaciones.

Los servicios de middleware proporcionan un conjunto más funcional de la APIs para


permitir una aplicación a:

Figura No. 10. Aplicaciones de middleware.

 Localizar claramente a través de la red, proporcionando así una interacción


con otro servicio o aplicación.

 Los datos filtrados para que sean utilizables en un ambiente público a través
de
 proceso de anonimización para la protección de la privacidad.

 Ser independiente del servicio de red

 Ser fiable y siempre disponible

 Añadir los atributos complementarios como semántica en comparación con


el sistema operativo y servicios de red.

Las empresas frecuentemente utilizan las aplicaciones de middleware para vincular


la información de bases de datos de sus departamentos, tales como nóminas, ventas

Profesor Martín Arosemena 58 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

y contabilidad, o bases de datos alojadas en múltiples localizaciones geográficas.


En el mercado de la salud que es altamente competitivo, los laboratorios hacen un
amplio uso de aplicaciones de middleware para minería de datos y sistema
informático del laboratorio (LIS), y para combinar los sistemas de información
durante fusiones de hospitales. Los Middleware ayudan a reducir la brecha entre
LISs separados en una red de salud recién formado a raíz de una compra del
hospital.

Los middleware pueden ayudar a los desarrolladores de software a no tener que


escribir APIs para todos los programas de control, que actúa como una interfaz de
programación independiente para sus aplicaciones. Para la Internet del Futuro, el
funcionamiento de la red a través del monitoreo de tráfico en escenarios multi-
dominio, utilizando herramientas de mediación (middleware) es una poderosa
ayuda, ya que permiten operadores, investigadores y proveedores de servicios para
supervisar Calidad de servicio y analizar los eventuales fracasos en servicio de
telecomunicaciones.

Por último, el comercio electrónico utiliza middleware para ayudar en el manejo de


transacciones rápidas y seguras a través de muchos tipos diferentes de entornos
informáticos.

Profesor Martín Arosemena 59 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

MODULO IV: REDES

4. Introducción.

¿Qué es la interconexión de redes?

Cuando se diseña una red de datos se desea sacar el máximo rendimiento de sus
capacidades. Para conseguir esto, la red debe estar preparada para efectuar
conexiones a través de otras redes, sin importar qué características posean.
El objetivo de la Interconexión de Redes (internetworking) es dar
un servicio de comunicación de datos que involucre diversas redes con diferentes
tecnologías de forma transparente para el usuario. Este concepto hace que las
cuestiones técnicas particulares de cada red puedan ser ignoradas al diseñar las
aplicaciones que utilizarán los usuarios de los servicios.
Los dispositivos de interconexión de redes sirven para superar las limitaciones
físicas de los elementos básicos de una red, extendiendo las topologías de esta.

Algunas de las ventajas que plantea la interconexión de redes de datos, son:

 Compartición de recursos dispersos.


 Coordinación de tareas de diversos grupos de trabajo.
 Reducción de costos, al utilizar recursos de otras redes.
 Aumento de la cobertura geográfica.

Tipos de Interconexión de redes

Se pueden distinguir dos tipos de interconexión de redes, dependiendo del ámbito


de aplicación:

 Interconexión de Área Local (RAL con RAL)


 Una interconexión de Área Local conecta redes que están geográficamente
cerca, como puede ser la interconexión de redes de un mismo edificio o entre
edificios, creando una Red de Área Metropolitana (MAN)
 Interconexión de Área Extensa (RAL con MAN y RAL con WAN)
 La interconexión de Área Extensa conecta redes geográficamente dispersas,
por ejemplo, redes situadas en diferentes ciudades o países creando una
Red de Área Extensa (WAN)

Dispositivos de interconexion de redes.

Concentradores (Hubs)
El término concentrador o hub describe la manera en que las conexiones de
cableado de cada nodo de una red se centralizan y conectan en un único dispositivo.
Profesor Martín Arosemena 60 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Se suele aplicar a concentradores Ethernet, Token Ring, y FDDI(Fiber Distributed


Data Interface) soportando módulos individuales que concentran múltiples tipos
de funciones en un solo dispositivo. Normalmente los concentradores incluyen
ranuras para aceptar varios módulos y un panel trasero común para funciones de
encaminamiento, filtrado y conexión a diferentes medios de transmisión (por
ejemplo Ethernet y TokenRing).

Los primeros hubs o de "primera generación" son cajas de cableado avanzadas que
ofrecen un punto central de conexión conectado a varios puntos. Sus principales
beneficios son la conversión de medio (por ejemplo de coaxial a fibra óptica), y
algunas funciones de gestión bastante primitivas como particionamiento automático
cuando se detecta un problema en un segmento determinado.

Los hubs inteligentes de "segunda generación" basan su potencial en las


posibilidades de gestión ofrecidas por las topologías radiales (TokenRing y
Ethernet). Tiene la capacidad de gestión, supervisión y control remoto, dando a los
gestores de la red la oportunidad de ofrecer un período mayor de funcionamiento de
la red gracias a la aceleración del diagnóstico y solución de problemas. Sin embargo
tienen limitaciones cuando se intentan emplear como herramienta universal de
configuración y gestión de arquitecturas complejas y heterogéneas.

Los nuevos hubs de "tercera generación" ofrecen proceso basado


en arquitectura RISC (Reduced Instructions Set Computer) junto con múltiples
placas de alta velocidad. Estas placas están formadas por varios buses
independientes Ethernet, TokenRing, FDDI y de gestión, lo que elimina la saturación
de tráfico de los actuales productos de segunda generación.

A un hub Ethernet se le denomina "repetidor multipuerta". El dispositivo repite


simultáneamente la señal a múltiples cables conectados en cada uno de los puertos
del hub. En el otro extremo de cada cable está un nodo de la red, por ejemplo un
ordenador personal. Un hub Ethernet se convierte en un hub inteligente (smart hub)
cuando puede soportar inteligencia añadida para realizar monitorización y funciones
de control.

Los concentradores inteligentes (smart hub) permiten a los usuarios dividir la red en
segmentos de fácil detección de errores a la vez que proporcionan una estructura de
crecimiento ordenado de la red. La capacidad de gestión remota de los hubs
inteligentes hace posible el diagnóstico remoto de un problema y aísla un punto con
problemas del resto de la RAL, con lo que otros usuarios no se ven afectados.

El tipo de hub Ethernet más popular es el hub 10BaseT. En este sistema la señal
llega a través de cables de par trenzado a una de las puertas, siendo regenerada
eléctricamente y enviada a las demás salidas. Este elemento también se encarga
de desconectar las salidas cuando se produce una situación de error.

A un hub TokenRing se le denomina Unidad de Acceso Multiestación (MAU)


Multiestation Access Unit). Las MAUs se diferencian de los hubs Ethernet porque
las primeras repiten la señal de datos únicamente a la siguiente estación en el anillo
y no a todos los nodos conectados a ella como hace un hub Ethernet. Las MAUs
pasivas no tienen inteligencia, son simplemente retransmisores. Las MAUs activas

Profesor Martín Arosemena 61 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

no sólo repiten la señal, además la amplifican y regeneran. Las MAUs inteligentes


detectan errores y activan procedimientos para recuperarse de ellos.

Repetidores

El repetidor es un elemento que permite la conexión de dos tramos de red, teniendo


como función principal regenerar eléctricamente la señal, para permitir alcanzar
distancias mayores manteniendo el mismo nivel de la señal a lo largo de la red. De
esta forma se puede extender, teóricamente, la longitud de la red hasta el infinito.
Un repetidor interconecta múltiples segmentos de red en el nivel físico del modelo de
referencia OSI. Por esto sólo se pueden utilizar para unir dos redes que tengan los
mismos protocolos de nivel físico.

Los repetidores no discriminan entre los paquetes generados en un segmento y los


que son generados en otro segmento, por lo que los paquetes llegan a todos los
nodos de la red. Debido a esto existen más riesgos de colisión y más posibilidades
de congestión de la red.

Se pueden clasificar en dos tipos:

 Locales: cuando enlazan redes próximas.


 Remotos: cuando las redes están alejadas y se necesita un medio intermedio
de comunicación.

En la siguiente figura se muestra un ejemplo de utilización de un repetidor.

Normalmente la utilización de repetidores está limitada por la distancia máxima de


la red y el tamaño máximo de cada uno de los segmentos de red conectados. En las
redes Ethernet, por problemas de gestión de tráfico en la red, no deben existir más
de dos repetidores entre dos equipos terminales de datos, lo que limita la distancia
máxima entre los nodos más lejanos de la red a 1.500 m. (enlazando con dos
repetidores tres segmentos de máxima longitud, 500 m).

Ventajas:

 Incrementa la distancia cubierta por la RAL.


 Retransmite los datos sin retardos.
 Es transparente a los niveles superiores al físico.

Desventajas:
 Incrementa la carga en los segmentos que interconecta.

Los repetidores son utilizados para interconectar RALs que estén muy próximas,
cuando se quiere una extensión física de la red. La tendencia actual es dotar de más
inteligencia y flexibilidad a los repetidores, de tal forma que ofrezcan capacidad de
gestión y soporte de múltiples medios físicos, como Ethernet sobre par trenzado
(10BaseT), ThickEthernet (10Base5), ThinEthernet (10Base2), TokenRing, fibra
óptica, etc.

Profesor Martín Arosemena 62 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Puentes (Bridges)

Son elementos inteligentes, constituidos como nodos de la red, que conectan entre
sí dos subredes, transmitiendo de una a otra el tráfico generado no local. Al distinguir
los tráficos locales y no locales, estos elementos disminuyen el mínimo total de
paquetes circulando por la red por lo que, en general, habrá menos colisiones y
resultará más difícil llegar a la congestión de la red.
Operan en el Nivel de Enlace del modelo de referencia OSI, en el nivel de trama
MAC (Medium Access Control, Control de Acceso al Medio) y se utilizan para
conectar o extender redes similares, es decir redes que tienen protocolos idénticos
en los dos niveles inferiores OSI, (como es TokenRing con TokenRing, Ethernet con
Ethernet, etc) y conexiones a redes de área extensa.
Se encargan de filtrar el tráfico que pasa de una a otra red según la dirección de
destino y una tabla que relaciona las direcciones y la red en que se encuentran las
estaciones asignadas.

Las redes conectadas a través de bridge aparentan ser una única red, ya que
realizan su función transparentemente; es decir, las estaciones no necesitan
conocer la existencia de estos dispositivos, ni siquiera si una estación pertenece a
uno u otro segmento.

Un bridge ejecuta tres tareas básicas:

 Aprendizaje de las direcciones de nodos en cada red.


 Filtrado de las tramas destinadas a la red local.
 Envío de las tramas destinadas a la red remota.

Se distinguen dos tipos de bridge:


 Locales: sirven para enlazar directamente dos redes físicamente cercanas.
 Remotos o de área extensa: se conectan en parejas, enlazando dos o más
redes locales, formando una red de área extensa, a través de líneas
telefónicas.

Se puede realizar otra división de los bridges en función de la técnica de filtrado y


envío (bridging) que utilicen:

 Spanning Tree Protocol Bridge o Transparent Protocol Bridge (Protocolo de


Arbol en Expansión o Transparente, STP).
Estos bridges deciden qué paquetes se filtran en función de un conjunto de
tablas de direcciones almacenadas internamente. Su objetivo es evitar la
formación de lazos entre las redes que interconecta. Se emplea normalmente
en entornos Ethernet.

 Source Routing Protocol Bridge (Bridge de Protocolo de Encaminamiento por


Emisor, SRP).
El emisor ha de indicar al bridge cuál es el camino a recorrer por el paquete
que quiere enviar. Se utiliza normalmente en entornos TokenRing.

 Source Routing Transparent Protocol Bridge (Bridge de Protocolo de


Encaminamiento por Emisor Transparente, SRTP).

Profesor Martín Arosemena 63 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Ventajas de la utilización de bridges:

 Fiabilidad. Utilizando bridges se segmentan las redes de forma que un fallo


sólo imposibilita las comunicaciones en un segmento.
 Eficiencia. Segmentando una red se limita el tráfico por segmento, no
influyendo el tráfico de un segmento en el de otro.
 Seguridad. Creando diferentes segmentos de red se pueden definir distintos
niveles de seguridad para acceder a cada uno de ellos, siendo no visible por
un segmento la información que circula por otro.
 Dispersión. Cuando la conexión mediante repetidores no es posible debido a
la excesiva distancia de separación, los bridges permiten romper esa barrera
de distancias.

Desventajas de los bridges:


 Son ineficientes en grandes interconexiones de redes, debido a la gran
cantidad de tráfico administrativo que se genera.
 Pueden surgir problemas de temporización cuando se encadenan varios
bridges.
 Pueden aparecer problemas de saturación de las redes por tráfico de
difusión.

Las aplicaciones de los bridges está en soluciones de interconexión de RALs


similares dentro de una interconexión de redes de tamaño pequeño-medio, creando
una única red lógica y obteniendo facilidad de instalación, mantenimiento y
transparencia a los protocolos de niveles superiores. También son útiles en
conexiones que requieran funciones de filtrado. Cuando se quiera interconectar
pequeñas redes.

Encaminadores (Routers)
Son dispositivos inteligentes que trabajan en el Nivel de Red del modelo de
referencia OSI, por lo que son dependientes del protocolo particular de cada red.
Envían paquetes de datos de un protocolo común, desde una red a otra.
Convierten los paquetes de información de la red de área local, en paquetes capaces
de ser enviados mediante redes de área extensa. Durante el envío, el encaminador
examina el paquete buscando la dirección de destino y consultando su propia tabla
de direcciones, la cual mantiene actualizada intercambiando direcciones con los
demás routers para establecer rutas de enlace a través de las redes que los
interconectan. Este intercambio de información entre routers se realiza mediante
protocolos de gestión propietarios

Los encaminadores se pueden clasificar dependiendo de varios criterios:

 En función del área:


o Locales: Sirven para interconectar dos redes por conexión directa de
los medios físicos de ambas al router.
o De área extensa: Enlazan redes distantes.

 En función de la forma de actualizar las tablas de encaminamiento (routing):

Profesor Martín Arosemena 64 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

o Estáticos: La actualización de las tablas es manual.


o Dinámicos: La actualización de las tablas las realiza el propio router
automáticamente.

 En función de los protocolos que soportan:


o IPX
o TCP/IP
o DECnet
o AppleTalk
o XNS
o OSI
o X.25

 En función del protocolo de encaminamiento que utilicen:

Routing Information Protocol (RIP)


Permite comunicar diferentes sistemas que pertenezcan a la misma red lógica.
Tienen tablas de encaminamiento dinámicas y se intercambian información según
la necesitan. Las tablas contienen por dónde ir hacia los diferentes destinos y el
número de saltos que se tienen que realizar. Esta técnica permite 14 saltos como
máximo.

Exterior Gateway Protocol (EGP)


Este protocolo permite conectar dos sistemas autónomos que intercambien
mensajes de actualización. Se realiza un sondeo entre los diferentes routers para
encontrar el destino solicitado. Este protocolo sólo se utiliza para establecer un
camino origen-destino; no funciona como el RIP determinando el número de saltos.

Open Shortest Path First Routing (OSPF)


Está diseñado para minimizar el tráfico de encaminamiento, permitiendo una total
autentificación de los mensajes que se envían. Cada encaminador tiene una copia
de la topología de la red y todas las copias son idénticas. Cada encaminador
distribuye la información a su encaminador adyacente. Cada equipo construye un
árbol de encaminamiento independientemente.

IS-IS
Encaminamiento OSI según las normativas: ISO 9575, ISO 9542 e ISO 10589. El
concepto fundamental es la definición de encaminamiento en un dominio y entre
diferentes dominios. Dentro de un mismo dominio el encaminamiento se realiza
aplicando la técnica de menor coste. Entre diferentes dominios se consideran otros
aspectos como puede ser la seguridad.

Otras variantes de los routers son:

Router Multiprotocolo
Tienen la posibilidad de soportar tramas con diferentes protocolos de Nivel de Red
de forma simultánea, encaminándolas dinámicamente al destino especificado, a
través de la ruta de menor coste o más rápida. Son los routers de segunda
generación. No es necesario, por tanto, tener un router por cada protocolo de alto
nivel existente en el conjunto de redes interconectadas. Esto supone una reducción
de gastos de equipamiento cuando son varios los protocolos en la red global.
Profesor Martín Arosemena 65 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Brouter (bridging router)


Son routers multiprotocolo con facilidad de bridge. Funcionan como router para
protocolos encaminables y, para aquellos que no lo son se comportan como bridge,
transfiriendo los paquetes de forma transparente según las tablas de asignación de
direcciones.

Operan tanto en el Nivel de Enlace como en el Nivel de Red del modelo de referencia
OSI. Por ejemplo, un Brouter puede soportar protocolos de encaminamiento además
de source routing y spanning tree bridging. El Brouter funciona como un router
multiprotocolo, pero si encuentra un protocolo para el que no puede encaminar,
entonces simplemente opera como bridge.

Las características y costes de los Brouter, hacen de estos la solución más


apropiada para el problema de interconexión de redes complejas. Ofrecen la mayor
flexibilidad en entornos de interconexión complejos, que requieran soporte
multiprotocolo, source routing y spanning tree e incluso de protocolos no
encaminables. Son aconsejables en situaciones mixtas bridge/router. Ofrecen la
mayor flexibilidad en entornos de interconexión complejos, que requieran soporte
multiprotocolo.

Trouter
Es una combinación entre un router y servidor de terminales. Permite a pequeños
grupos de trabajo la posibilidad de conectarse a RALs, WANs, modems, impresoras,
y otros ordenadores sin tener que comprar un servidor de terminales y un router. El
problema que presenta este dispositivo es que al integrar las funcionalidades de
router y de servidor de terminales puede ocasionar una degradación en el tiempo de
respuesta.

Ventajas de los routers:


 Seguridad. Permiten el aislamiento de tráfico, y los mecanismos de
encaminamiento facilitan el proceso de localización de fallos en la red.
 Flexibilidad. Las redes interconectadas con router no están limitadas en su
topología, siendo estas redes de mayor extensión y más complejas que las
redes enlazadas con bridge.
 Soporte de Protocolos. Son dependientes de los protocolos utilizados,
aprovechando de una forma eficiente la información de cabecera de los
paquetes de red.
 Relación Precio / Eficiencia. El coste es superior al de otros dispositivos, en
términos de precio de compra, pero no en términos de explotación y
mantenimiento para redes de una complejidad mayor.
 Control de Flujo y Encaminamiento. Utilizan algoritmos de encaminamiento
adaptativos (RIP, OSPF, etc), que gestionan la congestión del tráfico con un
control de flujo que redirige hacia rutas alternativas menos congestionadas.

Desventajas de los routers:


 Lentitud de proceso de paquetes respecto a los bridges.
 Necesidad de gestionar el subdireccionamiento en el Nivel de Enlace.
 Precio superior a los bridges.

Por su posibilidad de segregar tráfico administrativo y determinar las rutas más


eficientes para evitar congestión de red, son una excelente solución para una gran
Profesor Martín Arosemena 66 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

interconexión de redes con múltiples tipos de RALs, MANs, WANs y diferentes


protocolos. Es una buena solución en redes de complejidad media, para separar
diferentes redes lógicas, por razones de seguridad y optimización de las rutas.

Pasarelas (Gateways)
Estos dispositivos están pensados para facilitar el acceso entre sistemas o entornos
soportando diferentes protocolos. Operan en los niveles más altos del modelo de
referencia OSI (Nivel de Transporte, Sesión, Presentación y Aplicación) y realizan
conversión de protocolos para la interconexión de redes con protocolos de alto nivel
diferentes.

Los gateways incluyen los 7 niveles del modelo de referencia OSI, y aunque son
más caros que un bridge o un router, se pueden utilizar como dispositivos
universales en una red corporativa compuesta por un gran número de redes de
diferentes tipos.

Los gateways tienen mayores capacidades que los routers y los bridges porque no
sólo conectan redes de diferentes tipos, sino que también aseguran que los datos
de una red que transportan son compatibles con los de la otra red. Conectan redes
de diferentes arquitecturas procesando sus protocolos y permitiendo que los
dispositivos de un tipo de red puedan comunicarse con otros dispositivos de otro tipo
de red.

Conmutadores (Switches)

Los conmutadores tienen la funcionalidad de los concentradores a los que añaden


la capacidad principal de dedicar todo el ancho de banda de forma exclusiva a
cualquier comunicación entre sus puertos. Esto se consigue debido a que el
conmutador no actúa como repetidor multipuerto, sino que únicamente envía
paquetes de datos hacia aquella puerta a la que van dirigidos. Esto es posible debido
a que los equipos configuran unas tablas de encaminamiento con las direcciones
MAC (nivel 2 de OSI) asociadas a cada una de sus puertas.

Esta tecnología hace posible que cada una de las puertas disponga de la totalidad
del ancho de banda para su utilización. Estos equipos habitualmente trabajan con
anchos de banda de 10 y 100 Mbps, pudiendo coexistir puertas con diferentes
anchos de banda en el mismo equipo.

Las puertas de un conmutador pueden dar servicio tanto a puestos de trabajo


personales como a segmentos de red (hubs), siendo por este motivo ampliamente
utilizados como elementos de segmentación de redes y de encaminamiento de
tráfico. De esta forma se consigue que el tráfico interno en los distintos segmentos
de red conectados al conmutador afecte al resto de la red aumentando de esta
manera la eficiencia de uso del ancho de banda

Hay tres tipos de conmutadores o técnicas de conmutación:

Profesor Martín Arosemena 67 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 Almacenar - Transmitir. Almacenan las tramas recibidas y una vez


chequeadas se envían a su destinatario. La ventaja de este sistema es que
previene del malgasto de ancho de banda sobre la red destinataria al no
enviar tramas inválidas o incorrectas. La desventaja es que incrementa
ligeramente el tiempo de respuesta del switch.

 Cortar - Continuar. En este caso el envío de las tramas es inmediato una vez
recibida la dirección de destino. Las ventajas y desventajas son cruzadas
respecto a Almacenar -Transmitir. Este tipo de conmutadores es indicado
para redes con poca latencia de errores.

 Híbridos. Este conmutador normalmente opera como Cortar -Continuar, pero


constantemente monitoriza la frecuencia a la que tramas inválidas o dañadas
son enviadas. Si este valor supera un umbral prefijado el conmutador se
comporta como un Almacenar -Transmitir. Si desciende este nivel se pasa al
modo inicial.

En la fase de análisis de necesidades, fase inicial del proceso de adquisición, hay


que tener en cuenta todos aquellos requisitos, limitaciones y restricciones que
afecten, entre otros, a los siguientes puntos:

 Ventajas de la interconexión de redes

Hay que determinar si algunas de las ventajas que proporciona la interconexión de


redes es aplicable a las necesidades de la organización. La interconexión de redes
proporcionan diferentes ventajas:

 Compartición de recursos dispersos o de otras redes.


 Extensión de la red y aumento de la cobertura geográfica.
 Segmentación de una red.
 Separación entre redes.
 Conversión de protocolos.

Antes de segmentar una red es recomendable realizar un estudio de flujos de datos,


porque puede suceder que al realizar la partición en segmentos se aumente el tráfico
en los segmentos en vez de disminuirlo.

 Número de redes que van a ser conectadas y topología de las redes

El conocimiento del número de redes a interconectar y las características


específicas de cada uno de ellas, permitirá dimensionar correctamente tanto la
estructura de la red final como los elementos necesarios para realizar la
interconexión.

También se han de analizar las necesidades de adquisición de nuevas redes o


infraestructura de red para poder dar soporte a la futura red.

Es necesario delimitar claramente el tipo de redes existentes (Ethernet, TokenRing,


FDDI, etc), su topología (estrella, bus, anillo, etc), su distribución espacial en el
entorno de operación (localización y distancias). Es recomendable realizar planos
del entorno en cuestión.

Profesor Martín Arosemena 68 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 Características del entorno físico de operación

La interconexión de redes exige por lo general el tendido de cableado en las


dependencias por las que se extienden las redes y ello es una labor cuya
complejidad, impacto y coste depende de varios factores. Entre éstos habrá que
considerar el área cubierta por las redes y por su interconexión (ubicaciones,
departamentos y edificios a interconectar), sus topologías, las peculiaridades
constructivas de los locales o edificios, y otras cuestiones que pueden afectar no
sólo al coste sino incluso a la viabilidad de la implantación de la interconexión de
redes.

 Estimación del coste de adquisición, operación y mantenimiento

El coste de adquisición de dispositivos de interconexión de red tiene varios


componentes, directos e indirectos. Todos ellos han de ser tenidos en cuenta si se
quiere realizar una previsión razonable de fondos. Los principales factores de coste
son los siguientes:

 Dispositivos físicos de la red: medio de transmisión, elementos de conexión de


los nodos, etc.

 Dispositivos lógicos de la red: sistemas de gestión, control y mantenimiento.


Instalación: acondicionamiento de locales, canalización, tendido de cables,
conexión de dispositivos, etc.

 Costes indirectos: redimensionamiento de nodos pasivos y activos, elementos


complementarios, etc.

 En ningún caso debe despreciarse a priori la importancia de ningún tipo de


costes.

 El responsable público de adquisición deberá de disponer de una estrategia de


redes perfectamente elaborada para poder satisfacer las necesidades que se
puedan plantear en un futuro. Cuando una red está instalada, ésta crece de
forma continuada, aumentando en equipos anteriormente no considerados y
llegando a lugares no contemplados, soportando nuevas aplicaciones..., lo cual
demandará capacidades no imperativas inicialmente

 Factores relevantes en el proceso de adquisición

En la definición del objeto del contrato y los requisitos inherentes al mismo, así como
en la valoración y comparación de ofertas de los licitadores pueden intervenir
muchos factores y de muy diversa índole.

Es de suma importancia que todos los factores relevantes que intervienen en el


proceso de contratación queden debidamente recogidos en el pliego de
prescripciones técnicas que regule el contrato. Así mismo, es conveniente que las
soluciones ofertadas por los licitadores sean recogidas en los cuestionarios
disponibles a tal efecto:
Profesor Martín Arosemena 69 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 De empresa

 Económicos

 Técnicos particulares

No obstante y a título orientativo en este apartado se hace mención de aquellos


factores, que entre los anteriores, pueden intervenir en el proceso de adquisición
de equipos y sistemas de interconexión de redes y cuyo seguimiento debe
efectuarse exhaustivamente:

Gestión disponible

SNMP
CMIP
CMOT

La complejidad de las redes impone la necesidad de utilizar sistemas de gestión


capaces de controlar, administrar y monitorizar las redes y los dispositivos de
interconexión. Los routers son dispositivos que necesitan que se realicen funciones
de gestión. En los otros dispositivos es recomendable que tengan esta facilidad.

En función de los elementos técnicos que intervienen y del alcance abarcado, se


definen distintos tipos de pruebas sobre los siguientes entornos de una red de datos:

1º) Operativa de Red:

Se distingue entre lo que es un funcionamiento normal de la red y el funcionamiento


o reacción de ésta ante los diversos fallos que puedan producirse. Entendiendo por
funcionamiento normal, aquél en el que los equipos y la red se encuentran en
óptimas condiciones.

Funcionamiento normal.

Se realizarán las comprobaciones de las siguientes funcionalidades:


 Comunicaciones entre Puertos.
 Comprobar las comunicaciones a través de una red.
 Comprobar las comunicaciones con redes externas.
 Comprobar la existencia de derechos de acceso a los distintos puertos de
las tarjetas de los diferentes equipos.
 Configuraciones dinámicas.
 Comprobar que las inserciones o extracciones de tarjetas de una red, no
afectan al funcionamiento de la misma.
 Comprobar que la extracción o inserción de una tarjeta router, no afecta al
funcionamiento de las redes locales conectadas a ese router.
 Comprobar que un cambio en la configuración de una tarjeta, no afecta al
funcionamiento del resto de la red.

Funcionamiento ante fallos.

Profesor Martín Arosemena 70 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Se realizarán pruebas destinadas a la comprobación de cómo reacciona la red, en


el caso de que se produzcan fallos en distintos elementos de la misma.

 Comprobar que las redes siguen funcionando aisladamente, después de la


caída de un ramal.
 Comprobar el funcionamiento de las redes ante la caída de una tarjeta de un
equipo.

2ª) Gestión de Red

Funcionamiento propio del sistema de gestión:


 Comprobar el funcionamiento de la red ante la caída del sistema de gestión.
 Comprobar que existe un control de accesos al sistema de gestión de red,
con distintos niveles de seguridad.

Monitorización de la red.
 Comprobar que el sistema de monitorización gráfica responde en tiempo real
a los eventos que ocurren en la red.
 Comprobar que se pueden visualizar distintos niveles dentro de la topología
de la red.

Tratamiento de alarmas.
 Comprobar que el fallo, y posterior recuperación de elementos de la red,
provoca las alarmas adecuadas.
 Comprobar la existencia de herramientas de prueba remota.
 Comprobar la existencia de distintos niveles de alarmas, y que pueden ser
definidas por el usuario.

Informes y estadísticas.
Analizar con las herramientas disponibles la actividad de la red y la creación
de informes sobre la misma.

4.1 La necesidad de una arquitectura de protocolos

Hubo una época en que la conectividad estaba limitada a equipamientos y software


propietarios. Esta siempre ha sido la primera época de casi todos los desarrollos. A
veces por tratarse de tecnologías de avanzada, a veces por la demora de las
Profesor Martín Arosemena 71 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

instituciones de normalización, la apertura de la conectividad ha sido un objetivo que


aún hoy no se ha al-canzado plenamente. Porque menuda tarea es expresar normas
de conectividad entre hardwa¬re y software diferentes para establecer una
interrelación lo suficiente abierta como para ser genérica entre entes que se
comunican.
Para ello es menester primero establecer una estructura o arquitectura que defina
una jerarquía de las funcionalidades necesarias para establecer una adecuada
conectividad. La Organización Internacional de Normas o ISO, estableció hace como
15 años el Modelo de Referencia OSI, que hoy lleva la denominación ISO 7498,
aunque es más conocida como X.200. El modelo OSI o Interconexión de Sistemas
Abiertos está desarrollado en base a una arquitectura de siete capas apiladas por lo
que con el tiempo se comenzó a mencionarlo también corno la pila OSI.
La trascendencia del modelo OSI radica en que se define un sistema abierto, de
modo tal que un sistema así puede comunicarse con otro que también se ajuste a
la norma sin importar tecnologías y proveedores de cada uno. Todo esto equivale a
poder definir procedimientos normalizados que rijan el establecimiento de
comunicaciones, transferencia de información y desconexión entre sistemas de
cómputo de todo tipo en base a hardware de computadoras de todo rango y
terminales y periféricos, accionados por software o directamente por operadores
humanos.
El modelo de capas resuelve la interacción horizontal entre capas de dos pilas OSI
de dispositivos conectados por medio de servicios concatenados en sentido vertical
en cada pila.

4.2 La arquitectura de protocolos TCP/IP

A manera de repaso, veamos primero el modelo de referencia OSI para interconexión de redes:

¿Que son redes de comunicacion?

Una red es un conjunto de medios para proporcionar servicios de telecomunicación


entre cierto número de ubicaciones. Una ubicación (fija o móvil) es conocida como
punto de terminación de red o simplemente "ptr". Así pues, podríamos ver una red
como algo abstracto que ofrece un determinado servicio en puntos de terminación
de red.

EL MODELO OSI

¿Que es la torre OSI?

a) Filosofía

Es una arquitectura de protocolos normalizada por la ISO. Divide TODAS las

Profesor Martín Arosemena 72 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

funciones que tiene que realizar un sistema de comunicación en una serie de capas
o niveles. Este modelo no normaliza ningún protocolo, solo define cada capa.

b) Estructura de niveles

Los niveles tienen una estructura jerárquica que se apoya en la noción de servicio.
Cada capa se sirve de la inferior para realizar ciertas funciones, reliza sus propias
funciones y ofrece un servicio a la capa superior. Decimos que cada nivel N es
proveedor de servicio de nivel N y usuario de servicio N-1.

c) Conceptos asociados

Llamamos interfaz de nivel N al límite entre la capa N+1 y la N. En cada interfaz se


puede acceder a unos servicios a través de unas primitivas: funciones que ordenan
que un determinado servicio ejecute una determinada acción.

d) Forma de desempeñar las funciones

Cada capa reliza unas funciones concretas y presta un servicio concreto, es lo que
define la torre OSI, pero no se especifica como realizar esas funciones. Aún así los
distintos niveles siempre cumplen su tarea añadiendo datos generados por ellos a
los datos (PDU's) entregados por el nivel inmediatamente superior (N+1) y con esto
construyen una SDU de nivel N. Los datos generados pueden ir al principio de los
datos entregados (cabeceras) o al final (colas).

e) Directrices seguidas

 Número de niveles suficientemente grande para que cada nivel fuera sencillo
pero tampoco excesivo para evitar que el modelo OSI fuera inmanejable.
 Se intenta que la frontera entre dos capas consecutivas fuera muy sencilla.
 Se agrupan en una misma capa funciones relacionadas entre sí.
 Todas las capas deben tener unicamente interfaz con la capa superior y con
la inferior, salvo evidentemente la primera y la última.
 Reaprovechar al máximo la experiencia acumulada.

Se elaboró un modelo de siete capas (si no contamos el nivel físico que es pasivo
ya que es solo el soporte para la señal electromagnética).

Nivel físico (Nivel 1)


Permite utilizar directamente el medio físico de transmisión.

Como servicio ofrece la transmisión de bits. En este nivel se definen las siguientes
características:

 del medio, es decir, los tipos de conectores, el diámetro del cable y el tipo de
material en su caso, etcétera.
 eléctricas de la transmisión, como los niveles de transmisión o el tipo de señal
transmitido.
 funcionales del medio, es decir, especificar que hace cada hilo o canal.

Profesor Martín Arosemena 73 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

También se definen las reglas de procedimiento, la secuencia de eventos para


transmitir.

Un ejemplo de protocolo es el EIA RS-232, que define la utilización de los puertos


serie de los ordenadores.

Nivel de enlace (Nivel 2)


Es el nivel encargado del control de errores. Ofrece al siguiente nivel una transmisión
fiable de bits.

En redes dedicadas es exactamente lo que hace esta capa. Además, controla el


flujo de datos, para evitar que un equipo envíe datos más rápido de los que lo puede
interpretar otro.

En redes de difusión, además de lo antes mencionado, se encarga del control de


acceso al medio compartido.

En redes de conmutación, además del control de flujo, controla el establecimiento


mantenimiento y liberación de la conexión en cada uno de los enlaces. Asegura que
el bit transmitido llegue de un nodo a otro, o del nodo al terminal (o viceversa). Es
decir, garantiza un salto sin errores.

Ejemplos de protocolos son: HDLC (desarrollado en el tema 6), LAPB, LLC, LAPD,
ALOHA (desarrollado en el tema 8), CSMA, CSMA/CD y Paso testigo.

Nivel de red (Nivel 3)


Se encarga de suministrar una conexión de extremo a extremo.

Esta capa sólo es necesaria en las redes de conmutación o en redes


interconectadas, pues en redes punto a punto o de difusión existe un canal directo
entre los dos equipos, por lo que el nivel 2 proporciona por tanto conexión fiable
entre los dos equipos.

En la máquina origen se suministra la dirección del destino. El nivel de red es


entonces el que se encarga de encaminar la conexión en cada nodo.
Cada nodo requiere un nivel físico y otro de enlace por cada medio de transmisión
que le conecta a otro equipo. Sin embargo solamente requiere un nivel de red.

En redes de conmutación de circuitos, el nivel de enlace se encarga de mantener y


liberar la conexión.

Si la red es de conmutación de paquetes por datagramas, entonces el nivel de red


coge cada datagrama y decide por que enlace enviar dicho datagrama.

Y si la red es de conmutación de paquetes por circuitos virtuales, es el nivel de red


el encargado de establecer dicho circuito.

En caso de ser necesario el encaminamiento, la función corresponde al nivel de red

Profesor Martín Arosemena 74 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Nivel de transporte (Nivel 4)


Su función es parecida a la del nivel 2, salvo que garantiza la transmisión sin errores
de extremo a extremo, independientemente del tipo de red. Se encarga de que los
datos lleguen sin errores, ordenados, sin pérdidas ni duplicados.

En una red de conmutación de paquetes por datagramas, es el nivel de transporte


el que se encarga de ordenar los distintos paquetes que llegan.

En las redes dedicadas y de difusión, no es necesario el nivel de transporte.

Este nivel es necesario exclusivamente en redes conmutadas o interconectadas.

Requiere más trabajo en una red de conmutación de paquetes por datagramas que
en una por circuitos virtuales, debido a la necesidad de ordenar los paquetes.

En las redes de conmutación de paquetes, este nivel se encarga de fragmentar el


mensaje en el origen, y de recomponerlo en el destino.

Nivel de sesión (Nivel 5)


Se encarga de organizar y sincronizar el diálogo entre los dos extremos. Ofrece
mecanismos para gestionar el diálogo entre dos extremos por medio de:

 disciplinas de diálogo, es decir, quien debe emitir en cada instante.


 agrupamiento de datos en unidades lógicas.
 recuperación. Es decir, si se produce algún problema en la comunicación,
disponer de algún punto de comprobación a partir del cual poder retransmitir
los datos.

La mayor parte de los protocolos están definidos por el ISO, aunque su uso es muy
escaso.

Nivel de presentación (Nivel 6)


Este nivel elimina los problemas que puedan surgir al comunicar distintas
arquitecturas, pues cada arquitectura estructura los datos de una forma específica,
que no tienen por qué ser compatibles. En el nivel de transporte se traducen los
datos a un formato común, que se define en este mismo nivel.
En caso de ser necesario, también se encarga de la compresión y del cifrado (mal
llamado encriptado).

Nivel de aplicación (Nivel 7)


Este último nivel se encarga de las aplicaciones más frecuentes, como http,
transferencia de ficheros, telnet, etcétera. También define ciertas funciones que
pueden ser usadas por varias aplicaciones (ACSE, ROSE, CICS...).
En general, la aplicación en sí (el programa, por ejemplo), hace uso de este nivel.

Profesor Martín Arosemena 75 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

ARQUITECTURA TCP/IP
Este tipo de arquitectura se ha impuesto en los años 90 al contrario de lo que se
opinaba en los 80, cuando se creía que el modelo OSI es el que triunfaría.
Los protocolos TCP/IP se crearon y normalizaron mucho antes de que se definiera
el modelo de referencia OSI de la ISO. Ya a finales de los 80, muchas empresas y
administraciones usaban TCP/IP, cuando todavía la torre OSI no estaba totalmente
desarrollada.
Pese a que los gobiernos apoyaban los estándares de OSI, desde mediados de los
80 se ha ido introduciendo TCP/IP en las administraciones, principalmente en el
Departament of Defense de Estados Unidos, donde precisamente se creó.
Otro de los motivos de su implantación es la popularización de Internet.
Aun así, el modelo OSI es una buena idea de organización de protocolos, por lo que
suele ser el más estudiado.
No existe un modelo oficial de protocolos TCP/IP, al contrario que en OSI. Los
protocolos se han ido definiendo anárquicamente, y a posteriori englobados en
capas.

NIVELES DE TCP/IP

Nivel físico (Nivel 1).


Coincide aproximadamente con el nivel fisico de la torre OSI
Define las características del medio, su naturaleza, el tipo de señales, la velocidad
de transmisión, la codificación, etcétera.

Nivel de acceso a la red (Nivel 2).


Comprende el nivel de enlace y buena parte del nivel de red de la torre OSI.
Es el nivel responsable del intercambio de datos entre dos sistemas conectados a
una misma red.

Nivel de Internet (Nivel 3).


Comprende el resto del nivel 3 de la torre OSI no incluido en el nivel de acceso a la
red.
Se encarga de conectar equipos que están en redes diferentes. Permite que los
datos atraviesen distintas redes interconectadas desde un origen hasta un destino.
El principal protocolo utilizado es IP (Internet Protocol).

Nivel de transporte (Nivel 4).


Incluye el nivel 4 y parte del nivel 5 de la torre OSI.

Profesor Martín Arosemena 76 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Proporciona transferencia de datos extremo a extremo, asegurando que los datos


llegan en el mismo orden en que han sido enviados, y sin errores.
Los principales protocolos utilizados son TCP y UDP.

Nivel de aplicaciones (Nivel 5).


Además de las aplicaciones, este nivel se ocupa de las posibles necesidades de
presentación y de sesión.
Los protocolos más utilizados con TCP en el nivel 4 son: TELNET, FTP, HTTP y
SMTP, sobre el que a su vez se apoya MIME.
Y el más utilizado con UDP en el nivel 4 es SMNP.

4.3 Sockets
Refiérase al punto 2.6.

4.4 Redes en Linux


Ver anexos

4.5 Redes en Windows

Ver anexos

Profesor Martín Arosemena 77 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

MODULO V: CLÚSTER Y GRID

5.1 Clúster

5.1.1 Introducción

El término cluster se aplica a los conjuntos o conglomerados de computadoras


construidos mediante la utilización de componentes de hardware comunes y que se
comportan como si fuesen una única computadora.Hoy en día desempeñan un
papel importante en la solución de problemas de las ciencias, las ingenierías y del
comercio moderno.La tecnología de clusters ha evolucionado en apoyo de
actividades que van desde aplicaciones de supercómputo y software de misiones
críticas, servidores web y comercio electrónico, hasta bases de datos de alto
rendimiento, entre otros usos.

El cómputo con clusters surge como resultado de la convergencia de varias


tendencias actuales que incluyen la disponibilidad de microprocesadores
económicos de alto rendimiento y redes de alta velocidad, el desarrollo de
herramientas de software para cómputo distribuido de alto rendimiento, así como la
creciente necesidad de potencia computacional para aplicaciones que la
requieran.Simplemente, un cluster es un grupo de múltiples ordenadores unidos
mediante una red de alta velocidad, de tal forma que el conjunto es visto como un
único ordenador, más potente que los comunes de escritorio.Los clusters son
usualmente empleados para mejorar el rendimiento y/o la disponibilidad por encima
de la que es provista por un solo computador típicamente siendo más económico
que computadores individuales de rapidez y disponibilidad comparables.

5.1.2 Beneficios
De un clúster se espera que presente combinaciones de los siguientes servicios:

1. Alto rendimiento
2. Alta disponibilidad
3. Balanceo de carga
4. Escalabilidad

Alto rendimiento

Un clúster de alto rendimiento :es un


conjunto de ordenadores que está
diseñado para dar altas prestaciones en cuanto a capacidad de cálculo. Los motivos
para utilizar un clúster de alto rendimiento son:

 el tamaño del problema por resolver


Profesor Martín Arosemena 78 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 el precio de la máquina necesaria para resolverlo.

Por medio de un clúster se pueden conseguir capacidades de cálculo superiores a las


de un ordenador más caro que el costo conjunto de los ordenadores del clúster. Ejemplo
de clústers baratísimos son los que se están realizando en algunas universidades con
computadoras personales desechados por "anticuados" que consiguen competir en
capacidad de cálculo con superordenadores carísimos.

Para garantizar esta capacidad de cálculo, los problemas necesitan ser paralelizables,
ya que el método con el que los clústers agilizan el procesamiento es dividir el problema
en problemas más pequeños y calcularlos en los nodos, por lo tanto, si el problema no
cumple con esta característica, no puede utilizarse el clúster para su cálculo.

Alta disponibilidad

Un cluster de alta disponibilidad es un conjunto de dos o más máquinas que se


caracterizan por mantener una serie de servicios compartidos y por estar
constantemente monitorizándose entre sí. Podemos dividirlo en dos clases:

Alta disponibilidad de infraestructura: Si se produce un fallo de hardware en alguna


de las máquinas del clúster, el software de alta disponibilidad es capaz de arrancar
automáticamente los servicios en cualquiera de las otras máquinas delcluster (failover).
Y cuando la máquina que ha fallado se recupera, los servicios son nuevamente
migrados a la máquina original (failback). Esta capacidad de recuperación automática
de servicios nos garantiza la alta disponibilidad de los servicios ofrecidos por el cluster,
minimizando así la percepción del fallo por parte de los usuarios.

Balanceo de carga

El balance o balanceo de carga es un concepto usado en informática que se refiere a


la técnica usada para compartir el trabajo a realizar entre varios procesos, ordenadores,
discos u otros recursos. Está íntimamente ligado a los sistemas de multiprocesamiento,
o que hacen uso de más de una unidad de procesamiento para realizar labores útiles.

Escalabilidad

En telecomunicaciones y en ingeniería informática, la escalabilidad es la propiedad


deseable de un sistema, una red o un proceso, que indica su habilidad para extender el
margen de operaciones sin perder calidad, o bien manejar el crecimiento continuo de
trabajo de manera fluida, o bien para estar preparado para hacerse más grande sin
perder calidad en los servicios ofrecidos.

Profesor Martín Arosemena 79 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

En general, también se podría definir como la capacidad del sistema informático de


cambiar su tamaño o configuración para adaptarse a las circunstancias cambiantes. Por
ejemplo, una Universidad que establece una red de usuarios por Internet para un edificio
de docentes y no solamente quiere que su sistema informático tenga capacidad para
acoger a los actuales clientes que son todos profesores, sino también a los clientes que
pueda tener en el futuro dado que hay profesores visitantes que requieren de la red por
algunos aplicativos académicos, para esto es necesario implementar soluciones que
permitan el crecimiento de la red sin que la posibilidad de su uso y re-uso, disminuya o
que pueda cambiar su configuración si es necesario.

5.1.3 Clasificación de los clústers

El término clúster tiene diferentes connotaciones para diferentes grupos de personas.


Los tipos de clústeres, establecidos de acuerdo con el uso que se dé y los servicios que
ofrecen, determinan el significado del término para el grupo que lo utiliza. Los clústeres
pueden clasificarse según sus características:

 HPCC (High Performance Computing Clusters: clústeres de alto rendimiento).


 HA o HACC (High Availability Computing Clusters: clústeres de alta disponibilidad).
 HT o HTCC (High Throughput Computing Clusters: clústeres de alta eficiencia).

Alto rendimiento: Son clústeres en los cuales se ejecutan tareas que requieren de gran
capacidad computacional, grandes cantidades de memoria, o ambos a la vez. El llevar
a cabo estas tareas puede comprometer los recursos del clúster por largos periodos de
tiempo.

Alta disponibilidad: Son clústeres cuyo objetivo de diseño es el de proveer


disponibilidad y confiabilidad. Estos clústeres tratan de brindar la máxima disponibilidad
de los servicios que ofrecen. La confiabilidad se provee mediante software que detecta
fallos y permite recuperarse frente a los mismos, mientras que en hardware se evita
tener un único punto de fallos.

Alta eficiencia: Son clústeres cuyo objetivo de diseño es el ejecutar la mayor cantidad
de tareas en el menor tiempo posible. Existe independencia de datos entre las tareas
individuales. El retardo entre los nodos del clúster no es considerado un gran problema.

Los clústeres pueden también clasificar en:

 clústeres de IT comerciales (de alta disponibilidad y alta eficiencia) y


 clústeres científicos (de alto rendimiento).

A pesar de las discrepancias a nivel de requisitos de las aplicaciones, muchas de las


características de las arquitecturas de hardware y software, que están por debajo de las

Profesor Martín Arosemena 80 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

aplicaciones en todos estos clústeres, son las mismas. Más aún, un clúster de
determinado tipo, puede también presentar características de los otros.

5.1.4 Componentes de un clúster

En general, un clúster necesita de varios componentes de software y hardware para


poder funcionar:

 nodos

 almacenamiento

 sistemas operativos

 conexiones de red

 middleware

 protocolos de comunicación y servicios

 aplicaciones

 ambientes de programación paralela

Nodos
Pueden ser simples ordenadores, sistemas multiprocesador o estaciones de trabajo. En
informática, de forma muy general, un nodo es un punto de intersección o unión de varios
elementos que confluyen en el mismo lugar. Ahora bien, dentro de la informática la palabra
nodo puede referirse a conceptos diferentes según el ámbito en el que nos movamos:

 En redes de computadoras cada una de las máquinas es un nodo, y si la red es Internet,


cada servidor constituye también un nodo.
 En estructuras de datos dinámicas un nodo es un registro que contiene un dato de
interés y al menos un puntero para referenciar (apuntar) a otro nodo. Si la estructura
tiene solo un puntero, la única estructura que se puede construir con él es una lista, si
el nodo tiene más de un puntero ya se pueden construir estructuras más complejas
como árboles o grafos.

El clúster puede estar conformado por nodos dedicados o por nodos no dedicados.

En un clúster con nodos dedicados, los nodos no disponen de teclado, ratón ni monitor y su
uso está exclusivamente dedicado a realizar tareas relacionadas con el clúster. Mientras
que, en un clúster con nodos no dedicados, los nodos disponen de teclado, ratón y monitor
Profesor Martín Arosemena 81 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

y su uso no está exclusivamente dedicado a realizar tareas relacionadas con el clúster, el


clúster hace uso de los ciclos de reloj que el usuario del computador no está utilizando para
realizar sus tareas.

Cabe aclarar que a la hora de diseñar un clúster, los nodos deben tener características
similares, es decir, deben guardar cierta similitud de arquitectura y sistemas operativos, ya
que si se conforma un clúster con nodos totalmente heterogéneos (existe una diferencia
grande entre capacidad de procesadores, memoria, disco duro) será ineficiente debido a
que el middleware delegará o asignará todos los procesos al nodo de mayor capacidad de
cómputo y solo distribuirá cuando este se encuentre saturado de procesos; por eso es
recomendable construir un grupo de ordenadores lo más similares posible.

Almacenamiento
El almacenamiento puede consistir en una NAS, una SAN, o almacenamiento interno en el
servidor. El protocolo más comúnmente utilizado es NFS (Network File System), sistema de
ficheros compartido entre servidor y los nodos. Sin embargo existen sistemas de ficheros
específicos para clústeres como Lustre (CFS) y PVFS2.

Tecnologías en el soporte del almacenamiento en discos duros:

 IDE o ATA: velocidades de 33, 66, 100, 133 y 166 MB/s


 SATA: velocidades de 150, 300 y 600 MB/s
 SCSI: velocidades de 160, 320, 640 MB/s. Proporciona altos rendimientos.
 SAS: aúna SATA-II y SCSI. Velocidades de 300 y 600 MB/s
 Las unidades de cinta (DLT) son utilizadas para copias de seguridad por su bajo costo.

NAS (Network Attached Storage) es un dispositivo específico dedicado al almacenamiento


a través de red (normalmente TCP/IP) que hace uso de un sistema operativo optimizado
para dar acceso a través de protocolos CIFS, NFS, FTP o TFTP.

Por su parte, DAS (Direct Attached Storage) consiste en conectar unidades externas de
almacenamiento SCSI o a una SAN (storage area network: ‘red de área de
almacenamiento’) a través de un canal de fibra. Estas conexiones son dedicadas.

Mientras NAS permite compartir el almacenamiento, utilizar la red, y tiene una gestión más
sencilla, DAS proporciona mayor rendimiento y mayor fiabilidad al no compartir el recurso.

Sistema operativo
Un sistema operativo debe ser multiproceso y multiusuario. Otras características deseables
son la facilidad de uso y acceso. Un sistema operativo es un programa o conjunto de
Profesor Martín Arosemena 82 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

programas de computadora destinado a permitir una gestión eficaz y segura de sus


recursos. Comienza a trabajar cuando el gestor de arranque carga en memoria su núcleo y
gestiona el hardware de la máquina desde los niveles más básicos, permitiendo también la
interacción con el usuario. Se puede encontrar normalmente en la mayoría de los aparatos
electrónicos que utilicen microprocesadores para funcionar, ya que gracias a estos podemos
entender la máquina y que ésta cumpla con sus funciones (teléfonos móviles, reproductores
de DVD, radios, computadoras, etc.).

Conexiones de red
Los nodos de un clúster pueden conectarse mediante una simple red Ethernet con placas
comunes (adaptadores de red o NICs), o utilizarse tecnologías especiales de alta velocidad
como Fast Ethernet, Gigabit Ethernet, Myrinet, InfiniBand, SCI, etc.

Ethernet

 Son las redes más utilizadas en la actualidad, debido a su relativo bajo coste. No
obstante, su tecnología limita el tamaño de paquete, realizan excesivas comprobaciones
de error y sus protocolos no son eficientes, y sus velocidades de transmisión pueden
limitar el rendimiento de los clústeres. Para aplicaciones con paralelismo de grano
grueso puede suponer una solución acertada.
 La opción más utilizada en la actualidad es Gigabit Ethernet (1 Gbit/s), siendo
emergente la solución 10 Gigabit Ethernet (10 Gbit/s). La latencia de estas tecnologías
está en torno a los 30 a 100 μs, dependiendo del protocolo de comunicación empleado.
 En todo caso, es la red de administración por excelencia, así que aunque no sea la
solución de red de altas prestaciones para las comunicaciones, es la red dedicada a las
tareas administrativas.

Myrinet (Myrinet 2000 y Myri-10G).

 Su latencia es de 99 a 10 μs, y su ancho de banda es de 2 a 10 Gbit/s (para Myrinet


2000 y Myri-10G, respectivamente).
 Es la red de baja latencia más utilizada en la actualidad, tanto en clústeres como en
MPP; está presente en más de la mitad de los sistemas del top500. Tiene dos bibliotecas
de comunicación a bajo nivel (GM y MX). Sobre estas bibliotecas están implementadas
MPICH-GM, MPICH-MX, Sockets-GM y Sockets MX, para aprovechar las excelentes
características de Myrinet. Existen también emulaciones IP sobre TCP/IP, IPoGM e
IPoMX.

Profesor Martín Arosemena 83 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Myrinet (Myrinet 2000 y Myri-10G).

 Su latencia es de 99 a 10 μs, y su ancho de banda es de 2 a 10 Gbit/s (para Myrinet


2000 y Myri-10G, respectivamente).
 Es la red de baja latencia más utilizada en la actualidad, tanto en clústeres como en
MPP; está presente en más de la mitad de los sistemas del top500. Tiene dos
bibliotecas de comunicación a bajo nivel (GM y MX). Sobre estas bibliotecas están
implementadas MPICH-GM, MPICH-MX, Sockets-GM y Sockets MX, para aprovechar
las excelentes características de Myrinet. Existen también emulaciones IP sobre
TCP/IP, IPoGM e IPoMX.

InfiniBand

 Es una red surgida de un estándar desarrollado específicamente para realizar la


comunicación en clústeres. Una de sus mayores ventajas es que mediante la agregación
de canales (x1, x4 y x12) permite obtener anchos de banda muy elevados.
 La conexión básica es de 2 Gbit/s efectivos y con ‘quad connection’ x12 alcanza los 96
Gbit/s. No obstante, los startups no son muy altos, se sitúan en torno a los 10 μs.
 Define una conexión entre un nodo de computación y un nodo de I/O. La conexión va
desde un Host Channel Adapter (HCA) hasta un Target Channel Adapter (TCA). Se está
usando principalmente para acceder a arrays de discos SAS.

SCI (scalable coherent interface) IEEE standard 1596-1992

 Su latencia teórica es de 1,43 μs y su ancho de banda de 5333 Mbit/s bidireccional. Al


poder configurarse con topologías de anillo (1D), toro (2D) e hipercubo (3D) sin
necesidad de switch, se tiene una red adecuada para clústeres de pequeño y mediano
tamaño.
 Al ser una red de extremadamente baja latencia, presenta ventajas frente a Myrinet en
clústeres de pequeño tamaño al tener una topología punto a punto y no ser necesaria la
adquisición de un conmutador. El software sobre SCI está menos desarrollado que
sobre Myrinet, pero los rendimientos obtenidos son superiores, destacando SCI Sockets
(que obtiene startups de 3 microsegundos) y ScaMPI, una biblioteca MPI de elevadas
prestaciones.
 Además, a través del mecanismo de preloading (LD_PRELOAD) se puede conseguir
que todas las comunicaciones del sistema vayan a través de SCI-SOCKETS
(transparencia para el usuario).

Profesor Martín Arosemena 84 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Middleware
El middleware es un software que generalmente actúa entre el sistema operativo y las
aplicaciones con la finalidad de proveer a un clúster lo siguiente:

 Una interfaz única de acceso al sistema, denominada SSI (Single System Image), la
cual genera la sensación al usuario de que utiliza un único ordenador muy potente;
 Herramientas para la optimización y mantenimiento del sistema: migración de
procesos, checkpoint-restart (congelar uno o varios procesos, mudarlos de servidor y
continuar su funcionamiento en el nuevo host), balanceo de carga, tolerancia a fallos,
etc.;
 Escalabilidad: debe poder detectar automáticamente nuevos servidores conectados al
clúster para proceder a su utilización.

Existen diversos tipos de middleware, como por


ejemplo: MOSIX, OpenMOSIX, Cóndor, OpenSSI, etc.

El middleware recibe los trabajos entrantes al clúster y los redistribuye de manera que el
proceso se ejecute más rápido y el sistema no sufra sobrecargas en un servidor. Esto se
realiza mediante políticas definidas en el sistema (automáticamente o por un administrador)
que le indican dónde y cómo debe distribuir los procesos, por un sistema de monitorización,
el cual controla la carga de cada CPU y la cantidad de procesos en él.

El middleware también debe poder migrar procesos entre servidores con distintas
finalidades:

 balancear la carga: si un servidor está muy cargado de procesos y otro está ocioso,
pueden transferirse procesos a este último para liberar de carga al primero y optimizar
el funcionamiento;
 Mantenimiento de servidores: si hay procesos corriendo en un servidor que necesita
mantenimiento o una actualización, es posible migrar los procesos a otro servidor y
proceder a desconectar del clúster al primero;
 Priorización de trabajos: en caso de tener varios procesos corriendo en el clúster, pero
uno de ellos de mayor importancia que los demás, puede migrarse este proceso a los
servidores que posean más o mejores recursos para acelerar su procesamiento.

Ambientes de Programación Paralela


Los ambientes de programación paralela permiten implementar algoritmos que hagan uso
de recursos compartidos: CPU (central processing unit: ‘unidad central de proceso’),
memoria, datos y servicios.

Profesor Martín Arosemena 85 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

5.1.5 Sistemas de clústeres implementados

Beowulf

En 1994, Donald Becker y Thomas Sterling construyeron la primera Beowulf. Fue construida
con 16 computadores personales con procesadores Intel DX4 de 100 MHz, que estaban
conectados a través de un switch Ethernet. El rendimiento teórico era de 3,2 GFlops.

Berkeley NOW

El sistema NOW de Berkeley estuvo conformado por 105 estaciones de trabajo Sun Ultra
170, conectadas a través de una red Myrinet. Cada estación de trabajo contenía un
microprocesador Ultra1 de 167 MHz, caché de nivel 2 de 512 KiB, 128 MiB de memoria,
dos discos de 2,3 GB, tarjetas de red Ethernet y Myrinet. En abril de 1997, NOW logró un
rendimiento de 10 GFlops.

Google

Durante el año 2003, el clúster Google llegó a estar conformado por más de 1,5 millones de
computadores personales. Una consulta en Google lee en promedio cientos de megabytes
y consume algunos billones de ciclos de CPU.

Profesor Martín Arosemena 86 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Cluster PS2

En el año 2004, en la Universidad de Illinois (en Urbana-Champaign, Estados Unidos), se


exploró el uso de consolas Play Station 2 (PS2) en cómputo científico y visualización de alta
resolución. Se construyó un clúster conformado por 70 PS2; utilizando Sony Linux Kit
(basado en Linux Kondora y Linux Red Hat) y MPI.

Cluster X

En la lista «TOP 500» de noviembre de 2004 fue considerado el séptimo sistema más rápido
del mundo; sin embargo, en julio de 2005 ocupaba la posición catorce. Cluster X fue
construido en el Tecnológico de Virginia en el 2003; su instalación fue realizada por
estudiantes de ese instituto. Está constituido por 2200 procesadores Apple G5 de 2,3 GHz.
Utiliza dos redes: Infiniband 4x para las comunicaciones entre procesos y Gigabit Ethernet
para la administración. Cluster X posee 4 TiB de memoria RAM y 176 TB de disco duro, su
rendimiento es de 12,25 TFlops. Se lo conoce también como Terascale.

Red Española de Supercomputación

En el año 2007 se creó la Red Española de Supercomputación, compuesta por 7 clústeres


distribuidos en distintas instituciones españolas.

Todos los clústeres (a excepción de las segundas versiones de Magerit y MareNostrum, y


el más reciente Caléndula) están formados por un número variable de nodos con
procesadores PowerPC 970FX a 2,2 GHz interconectados con una red Myrinet. El
rendimiento de las máquinas oscilan entre los casi 65 TeraFLOPS proporcionados por los
más de 10000 núcleos de Marenostrum, los casi 16 TeraFLOPS de Magerit (primera
versión) con 2400 procesadores o los casi 3 TeraFLOPS de los 5 nodos restantes.

La actualización de Magerit en 2011 mantiene la arquitectura clúster por su versatilidad y


reemplazando los elementos de cómputo por nodos IBM PS702 con
procesadoresPOWER7 a 3,0 GHz y logrando un rendimiento más de 72 TeraFLOPS lo que
le convierte en el más poderoso de España. Esto demuestra la sencillez y flexibilidad de la
arquitectura: actualizando algunos elementos se obtienen sistemas más potentes sin
grandes complicaciones.

Thunder

Thunder fue construido por el Laboratorio Nacional Lawrence Livermore de la Universidad


de California. Está conformado por 4096 procesadores Intel Itanium2 Tiger4 de 1,4 GHz.
Utiliza una red basada en tecnología Quadrics. Su rendimiento es de 19,94 TFlops. Se ubicó
en la segunda posición del «TOP 500» durante junio de 2004, luego en la quinta posición en
noviembre de 2004 y en la lista de julio de 2005 se ubicó en la séptima posición.

Profesor Martín Arosemena 87 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

ASCI Q

ASCI Q fue construido en el año 2002 por el Laboratorio Nacional Los Álamos, Estados
Unidos. Está constituido por 8192 procesadores AlphaServer SC45 de 1,25 GHz. Su
rendimiento es de 13,88 TFlops. Se ubicó en la segunda posición del «TOP 500» durante
junio y noviembre de 2003, luego en la tercera posición en junio de 2004, en la sexta posición
en noviembre de 2004 y en la duodécima posición en julio de 2005.

5.1.6 Aplicaciones de los clústers

Clústeres en aplicaciones científicas

 Se suelen caracterizar por ser aplicaciones computacionalmente intensivas


 Sus necesidades de recursos son muy importantes en almacenamiento y
especialmente memoria.
 Requieren nodos y sistemas dedicados, en entornos HPC y HTC.
 Suelen estar controlados los recursos por planificadores tipo Maui y gestores de
recursos tipo PBS.
 Son en muchas ocasiones códigos legacy, difíciles de mantener, ya que los dominios
de aplicación suelen ser difícilmente paralelizables.

Ejemplos: Simulaciones (earth simulator), genómica computacional, predicción


meteorológica (MM5), simulación de corrientes y vertidos en el mar, aplicaciones en química
computacional.

Clústeres en aplicaciones empresariales

 Suelen ser aplicaciones no especialmente intensivas computacionalmente, pero que


demandan alta disponibilidad y respuesta inmediata, con lo que los servicios se están
ejecutando continuamente y no controlados por un sistema de colas
 Es usual que un sistema provea varios servicios. Una primera aproximación para realizar
una distribución del trabajo es separar los servicios:

 Un servidor web con la BD en un nodo, el contenedor EJB en otro y el servidor


de páginas web en otro constituye un claro ejemplo de distribución en el ámbito
empresarial.

 Otra aproximación es instalar una aplicación web en un clúster squid como proxy-
caché, apache/tomcat como servidor web/de aplicaciones web, memcached

Profesor Martín Arosemena 88 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

como caché de consultas a la base de datos y mysql como base de datos. Estos
servicios pueden estar replicados en varios nodos del clúster.
Ejemplos: Flickr, Wikipedia y Google.

5.2 Grid

5.2.1 Introducción

La computación grid (o en malla) es una tecnología que permite utilizar de forma coordinada
recursos heterogéneos (entre ellos cómputo, almacenamiento y aplicaciones específicas)
que no están sujetos a un control centralizado. En este sentido es una forma
de computación distribuida, en la cual los nodos participantes pueden ser de iguales o
distintas arquitecturas y cubrir toda la gama de potencia de cómputo, desde embebidos y
hasta supercomputadores.

Típicamente, los sistemas que forman parte de una malla están interconectados
mediante redes de área extensa (por ejemplo Internet). Desarrollado en ámbitos científicos
a principios de los años 1990, su entrada al mercado comercial siguió la idea de la
llamada Utility computing.

El término grid se refiere a una infraestructura que permite la integración y el uso colectivo
de ordenadores de alto rendimiento, redes y bases de datos que son propiedad y están
administrados por diferentes instituciones. Puesto que la colaboración entre instituciones
envuelve un intercambio de datos, o de tiempo de computación, el propósito delgrid es
facilitar la integración de recursos computacionales. Universidades, laboratorios de
investigación o empresas se asocian para formar grids para lo cual utilizan algún tipo
de software que implemente este concepto.

En la computación grid, las redes pueden ser vistas como una forma de computación
distribuida donde un “supercomputador virtual” está compuesto por una serie de
computadores agrupados para realizar grandes tareas.

Llamamos grid al sistema de computación distribuido que permite compartir recursos no


centrados geográficamente para resolver problemas de gran escala. Los recursos
compartidos pueden ser ordenadores (PC, estaciones de trabajo,
supercomputadoras, PDA, portátiles, móviles, etc), software, datos e información,
instrumentos especiales (radio, telescopios, etc.) o personas/colaboradores.

Profesor Martín Arosemena 89 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

La computación grid ofrece muchas ventajas frente a otras tecnologías alternativas. La


potencia que ofrecen multitud de computadores conectados en red usando grid es
prácticamente ilimitada, además de que ofrece una perfecta integración de sistemas y
dispositivos heterogéneos, por lo que las conexiones entre diferentes máquinas no
generarán ningún problema. Se trata de una solución altamente escalable, potente y flexible,
ya que evitarán problemas de falta de recursos (cuellos de botella) y nunca queda obsoleta,
debido a la posibilidad de modificar el número y características de sus componentes.

Estos recursos se distribuyen en la red de forma transparente pero guardando unas pautas
de seguridad y políticas de gestión de carácter tanto técnico como económico. Así pues, su
objetivo será el de compartir una serie de recursos en la red de manera
uniforme, segura, transparente, eficiente y fiable, ofreciendo un único punto de acceso a un
conjunto de recursos distribuidos geográficamente en diferentes dominios de administración.
Esto nos puede llevar a pensar que la computación Grid permite la creación de empresas
virtuales. Es importante saber que una grid es un conjunto de maquinas distribuidas que
ayudan a mejorar el trabajo sobre software pesados.

5.2.2 Beneficios

1. Integrar sistemas y dispositivos heterogéneos. Grid computing proporciona un conjunto


de capacidades de integración horizontal que dirige de forma efectiva los recursos de toda
la empresa, e incluso extienden la solución entre múltiples organizaciones. Por ejemplo, un
científico que participe en una investigación grid podría obtener el acceso a un único
superordenador conectado a un laboratorio.

2. Mejora del coste efectivo de los entornos operativos. A través de la visualización de la


consolidación, reservas, compartición y gestión de recursos a través de las funciones
heterogéneas de tecnologías de la información, la grid computing ayuda a simplificar los
entornos operativos y su gestión reduciendo la administración de su supervisión. Además,
como consecuencia de fomentar la utilización eficiente de los recursos, grid computing
ayuda a las empresas a construir una infraestructura de tecnologías de la información de
costes efectivos que asegure la completa utilización de las inversiones en tecnología
existente.

3. Creación de competencias virtuales seguras y flexibles las tecnologías grid adoptan las
nociones de flexibilidad, libertad de elección de estándares abiertos. Las grids son capaces
de descubrir dinámicamente y ajustarse a los entornos cambiantes y fluctuantes de las
tecnologías de la información. Por esta razón, grid computing facilita el establecimiento,

Profesor Martín Arosemena 90 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

reestablecimiento y cambios de los parámetros que requieren los negocios respecto a la


seguridad y compartición de recursos.

4. Incrementa la capacidad de recursos para responder a las fluctuaciones de la demanda


Permitiendo a las organizaciones de tecnologías de la información agregar recursos
distribuidos y explotar una capacidad no utilizada, los grids incrementan de forma importante
la cantidad de recursos computacionales y de datos disponibles. La grid computing ayuda a
crear infraestructuras de tecnologías de la información que pueden responder rápidamente
a oleadas inesperadas en el tráfico y uso de los recursos.

5. Aumenta la fiabilidad de la infraestructura Sacando ventaja de los recursos del grid como
una alternativa ante la recuperación de los desastres tradicionales, los departamentos de
tecnologías de la información pueden mejorar la fiabilidad y disponibilidad de sus
infraestructuras tecnológicas para aumentar la resistencia a una fracción del coste de los
sistemas duplicados.

Los beneficios de las empresas


Entre los beneficios de la grid computing en el marco de las tecnologías de la información
podemos enumerar

1. Mejorar el tiempo de los resultados para nuevos productos y servicios Aumentando la


productividad y la colaboración, las organizaciones mejoran el tiempo en la obtención de
resultados. Tanto si estos resultados incluyen llevar un nuevo producto al mercado más
rápidamente, resolver un complejo problema de negocio más pronto, realizar un análisis de
datos en profundidad para lanzar un nuevo servicio, la Grid ofrece a las compañías acelerar
el tiempo y tomar la delantera al mercado.

2. Facilitar la colaboración y promover la flexibilidad de las operaciones las ofertas de grid


pueden agrupar no sólo recursos tecnológicos distintos, sino también a la gente. Facilitando
que el personal pueda compartir, acceder y gestionar la información, la tecnología grid puede
hacer que las organizaciones sean capaces de mejorar la colaboración en todas las
unidades de negocio y geográficas para dar soporte a estrategias de globalización.

3. Efectivamente escalable para favorecer distintos tipos de demandas Con grid los negocios
pueden crear infraestructuras flexibles y elásticas que gestionen rápidamente las
fluctuaciones de las demandas de los clientes permitiendo el acceso instantáneo a los
recursos de computación y datos que respondan a las necesidades del negocio. La
capacidad de resolver problemas de negocio complejos más rápido significa que las
organizaciones pueden moverse más rápidamente y ganar ventajas competitivas en el
mercado.

4. Incrementar la productividad Proporcionar a los usuarios finales un acceso sin


restricciones a los recursos informáticos, de datos y de almacenamiento que necesitan, la
tecnología grid puede ayudar a las compañías a mejorar la gestión de recursos humanos.
Profesor Martín Arosemena 91 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

5. Mantener las inversiones de capital Maximizar la productividad, la utilización eficaz de los


recursos existentes es una de las claves para minimizar los costes. Ayudando a asegurarse
la utilización óptima de las capacidades informáticas, la tecnología grid puede ayudar a las
empresas a evitar las dificultades comunes de sobreprovisionamiento o incurrir en el exceso
de costes para infraestructura. Debido a que la grid computing se basa en estándares
abiertos para crear un infraestructura única y unificada, la tecnología libera a las
organizaciones de tecnologías de la información del peso de administrar sistemas no
integrados, reduciendo de esta forma la supervisión.

5.2.3 Clasificación de los grid

Tipología según su finalidad

Esta clasificación tiene en cuenta las diferentes arquitecturas que dan solución a diversos
problemas en las relaciones entre empresas, distinguiendo entre Grid Computacional (Grid
Computing), Grid de Datos (Data Grid), Grid de colaboración (Collaborative Grid) y Grid de
Servicios (Utility Grid).

Grid Computacional hace referencia a la potencia de proceso agregada procedente de la


utilización de un conjunto de sistemas distribuidos, generalmente aprovechando la
capacidad de proceso no utilizada en un momento determinado de los ordenadores
integrantes del Grid. Un ejemplo típico de Grid Computacional es la computación en paralelo
de tareas como SETI@home. A su vez, en este grupo, se pueden distinguir varios tipos de
Grid computacionales (Abbas, 2004, p. 66) atendiendo al tipo de hardware computacional
empleado: (1) Grid doméstico (Desktop Grid): utiliza ordenadores personales; (2) Server
Grids: utiliza servidores departamentales y (3) Cluster Grids de alto rendimiento
(HighPerfomance/Cluster Grids): constituido por superordenadores o clusters HPC.
Además, se pueden dar combinaciones de los tipos anteriores. Empresas del sector
financiero (Joseph y Fellenstein, p. 14) como BNP Paribas, Watchovia, Charles Schwab o
Deutsche Bank utilizan este tipo de Grid para calcular el riesgo de posibles inversiones
teniendo en cuenta una

Grid de Datos (Data Grid) hace referencia a la existencia de una arquitectura de datos
que integra a otras existentes, identificando requerimientos y componentes comunes en los
distintos sistemas y aplicando tecnologías diferentes de forma coordinada para gestionar,
como si de un único recurso se tratara, los datos que aparecen en diversas aplicaciones
intensivas de datos. Existen varios ejemplos de Data Grid (Grahan et al., 2004).

Profesor Martín Arosemena 92 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Entre ellos podemos destacar una solución diseñada para el manejo de datos del Compact
Muon Solenoid (CMS), el detector de partículas de alta energía diseñado para el LHC del
CERN. En la empresa, este tipo de Grid esta siendo muy utilizado en el sector de la
biotecnología, por ejemplo, ISI Pharmaceutical y Novartis Pharmaceutical en el diseño de
medicamentos para la lucha contra el SIDA y el Cáncer y de nuevas fórmulas farmacológicas
o Monsanto para el diseño de productos agrícolas modificados mediante técnicas de
ingeniería genética. La compañía Oracle (1), en su familia de productos Oracle
10G/11G/12G, utiliza también esta filosofía Grid, permitiendo crear «granjas/factorías de
almacenamiento» a las que se pueden añadir servidores estándares y modulares
rápidamente.

Grid de colaboración (Collaborative Grid) proporciona un potente entorno donde


pueden interactuar distintos agentes dispersos geográficamente que colaboran en un
determinado trabajo, de manera que se genera un entorno virtual distribuido en 3D que hace
posible la teleinmersión. Los entornos colaborativos son de gran utilidad en el diseño de
productos complejos en los que intervienen un elevado número de agentes. Ejemplos de
empresa que utilizan este tipo de Grid los tenemos en Peugeot-Citroen (PSA), Audi, Ford o
SAAB para el diseño colaborativo de automóviles y la simulación de impactos o en AMD
para el diseño colaborativo de microprocesadores.

Grid de servicios (Utility Grid) es unodelo que supone una plataforma amplia de servicios;
no sólo de computación o de almacenamiento. Se trata de una infraestructura que, utilizando
las Tecnologías Grid de la Información, pueda proporcionar toda la potencia de sus recursos a
dispositivos ligeros y de poca potencia. La infraestructura sería capaz de soportar el acceso de
dispositivos móviles que en realidad sólo supondrían un método de acceso al Grid y donde el
almacenamiento, las aplicaciones y la ejecución de las tareas realmente estuvieran en el Grid.
Esta infraestructura ofrecería servicios diversos a las empresas y permitirá, además, la
participación de empresas y usuarios en dicho sistema, adquiriendo el doble papel de

proveedores y clientes, lo que se verá reflejado en la cuantificación de los servicios. Este tipo de
Grid es el más actual y el que mayores posibilidades podrá ofrecer a las empresas en el futuro y
en esta línea se sitúan las propuestas de NGG y SOKU.

Este tipo de Grid está siendo actualmente reinterpretado en la llamada computación en nube
(Cloud Computing) o servicios de computación que se ofrecen a través de Internet bajo demanda
y en los que el proveedor dispone de un Grid de recursos virtualizados para poder adaptarse de
forma flexible a las necesidades de los clientes. Amazon, el gran bazar virtual del siglo XXI,
comercializa este tipo de servicios en un sistema de pago por uso, para rentabilizar su potente
infraestructura de recursos informáticos, bajo el nombre de Elastic Computer Cloud (EC2).
Amazon también dispone de grandes espacios de almacenamiento virtualizados, que son

Profesor Martín Arosemena 93 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

ofertados como producto mediante un sistema de pago por uso, y al que denomina como Simple
Storage Service (S3).

Además, la empresa Google también utiliza las Tecnologías Grid de la Información para ofrecer
sus diversos servicios (búsquedas, correo electrónico y almacenamiento de éste, gestión y
alojamiento de blogs, creación de comunidades cerradas que permite el almacenamiento,
intercambio y gestión de imágenes, etc.) y también se posiciona como un proveedor de servicios
en Internet tipo Cloud Computing con su producto Google Apps para empresas (integra Gmail,
Google Talk, Google Calendar, Google Vdeo, Google Sites, Google Docs, etc.).

Tipología según el ámbito organizativo:


Sería necesario distinguir entre las cuatro alternativas siguientes:

InfraGrid o Cluster Grid, Grid que está constituida por un conjunto de pocas máquinas, con
arquitectura hardware similar, conectadas en red de área extensa. Es un sistema que suele
utilizarse para experimentar con software Grid. La utilización debe ser interdepartamental, pero
no requiere de polí- ticas especiales de seguridad. Estos tipos de configuraciones guardan cierta
similitud con los Cluster Interdepartamentales que suponen una evolución de los clusters
departamentales y experimentales, mucho más sencillos, y están formados por máquinas
homogéneas en hardware y sistemas operativos y que forman parte de un único dominio.

Pero mientras que los Cluster Interdepartamentales se limitan a un único dominio en red local,
la InfraGrid también se limita a un único dominio pero en red de área extensa; es decir, se trata
de un cluster con elementos distribuidos geográficamente, de ahí que también reciba la
denominación de Cluster Grid.

IntraGrid es la siguiente progresión, que incluye la unión de distintos dominios con máquinas
heterogé- neas. En esta configuración están disponibles muchos tipos de recursos. En este
sistema Grid se incluyen algunos componentes que realizan la planificación de tareas. Los
recursos se comparten por medio de una red de alta velocidad. Participan máquinas de múltiples
departamentos siempre dentro de una misma organización. También es denominada como
Campus Grid (Gentzsch, 2004, p. 311) o como Grid empresarial (Enterprise Grid).

Como ejemplo de este tipo de Grid en las empresas, podemos citar a IBM que dispone
de una IntraGrid que une su Centro de Innovación de Tecnología Grid, ubicado en
Montpellier (Francia), con los principales centros de investigación y desarrollo que IBM
posee en EE.UU., Israel, Suiza, Japón e Inglaterra. Otros ejemplos los tenemos en la
empresa SUN, que posee una infraestructura Grid interna mediante la que ofrece a sus
clientes servicios de computación mediante un sistema de pago por uso (1$ por hora de
CPU) y en la empresa HP. También en Gateway, que unió los ordenadores de sus
distintas delegaciones en Estados Unidos para aprovechar su capacidad ociosa y ofrecer
servicios de computación a sus clientes; o NTT Data en Japón, que dispone de una
estructura en la que participan más de un millón de PCs con conexiones de banda ancha
para ofrecer un servicio comercial de computación.

Profesor Martín Arosemena 94 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

ExtraGrid es un sistema que incluye a varias organizaciones, donde una determinada


integra a otras colaboradoras con las que comparte recursos, generalmente mediante
redes privadas virtuales (Virtual Private Network, VPN) (Ferreira et al., 2003, p. 89). Una
denominación equivalente a la ExtraGrid es la de Partner Grids: desarrollos Grids entre
organizaciones que colaboran en proyectos comunes, siendo necesario optimizar los
recursos existentes y compartirlos en busca de una meta común (Abbas, 2004, p. 66).
Un ejemplo de este tipo de Grid lo tenemos en la empresa Airbus, en la que, para el
desarrollo de sus productos, interviene un considerable número de empresas y que ha
implantado un Grid para facilitar el trabajo en común.

InterGrid es una Grid que puede ser utilizado uniendo también a un gran número de
organizaciones que, de forma dinámica, colaborarán en proyectos e intereses comunes,
y que comparten recursos, sin existir necesariamente estrechos vínculos entre ellas ni
desequilibrios en sus situaciones de poder. Los requerimientos de seguridad son muy
altos. InterGrid abre posibilidades comerciales hacia la venta e intermediación de
recursos sobre un amplio grupo de posibles consumidores de recursos. Los recursos
podrán ser utilizados como un servicio en un gran Grid de cobertura muy amplia y donde
estarán presentes «proveedores» de recursos

Este tipo de Grid es también denominado Global Grid. El objetivo último puede ser llegar
a formar una gran red Grid de cobertura mundial a la que algunos autores ya han
denominado como World Wide Grid o WWG, Great Global Grid ó GGG, GridNet o «El
Grid». Un ejemplo de InterGrid lo tenemos en la empresa Google, que dispone del,
probablemente, mayor Grid empresarial existente en la actualidad y que interconecta
en una infraestructura común a un gran número de empresas a las que ha ido
adquiriendo (2). La figura 2 refleja esta clasificación tipológica según el ámbito
organizativo.

Profesor Martín Arosemena 95 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Profesor Martín Arosemena 96 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

5.2.4 Arquitectura de una grid.

Habitualmente se describe la arquitectura del grid en términos de “capas”, ejecutando


cada una de ellas una determinada función. Las capas más altas son las más cercanas al
usuario y las inferiores las más próximas a las redes de computación, distinguiendo
entre:

Capa de aplicación. Formada por todas las aplicaciones de los usuarios, portales y
herramientas de desarrollo que soportan esas aplicaciones. Es la capa que ve el usuario
y que proporciona el llamado serviceware, que recoge las funciones generales de
gestión tales como la contabilidad del uso del grid que hace cada usuario.

Capa de middleware. Responsable de proporcionar herramientas que permiten que los


distintos recursos participen de forma coordinada y segura en un entorno grid unificado.

Capa de recursos. Constituida por los recursos que son parte del grid: ordenadores,
supercomputadoras, sistemas de almacenamiento, catálogos electrónicos de datos,
bases de datos, sensores, etc.

Capa de red. Encargada de asegurar la conexión entre los recursos que forman el grid.
Para poder hacer todo lo anterior, las aplicaciones que se desarrollen para ser
ejecutadas en un ordenador concreto, tendrán que adaptarse para poder invocar los
servicios adecuados y utilizar los protocolos correctos. Sin embargo, una vez adaptadas
al grid, miles de usuarios podrán usar las mismas aplicaciones, utilizando las capas de
middleware para adaptarse a los posibles cambios en el tejido del grid.

5.2.5 Componentes de una grid

El grid puede ser de diferentes tamaños, desde una pequeño grupo de equipos a varias
grandes redes interconectadas o miles de nodos trabajando en paralelo.Esta tecnología
se aplica a muchas aplicaciones diferentes, como grandes cálculos matemáticos y
científicos: análisis estructural, grandes servicios Web infraestructuras back-office o
investigación de marketing. Existen varias compañías que diseñan, planifican, lanzan e
implementan entornos y proyectos grid a nivel mundial, respaldados por la mayor red
que existe (internet) y basados en el protocolo IP. Estas pueden ser desde grandes
corporaciones y universidades hasta grandes grupos de trabajo.

Profesor Martín Arosemena 97 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

5.2.6 Sistemas de Grid Implementados


La computación distribuida empezó a ser escalada a niveles globales con la
madurez de Internet en los años 90. Dos proyectos en particular han demostrado
que el concepto es totalmente viable y eficiente, incluso más de lo que los
expertos auguraban en un principio: Distributed.net y SETI@home.

Distributed.net emplea miles de ordenadores distintos para crackear códigos de


encriptación (RC5-64, CSC, DES-III, DES-II-1, DES-II-1, RC5-56, etc.). Fundado en
1997, el proyecto ha crecido hasta abarcar hoy en día más de 60.000 usuarios
alrededor de todo el mundo. El poder de cómputo de Distributed.net ha ido
creciendo hasta llegar a ser el equivalente a más de 160.000 computadoras PII
266MHz trabajando 24 horas al día, 7 días a la semana, y 365 días al año.

SETI@home ha sido el proyecto de computación distribuida más popular de la


historia, cuyo objetivo era la búsqueda de vida extraterreste mediante la
detección de su tecnología de comunicaciones, buscando patrones que
demuestren inteligencia en las ondas de radio procedentes del espacio. Para ello,
cualquier persona que quisiera colaborar podía descargarse un salvapantallas
gratuito (de este modo aprovechaba los ciclos del ordenador sólo cuando éste no estaba
en uso), que instalado en su ordenador analiza señales del espacio captadas con el
radiotelescopio de Arecibo en Puerto Rico. El software se hizo público el 17 de mayo del
1999 y, desde entonces hasta su finalización el 15 de diciembre de 2005, más de 5
millones de voluntarios han instalado el programa en su ordenador, se han conseguido
un total acumulado de dos millones de años de tiempo de CPU y se han analizado
alrededor de 50 TB de datos, convirtiendo al proyecto en el mayor computador virtual
de la historia de la humanidad por análisis realizados.

En la actualidad, SETI@Home sigue en funcionamiento pero integrado en BOINC


(Berkeley Open Infrastructure for Network Computing), un proyecto basado en recursos
de redes abiertas con los mismos principios que el proyecto original. La nueva
infraestructura continuará con la búsqueda de señales de radio extraterrestres, pero
ahora además la potencia de CPU de los participantes se dedicará también a investigar
sobre otras tareas, como el cambio climático, la astronomía y la cura de enfermedades.

El sector más involucrado en todo el mundo en la puesta a punto de plataformas grid en


el desarrollo de aplicaciones adaptadas a esta nueva tecnología es, sin lugar a dudas, el
de la investigación. En España las principales universidades e instituciones de
investigación han participado intensamente en diversos proyectos sobre grid, tanto
nacionales como internacionales, entre otros: “IRISGrid”, “Damien", “HealthGrid”,
“CrossGrid”, “Enabling Grids for e-Science in Europe”, etc. Existen ya varios
agentes grid disponibles para colaborar activamente en este tipo de proyectos, por
ejemplo, en Grid.org de United Devices, cualquiera puede bajarse uno, instalarlo y
Profesor Martín Arosemena 98 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

configurarlo, para colaborar activamente en el desarrollo de esta fascinante tecnología


y, a la vez, desempeñar una labor altamente solidaria (por ejemplo, ayudando al
descubrimiento de nuevos fármacos y vacunas contra algunas de las enfermedades más
terribles de nuestra Era).

América latina no podía ser la excepción ante este auge de la tecnología GRID. Pero si
en los países desarrollados la GRID Computing esta en formación, en nuestros países
(Latinoamérica) apenas está en gestación, por ello se vienen adelantando varios
proyectos y alianzas con instituciones que tienen experiencia en la implementación de
tecnologías GRID. En la actualidad se cuenta con CLARA Cooperación Latino Americana
de Redes Avanzadas que es una organización no gubernamental sin fines de lucro, la
cual estimula la cooperación regional en actividades educativas, científicas y culturales,
además promueve la integración directa con las comunidades científicas de Europa
[CLARA (2006)], esta organización trata de integrar una red regional de
telecomunicaciones de la más avanzada tecnología para interconectar a las redes
académicas nacionales de la región, hasta el momento tiene los siguientes miembros:

· Argentina – Red Teleinformática Académica-RETINA


· Bolivia – Agencia para el Desarrollo de la Sociedad de la Información en
Bolivia-ADSIB
· Brasil – Red Nacional de Enseñanza e Investigación – RNP
· Colombia – Red Nacional Académica de Tecnología Avanzada – RENATA
· Costa Rica – Red Nacional de Investigación – CR2Net
· Cuba – RedUniv
· Chile – Red Universitaria Nacional – REUNA - GREUNA
· Ecuador – Consorcio Ecuatoriano para el Desarrollo de Internet Avanzado –
CEDIA
· El Salvador – Red Avanzada de Investigación, Ciencia y Educación
Salvadoreña – RAICES
· Guatemala – Red Avanzada Guatemalteca para la Investigación y Educación
– RAGIE
· Honduras – Universidad Tecnológica Centroamericana – UNITEC
· México – Corporación Universitaria para el Desarrollo de Internet – CUDI
· Nicaragua – Red Nicaragüense de Internet Avanzada – RENIA
· Panamá – Red Científica y Tecnológica – RedCyT
· Paraguay – Arandu
· Perú – Red Académica Peruana – RAAP
· Uruguay – Red Académica Uruguaya – RAU
· Venezuela – Red Académica de Centros de Investigación y Universidades
Nacionales – REACCIUN

Otro proyecto importante para el trabajo en GRID Computing, que se adelanta en Latino
América actualmente es EELA (E-infrastructure Shared between Europe and Latin
América), en el cual participan 10 países con sus redes académicas y diferentes
instituciones entre universidades y centros de investigación; el objetivo es llevar las e-
Infraestructuras de los países latinoamericanos al nivel de explotación de los países
Europeos. La EELA se beneficia del estado maduro del proyecto ALICE (América Latina
Profesor Martín Arosemena 99 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Interconectada Con Europa) y de la red CLARA [EELA].

5.2.7 Aplicaciones de los grid.

Los posibles campos de aplicación podrían ser:

Supercomputación distribuida
Extracción de conocimientos de almacenes de datos.
Herramientas de cálculo numérico.
Proceso de análisis de datos.

Sistemas Distribuidos en Tiempo Real

Medicina (Tratamiento de imagen para visión artificial)

Proceso intensivo de Datos


Gestores de bases de datos distribuidos.

Servicios Puntuales
Este tipo de aplicaciones son aquellas que permiten acceder a hardware específico para
la realización de labores a distancia.

Profesor Martín Arosemena 100 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

MODULO VI: PROCESAMIENTO DISTRIBUIDO, CLIENTE/SERVIDOR Y CLUSTERS


6.1 Computación cliente/servidor
6.2 Paso de mensajes distribuído
6.3 Llamadas a procesamiento remoto
6.4 clústers
6.5 Servidor clústers de Windows
6.6 Sun clusters
6.7 Clústers Beowulf y Linux

Profesor Martín Arosemena 101 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

MODULO VI

PROCESAMIENTO DISTRIBUIDO, CLIENTE-SERVIDOR Y CLUSTER

6.1 COMPUTACION CLIENTE-SERVIDOR.

Desde el punto de vista funcional, se puede definir la computación Cliente/Servidor como una
arquitectura distribuida que permite a los usuarios finales obtener acceso a la información en
forma transparente aún en entornos multiplataforma. En el modelo cliente servidor, el cliente
envía un mensaje solicitando un determinado servicio a un servidor (hace una petición), y este
envía uno o varios mensajes con la respuesta (provee el servicio). En un sistema distribuido cada
máquina puede cumplir el rol de servidor para algunas tareas y el rol de cliente para otras.

Figura No. 4. Modelo cliente servidor.

El Cliente-Servidor es un sistema distribuido entre múltiples Procesadores donde hay clientes


que solicitan servicios y servidores que los proporcionan. La Tecnología Cliente/Servidor, es un
modelo que implica productos y servicios enmarcados en el uso de la Tecnología de punta, y que
permite la distribución de la información en forma ágil y eficaz a las diversas áreas de una
organización (empresa o institución pública o privada), así como también fuera de ella.

Historia
Existen diversos puntos de vista sobre la manera en que debería efectuarse el procesamiento
de datos. En este contexto, es necesario establecer una infraestructura de Procesamiento de
información, que cuente con los elementos requeridos para proveer información adecuada,
exacta y oportuna en la toma de decisiones y para proporcionar un mejor servicio a los clientes
y ciudadanos. El modelo Cliente/Servidor reúne las características necesarias para proveer esta
infraestructura, independientemente del tamaño y complejidad de las operaciones de las
organizaciones públicas o privadas y, consecuentemente desempeña un papel importante en
este proceso de evolución.

Cliente/Servidor ha evolucionado de época:


Profesor Martín Arosemena 102 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

1ª ÉPOCA:
– LAN.
– LAN con MAINFRAMES.
– Comunicaciones homogéneas (LU, SNA, APPC).
• 2ª ÉPOCA:
– Herramientas de desarrollo C/S.
– Proveedores DBMS con C/S.
– Downsizing: migración a PCs.
– S.O. De red con servidores de servicios
• 3ª ÉPOCA: ACTUAL:
– PWS: Estaciones de trabajo programables gráficamente.
– GUI: Interfaz gráfico de usuario. Alta resolución.
– Nuevas tecnologías: Ratón, lápiz óptico, scanner, multimedia.
– Tecnología de componentes: DDE y OLE.
– Conectividad de BDs: ODBC, JDBC
– Objetos Distribuidos: CORBA, COM, COM+, DCOM
– Internet: HTML, CGI, Applet, ActiveX, JAVA, JavaScript
– Arquitecturas C/S de 2 y 3 niveles.
– Middleware.

Cliente
Es el que pide servicio de Internet o Intranet. Una aplicación consta de una parte de servidor y
una de cliente, que se pueden ejecutar en el mismo o en diferentes sistemas. Los usuarios
invocan la parte cliente de la aplicación, que construye una solicitud para ese servicio y se la
envía al servidor de la aplicación que usa TCP/IP como transporte.

Las funciones que lleva a cabo el proceso cliente se resumen en los siguientes Puntos

• Administrar la interfaz de usuario.

• Interactuar con el usuario.

• Procesar la lógica de la aplicación y hacer validaciones locales.

• Generar requerimientos de bases de datos.

Profesor Martín Arosemena 103 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

• Recibir resultados del servidor.

• Formatear resultados.

Servidor
Es una aplicación que ofrece un servicio a usuarios de Internet, el servidor es un programa que
recibe una solicitud, realiza el servicio requerido y devuelve los resultados en forma de una
respuesta. Generalmente un servidor puede tratar múltiples peticiones (múltiples clientes) al
mismo tiempo.

Las funciones que lleva a cabo el proceso servidor se resumen en los siguientes Puntos

• Aceptar los requerimientos de bases de datos que hacen los clientes.

• Procesar requerimientos de bases de datos.

• Formatear datos para trasmitirlos a los clientes.

• Procesar la lógica de la aplicación y realizar validaciones a nivel de bases de datos

Cliente-Servidor
Es la tecnología que proporciona al usuario final el acceso transparente a las aplicaciones, datos,
servicios de cómputo o cualquier otro recurso del grupo de trabajo y/o, a través de la
organización, en múltiples plataformas. El modelo soporta un medio ambiente distribuido en el
cual los requerimientos de servicio hechos por estaciones de trabajo inteligentes o
"clientes, resultan en un trabajo realizado por otros computadores llamados servidores".

¿Por qué Cliente-Servidor?


Muchos clientes ven interesante al esquema Cliente-Servidor por razones que están más allá de
los méritos técnicos. Esto es ciertamente válido, pero tenga cuidado con las trampas en las que
pueda caer si la solución Cliente-Servidor no fue realizada por una razón técnica primaria. Hay
tres razones primordiales a considerar en Cliente-Servidor:

• Tamaño de Datos: Visual FoxPro, al igual que todas las variantes de xBase anteriores a él, tenia
la limitación de 2 GB en cualquiera de sus tablas o archivos. Esta limitación tiene que ver con la
manera en que los bloqueos son realizados en los registros individuales y, mientras que es
ciertamente factible que este límite sea alcanzado, esto es diferente a cómo normalmente lo
hace Microsoft. A pesar de que hay muchos workarrounds para estos límites, estos incrementan
los retos con Visual FoxPro en cuanto las tablas se agranden – tiempos prolongados para
reindexar en caso de corrupción, por ejemplo. En resumen, si el tamaño se vuelve un factor
mayor, considere si el uso de Cliente-Servidor es adecuado.

•Seguridad: Fundamentalmente, todos los accesos a las tablas FoxPro van a través de la red
del sistema operativo, así que los usuarios necesitan tener acceso a los directorios conteniendo
las tablas VFP. Cualquiera que pueda tener acceso a las tablas puede, eventualmente,
imaginarse como leerlos. También es simple usar un driver ODBC y Excel, o si ellos necesitan
Profesor Martín Arosemena 104 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

usar un editor hexadecimal para romper su esquema de encriptación. Muchos sistemas Cliente-
Servidor pueden eliminar esta amenaza en conjunto con la restricción de acceso de los clientes
a la interface del servidor, y no necesariamente a todos los datos. Si está tratando con material
altamente confidencial, Cliente-Servidor tiene sentido por razones de seguridad.
•Bajo Ancho de Banda: Visual FoxPro es el producto para manejo bases de datos escritorio y
basado en LAN más rápido y con mejor mejor desempeño disponible en el mercado hoy en día.
Pero VFP obtiene su desempeño fenomenal tomando ventaja del ambiente LAN, pre-
obteniendo información de columna, haciendo localmente algún tipo de caching de
encabezados de tablas y contenidos de índices. Mientras que el proceso de adquirir esta
información es casi imperceptible en un ambiente de red, haciendo lenta la apertura inicial de
tablas en milisegundos, esto puede ser un retardo substancial si se está en un “cable delgado”
(por ejemplo conexiones Dial-Up, WAN o Internet saturado) entre el cliente y los datos. En estas
situaciones, poner los datos, la responsabilidad de hacer las consultas y procesamiento de los
datos en el servidor minizará los costos de comunicación y mejorará la velocidad.

El modelo Cliente-Servidor
La tecnología denominada Cliente -Servidor es utilizada por todas las aplicaciones
de Internet/Intranet. Un cliente funciona en su ordenador local, se comunica con el servidor
remoto, y pide a éste información. El servidor envía la información solicitada. Un único servidor
típicamente sirve a una multitud de clientes, ahorrando a cada uno de ellos el problema de tener
la información instalada y almacenada localmente.

Tipos de sistemas de los Cliente-Servidor dependiendo de las aplicaciones


que el servidor pone a disposición de los clientes.

• Servidores de Impresión, mediante el cual los usuarios comparten


impresoras.
• Servidores de Archivos, con el cual los clientes comparten discos duros.
• Servidores de Bases de Datos, donde existe una única base de datos.
• Servidores de Lotus Notes, que permite el trabajo simultáneo de distintos
clientes con los mismos datos, documentos o modelos.
• Servidores Web, también utilizan la tecnología Cliente- Servidor, aunque
añaden aspectos nuevos y propios a la misma.

Algunos servidores esperan las solicitudes en puertos bien conocidos de modo que sus clientes
saben a qué zócalo IP deben dirigir sus peticiones. El cliente emplea un puerto arbitrario para
comunicarse. Los clientes que se quieren comunicar con un servidor que no usa un puerto bien
conocido tienen otro mecanismo para saber a qué puerto dirigirse. Este mecanismo podría usar
un servicio de registro como Portmap, que utiliza un puerto bien conocido.

Arquitectura Cliente servidor.

Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa
(el servidor) que le da respuesta. Aunque esta idea se puede aplicar a programas que se ejecutan
Profesor Martín Arosemena 105 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

sobre una sola computadora es más ventajosa en un sistema operativo multiusuario distribuido
a través de una red de computadoras. La interacción cliente-servidor es el soporte de la mayor
parte de la comunicación por redes. Ayuda a comprender las bases sobre las que están
construidos los algoritmos distribuidos.
El servidor debe negociar con su Sistema Operativo un puerto (casi siempre bien conocido)
donde esperar las solicitudes. El servidor espera pasivamente las peticiones en un puerto bien
conocido que ha sido reservado para el servicio que ofrece. El cliente también solicita, a su
sistema operativo, un puerto no usado desde el cual enviar su solicitud y esperar respuesta. Un
cliente ubica un puerto arbitrario, no utilizado y no reservado, para su comunicación.
En una interacción se necesita reservar solo uno de los dos puertos, asignados un identificador
único de puerto para cada servicio, se facilita la construcción de clientes y servidores.
Los servidores por lo general son más difíciles de construir que los clientes pues aunque se
implantan como programas de aplicación deben manejar peticiones concurrentes, así como
reforzar todos los procedimientos de acceso y protección del sistema computacional en el que
corren, y protegerse contra todos los errores posibles. El cliente y el servidor pueden interactuar
en la misma máquina.

Partes que componen el sistema


Cliente: Programa ejecutable que participa activamente en el establecimiento de
las conexiones. Envía una petición al servidor y se queda esperando por una respuesta. Su
tiempo de vida es finito una vez que son servidas sus solicitudes, termina el trabajo.

Servidor: Es un programa que ofrece un servicio que se puede obtener en una red. Acepta la
petición desde la red, realiza el servicio y devuelve el resultado al solicitante. Al ser posible
implantarlo como aplicaciones de programas, puede ejecutarse en cualquier sistema donde
exista TCP/IP y junto con otros programas de aplicación. El servidor comienza su ejecución antes
de comenzar la interacción con el cliente. Su tiempo de vida o de interacción es “interminable”.
Los servidores pueden ejecutar tareas sencillas (caso del servidor hora día que devuelve una
respuesta) o complejas (caso del servidor ftp en el cual se deben realizar operaciones antes de
devolver una respuesta). Los servidores sencillos procesan una petición a la vez (son
secuenciales o interactivos), por lo que no revisan si ha llegado otra petición antes de enviar la
respuesta de la anterior.
Los más complejos trabajan con peticiones concurrentes aun cuando una sola petición lleve
mucho tiempo para ser servida (caso del servidor ftp que debe copiar un archivo en otra
máquina). Son complejos pues tienen altos requerimientos de protección y autorización. Pueden
leer archivos del sistema, mantenerse en línea y acceder a datos protegidos y a archivos de
usuarios. No puede cumplir a ciegas las peticiones de los clientes, deben reforzar el acceso al
sistema y las políticas de protección. Los servidores por lo general tienen dos partes:

1. Programa o proceso que es responsable de aceptar nuevas peticiones: Maestro o Padre.


2. Programas o procesos que deben manejar las peticiones individuales: Esclavos o Hijos.

Tareas del programa maestro

 Abrir un puerto local bien conocido al cual pueda acceder los clientes.
 Esperar las peticiones de los clientes.

Profesor Martín Arosemena 106 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 Elegir un puerto local para las peticiones que llegan en informar al cliente del nuevo puerto,
(innecesario en la mayoría de los casos).
 Iniciar un programa esclavo o proceso hijo que atienda la petición en el puerto local, (el
esclavo cuando termina de manejar una petición no se queda esperando por otras).
 Volver a la espera de peticiones mientras los esclavos, en forma concurrente, se ocupan de
las anteriores peticiones.

Clasificación de los servidores

1. Servidores con estado.


2. Servidores sin estado.
3. Servidores concurrentes

Características de la arquitectura Cliente-Servidor

 Combinación de un cliente que interactúa con el usuario, y un servidor que interactúa con
los recursos a compartir. El proceso del cliente proporciona la interfaz entre el usuario y el
resto del sistema. El proceso del servidor actúa como un motor de software que maneja
recursos compartidos tales como bases de datos, impresoras, Módem, etc.
 Las tareas del cliente y del servidor tienen diferentes requerimientos en cuanto a recursos
de cómputo como velocidad del procesador, memoria, velocidad y capacidades del disco
e input-output devices.
 Se establece una relación entre procesos distintos, los cuales pueden ser ejecutados en la
misma máquina o en máquinas diferentes distribuidas a lo largo de la red.
 Existe una clara distinción de funciones basadas en el concepto de ”servicio”, que se
establece entre clientes y servidores.
 La relación establecida puede ser de muchos a uno, en la que un servidor puede dar servicio
a muchos clientes, regulando su acceso a los recursos compartidos.
 Los clientes corresponden a procesos activos en cuanto a que son estos los que hacen
peticiones de servicios. Estos últimos tienen un carácter pasivo, ya que esperan peticiones
de los clientes.
 No existe otra relación entre clientes y servidores que no sea la que se establece a través
del intercambio de mensajes entre ambos. El mensaje es el mecanismo para la petición y
entrega de solicitudes de servicios.
 El ambiente es heterogéneo. La plataforma de hardware y el sistema operativo del cliente
y del servidor no son siempre los mismos. Precisamente una de las principales ventajas de
esta arquitectura es la posibilidad de conectar clientes y servidores independientemente de
sus plataformas.
 El concepto de escalabilidad tanto horizontal como vertical es aplicable a cualquier sistema
Cliente-Servidor. La escalabilidad horizontal permite agregar más estaciones de trabajo
activas sin afectar significativamente el rendimiento. La escalabilidad vertical permite
mejorar las características del servidor o agregar múltiples servidores.

Ventajas del esquema Cliente-Servidor


Existencia de plataformas de hardware cada vez más baratas. Esta constituye a su vez
una de las más palpables ventajas de este esquema, la posibilidad de utilizar máquinas
mucho más baratas que las requeridas por una solución centralizada, basada en
sistemas grandes (mainframes). Además, se pueden utilizar componentes, tanto de
hardware como de software, de varios fabricantes, lo cual contribuye
Profesor Martín Arosemena 107 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

considerablemente a la reducción de costos y favorece la flexibilidad en la implantación


y actualización de soluciones.

 Facilita la integración entre sistemas diferentes y comparte información, permitiendo por


ejemplo que las máquinas ya existentes puedan ser utilizadas pero utilizando interfaces más
amigables el usuario. De esta manera, se puede integrar PCs con sistemas medianos y
grandes, sin necesidad de que todos tengan que utilizar el mismo sistema operativo.
 Al favorecer el uso de interfaces gráficas interactivas, los sistemas construidos bajo este
esquema tienen una mayor y más intuitiva con el usuario. En el uso de interfaces gráficas
para el usuario, presenta la ventaja, con respecto a uno centralizado, de que no siempre es
necesario transmitir información gráfica por la red pues esta puede residir en el cliente, lo
cual permite aprovechar mejor el ancho de banda de la red.
 La estructura inherentemente modular facilita además la integración de nuevas tecnologías
y el crecimiento de la infraestructura computacional, favoreciendo así la escalabilidad de las
soluciones.
 Contribuye además a proporcionar a los diferentes departamentos de una organización,
soluciones locales, pero permitiendo la integración de la información.

6.2 PASO DE MENSAJES DISTRIBUIDOS.

Los procesos de un S.O. pueden comunicarse entre sí al compartir espacios de memoria,


ya sean variables compartidas o buffers, o a través de las herramientas provistas por las
rutinas de Comunicación Interprocesos.

Para comunicar procesos en un ambiente distribuido, además del uso de un sistema de


nombres de recursos, se necesita un esquema de comunicación lógico que dé sentido a
estas transacciones. El sistema operativo provee mínimamente dos primitivas, enviar y
recibir, normalmente llamadas send y receive, pero tendrá que implementar un enlace
de comunicación entre los procesos. Este enlace puede ser unidireccional o
multidireccional según permita la comunicación en solo uno o en varios sentidos, y
dependiendo de la forma en que se dispara la comunicación.

Comunicación Síncrona.
Quien envía permanece bloqueado esperando a que llegue una respuesta del receptor
antes de realizar cualquier otro ejercicio.

Comunicación Asíncrona.
Quien envía continúa con su ejecución inmediatamente después de enviar el mensaje al
receptor.

Comunicación Persistente.
El receptor no tiene que estar operativo al mismo tiempo que se realiza la comunicación,
el mensaje se almacena tanto tiempo como sea necesario para poder ser entregado.
Comunicación Transitoria.
Profesor Martín Arosemena 108 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

El mensaje se descarta si el receptor no está operativo al tiempo que se realiza la


comunicación. Por lo tanto no será entregado.

Comunicación Directa.
Las primitivas enviar y recibir usan directamente el nombre del proceso con el que se
comunican.
Por ejemplo:
Enviar (mensaje, A) envía un mensaje al proceso A. Observese que la primitiva sólo debe
especificar cuál va a ser ser el proceso Destino, ya que el proceso fuente viene
direccionado en la comunicación.
Las operaciones básicas Send y Receive se definen de la siguiente manera: Send (P,
mensaje); envía un mensaje al proceso P. Receive (Q, mensaje); espera la recepción de
un mensaje por parte del proceso Q.

Comunicación Indirecta.
Es aquella donde la comunicación está basada en un gateway, enrutador, puente o
switch, ya que el emisor y el receptor están a distancia.

Comunicación Simétrica.
Todos los procesos pueden enviar o recibir. También establece una llamada
bidireccional para el caso de dos procesos.

Comunicación Asimétrica.
Un proceso puede enviar, los demás procesos solo reciben. También llamada
unidireccional o no interactiva. Es el esquema típico de algunos servidores de Internet.

Comunicación con uso de buffers automático.


El transmisor se bloquea hasta que el receptor recibe el mensaje completo, pero éste
tiene capacidad para recibirlo aunque no esté listo para procesarlo.

La comunicación y sincronización en S.O.D. es más compleja y se establece en canales


lentos y menos confiables que los buses internos de una computadora, lo que incorpora
problemas como la pérdida de mensajes, la llegada de datagramas desordenados, la
heterogeneidad de los nodos y su diferente rendimiento, etc.

La forma natural de comunicar y sincronizar procesos en los sistemas distribuidos es


mediante paso de mensajes; los procesos intercambian mensajes mediante las
primitivas que además establecen una extensión de los semáforos en la que se transmite
más información en un contexto sincronizado.
Profesor Martín Arosemena 109 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Una de las ventajas de emplear mecanismos de comunicación y sincronización basados


en paso de mensaje es la portabilidad de las soluciones programadas para diferentes
arquitecturas de computadoras, incluidos los sistemas con memoria compartida, otra
ventaja es que no existe el problema del acceso en exclusión mutua a datos
compartidos, ya que no hay contienda por el acceso al recurso, sino un fila en espera.
Un sistema operativo o lenguaje de programación podría ofrecer herramientas, algunas
basadas en memoria compartida y otras basadas en la comunicación mediante paso de
mensajes, por lo que podríamos llegar a tener un mismo proceso o hilo que empleara
las dos posibilidades. Los siguientes son aspectos relevantes en el diseño de los sistemas
de paso de mensajes:

1. Identificación en el proceso de comunicación.


2. Sincronización.
3. Características del canal (capacidad, flujo de datos, etc).

6.3 LLAMADAS A PROCESAMIENTOS REMOTOS.

El RPC (del inglés Remote Procedure Call, Llamada a Procedimiento Remoto) es un


protocolo que permite a un programa de ordenador ejecutar código en otra máquina
remota sin tener que preocuparse por las comunicaciones entre ambos. El protocolo es
un gran avance sobre los sockets usados hasta el momento. De esta manera el
programador no tenía que estar pendiente de las comunicaciones, estando éstas
encapsuladas dentro de las RPC.

RPC
RPC es la transferencia sincrónica de datos y control entre dos partes de un programa
distribuido a través de espacios de direcciones disjuntas. La manera en que RPC logra
hacer esto, es por medio de lo que se conoce como STUB. En el caso del STUB servidor,
se conoce como SKELETON. Estos Stubs y Skeletons permiten que al momento de ser
invocada la función remota esta pueda ser quot; simulada localmente quot.
Objetivos de RPC

 Proporcionar un middleware que simplifique el desarrollo de aplicaciones


distribuidas

 Evitar que programador tenga que interactuar directamente con el interfaz de


Sockets

 Abstraer (ocultar) los detalles relativos a la red

Profesor Martín Arosemena 110 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 El Servidor ofrece procedimientos que el cliente llama como si fueran


procedimientos locales

 Se busca ofrecer un entorno de programación lo más similar posible a un entorno


no distribuido.

 El sistema RPC oculta los detalles de implementación de esas llamadas remotas


Implementa la llamada remota mediante un dialogo petición respuesta --
Mensaje de petición: identifica procedimiento llamado, contiene parámetros de
la llamada -- Mensaje de respuesta: contiene valor/es devuelto/s se encarga de
enviar/recibir mensajes para comunicar ambas partes se encarga de gestionar
los contenidos de esos mensajes (empaquetado y formateado de datos)

Diferencias con llamadas locales (LPC)

 Punto clave: manejo de errores.

 Con RPC pueden existir fallos en servidor remoto o en la red.

 Acceso a variables globales y efectos laterales en el cliente no son posible

 Procedimiento. Remoto (servidor) no tiene acceso al espacio de direcciones del cliente


/ imposibilidad de usar punteros.

 RPC impone un mayor nivel de encapsulamiento

 Los parámetros para la llamada remota no pueden pasarse por referencia (solo por
valor).

 Mayor sobrecarga en llamadas RPC (transferencia por red, aplanamiento de datos,


etc.)

 En algunos entornos se limita el intercambio de estructuras complejas, en otros se


usan métodos de aplanado/desaplanado

El mecanismo de RPC

 El stub del cliente: se encarga de empaquetar los parámetros y la solicitud, enviarlos al


intermediario en el servidor, y luego esperar la respuesta, desempaquetarla y entregarla
a la aplicación.

 El programa principal del servidor (que incluye el stub y el dispatcher). se encarga de


recibir peticiones, desempaquetar los parámetros, invocar la función solicitada, pasarle
los parámetros, luego obtener el resultado, empaquetarlo y enviarlo al cliente.

 Las rutinas de serialización de datos: Se debe tomar en cuenta que las máquinas cliente
y servidor puedan ser de arquitectura diferente (y no compatible).

 Servicio de binding: Responsable de la transparencia de localización, gestiona la


asociación entre el nombre del procedimiento remoto (y su versión) con su localización
Profesor Martín Arosemena 111 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

en la maquina servidor (dirección, puertos, skeleton, etc). Realiza la búsqueda del


skeleton de la implementación concreta del procedimiento remoto llamado por un
cliente.

Características del Stub

La base del mecanismo RPC consiste en la introducción de “representantes” que “hacen


como si” fuesen el cliente/servidor

 En el lado cliente, el representante del servidor se denomina Stub (o Proxy)

 El stub es quien proporciona transparencia en la invocación del cliente

 El stub debe poseer llamadas con la misma declaración (forma) que el servidor

 El cliente invoca las llamadas del stub “como si” fuese el servidor

 El stub, a través de un protocolo RPC y con unos mecanismos de aplanamiento, envía


un mensaje al extremo remoto solicitando la “ejecución real” de la llamada

 El stub, a través de un protocolo RPC y con unos mecanismos de desaplanamiento,


recibe un mensaje del extremo remoto y recupera el “resultado” de la invocación.

 El stub oculta los detalles de referencia del objeto remoto. Es decir, debe saber en qué
dirección IP y en qué puerto hay que contactar con el extremo remoto

 Cada procedimiento que el cliente quiera invocar a través de RPCs necesita su propio
stub

Características del Skeleton

En el lado servidor, el representante del cliente se llama Skeleton

 El skeleton es quien proporciona transparencia en el lado del servidor

 El skeleton debe conocer las llamadas ofrecidas por el servidor

 El skeleton, a través de un protocolo RPC y con unos mecanismos de desaplanamiento,


recibe un mensaje del extremo remoto solicitando la “ejecución real” de la llamada

 El skeleton invoca la llamada del servidor “como si” fuese el cliente

 El skeleton, a través de un protocolo RPC y con unos mecanismos de aplanamiento,


envía un mensaje al extremo remoto indicando el “resultado” de la invocación. Cada
procedimiento que el servidor exporte a través de RPCs requiere su propio skeleton

Profesor Martín Arosemena 112 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Ejemplos de entornos RPC

 Sun-RPC (ONC-RPC: Open Network Computing-RPC): RPC muy extendido en entornos


Unix, infraestructrua sobre la que se ejecuta NFS (servicio de sistema de ficheros en red),
NIS (servicio de directorio). DCE/RPC (Distributed Computing Environmen RPC): RPC
definido por la Open Software Foundation Java-RMI : invocación de métodos remotos
en Java CORBA (Common Object Requesting Broker Architecture): soporta la invocación
de métodos remotos bajo un paradigma orientado a objetos en diversos lenguajes SOAP
(Simple Object Access Protocol): protocolo RPC basado en el intercambio de datos
(parámetos+resultados) en formato XML DCOM (Distributed Component Object
Model): Modelo de Objetos de Componentes Distribuidos de Microsoft, con elementos
de DCE/RPC .NET Remoting: Infraestructura de invocación remota de .NET

Las RPC son muy utilizadas dentro del paradigma cliente-servidor. Siendo el cliente el
que inicia el proceso solicitando al servidor que ejecute cierto procedimiento o función
y enviando éste de vuelta el resultado de dicha operación al cliente. Hay distintos tipos
de RPC, muchos de ellos estandarizados como pueden ser:

 RPC de Sun denominado ONC RPC (RFC 1057)

 RPC de OSF denominado DCE/RPC

 Modelo de Objetos de Componentes Distribuidos de Microsoft DCOM Aunque ninguno


de estos es compatible entre sí. La mayoría de ellos utilizan un lenguaje de descripción
de interfaz (IDL) que define los métodos exportados por el servidor.

Características del protocolo RPC:

Concepto Descripción
Independencia del El modo en que se pasan los mensajes entre los procesos no
protocolo de implica diferencia en las operaciones que rpc que se deben
transporte invocar. El protocolo sólo aborda cuestiones relacionadas con la
especificación e interpretación de los mensajes.
Independencia Esta viene especificada por el protocolo de transporte utilizado
semántica para realizar la comunicación via rpc.
Autentificación y rpc sólo soporta autenticación. Si se desea controlar el acceso a
control de acceso servicios individuales, cada uno de estos deberá implementar
su propia política de control de acceso y reflejar dicha política
en los valores de estdo del protocolo devueltos al realizar la
llamada.

Procedimiento

El protocolo RPC funciona de un modo similar al de una llamada a un procedimiento


local. En el modo local, El cliente especifica una serie de argumentos a un rocedimiento
en una localización concreta, como un registro. Entonces, el cliente pasa el control de

Profesor Martín Arosemena 113 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

ejecución a la subrutina. Una vez ejecutada, se extrae el resultado del procedimiento y


continua la ejecución del programa.

RPC funciona de un modo similar, salvo que el hilo de control se alterna, como es lógico
entre dos procesos, el cliente y el servidor:

 El cliente envía un mensaje al servidor que incluye los parámetros necesarios


para invocar un procedimiento concreto en la máquina remota.
 El cliente se mantiene a la espera de un mensaje de respuesta por parte del
servidor.
 Un proceso del servidor, que estaba dormido hasta la llegada del mensaje del
cliente, extrae los parámetros del procedimiento del mensaje, realiza las
operaciones pertinentes con ellos y envía el resultado en un mensaje de
respuesta. El servidor se mantiene a la espera del siguiente mensaje del cliente.
 Finalmente, un proceso del cliente recibe el mensaje de respuesta, extrae el
resultado y el cliente contínua la ejecución.

Figura No. 5. Flujo de llamada a procedimiento remoto

El protocolo rpc no hace restricción alguna acerca del modelo de concurrecia


implementado, con lo que son posibles otros modelos diferentes al anteriormente
expuesto. Es posible, por ejemplo, utilizar un modelo asíncrono de modo que el cliente
pueda continuar trabajando mientras espera la respuesta del servidor.

Profesor Martín Arosemena 114 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

A pesar del salto cualitativo que supuso su uso respecto al empleo directo de sockets,
rpc presenta una serie de inconvenientes que no lo hace apropiado para las necesidades
de Gmodulo:

Inconvenientes del protocolo rpc

Problema Descripción
Instanciación de RPC no aporta ningún control sobre el ciclo de vida del proceso
procesos. remoto.
Independencia de Uno de los principales inconvenientes de rpc es el número de
plataforma. variaciones y extensiones entre las implementaciones disponibles.
El resultado es una amplia variedad de versiones diferentes e
incompatibles del protocolo rpc.

Otro problema que presenta rpc, es la dificultad para adaptarse adecuadamente a


sistemas distribuidos de objetos, en los que es necesaria la comunicación entre objetos
a nivel de programa residiendo en diferentes zonas de memoria. Para facilitar la
semántica propia de los lenguajes orientados a objetos, Se necesita un sistema de
invocación remota de métodos, en los cuales, la responsabilidad de invocar se delega en
un objeto local a dicha máquina, conocido como stub.

6.4 Cluster y PROCESAMIENTO DISTRIBUIDO:

Procesamiento distribuido se define como, la forma en que es posible conectar distintas


maquinas, PC’s por ejemplo, en cierto tipo de red de comunicaciones, generalmente una
LAN o una red de área amplia o una red como Internet. Logrando así, que una sola tarea
de procesamiento de datos pueda ser procesada o ejecutada entre varias máquinas de
la red, es decir que un solo proceso se pueda realizar entre varias
máquinas diferentes y conectadas a una red.

Un error común es confundir procesamiento distribuido y paralelo, el término


“procesamiento paralelo”, básicamente es el mismo, con excepción que las maquinas
distintas tienden a estar físicamente muy cerca en un sistema “paralelo”, lo que no es
necesario en un sistema “distribuido”. Por ejemplo una aplicación distribuida podría ser
una calculadora que usa una suma hecha en Java en un equipo y la división
implementada en C en otro equipo distinto. De hecho, el procesamiento distribuido
permite una mejor utilización de equipos y mejora el balanceo del procesamiento
dentro de una aplicación, este último tiene una gran importancia ya que
en algunas aplicaciones simplemente no hay una máquina que
sea capaz de realizar todo el procesamiento. Para manejar este tipo de procesamiento
en las aplicaciones existen diversas maneras, siendo la arquitectura “cliente-
servidor” la tendencia actual.

Profesor Martín Arosemena 115 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Es tanto el uso actual de esta arquitectura que por diversas razones, el término “cliente-
servidor” ha llegado a aplicarse casi exclusivamente al caso en el que el cliente y
el servidor están, en efecto en máquinas distintas. Una aplicación muy común del
procesamiento distribuido es en las bases de datos, donde el procesamiento distribuido
podría realizar la entrada/salida, la selección y la validación de los datos en una
computadora, y luego crear un reporte basado en esos datos o una consulta en otra
computadora.

CLUSTER:

Podemos definir que un cluster es un tipo de procesamiento distribuido “paralelo”, es


decir, es un conjunto de computadoras o maquinas que pueden trabajar de manera
coordinada en la solución de un mismo problema o en la ejecución de un mismo proceso

Cabe notar que prácticamente todos los clusters que han aportado un avance a esta
tecnología han sido de carácter académico, no necesariamente en su uso, pero sí en el
proceso de configuración, implementación y operación; por ejemplo.

Beowulf
Fue construido por Donald Becker y Thomas Sterling, investigadores de la NASA y el
Tecnológico de California, respectivamente; mientras que el proyecto.

Cluster X
(también conocido como Terascale Cluster) fue dirigido por Srinidhi Varadarajan y Jason
Lockhar, ambos académicos del Tecnológico de Virginia. Los inicios del cluster fueron
cuando los pioneros de la supercomputación trataban de implementar diferentes
procesos entre varias computadoras, para luego poder recoger los resultados que dichos
procesos debían producir.

Luego de decir todo lo anterior entonces, podríamos decir que un cluster entonces es
un conjunto de computadoras interconectadas con dispositivos de alta velocidad que
actúan en conjunto usando el poder de cómputo combinado de varias
CPUs para resolver ciertos procesos dados de forma conjunta, y aparecen ante clientes
y aplicaciones como un solo sistema. Los cluster permiten aumentar la escalabilidad,
disponibilidad y fiabilidad de múltiples niveles de red. Existen diferentes formas de
procesamiento en paralelo. Entre las más conocidas y más usadas se encuentran NUMA,
PVM y MPI.

6.5 Servidores clusters de Windows

Los clústeres le permiten escalar la configuración de IBM® WebSphere Portal. Los


clústeres también permiten que las aplicaciones empresariales estén altamente
disponibles, dado que las solicitudes se direccionan automáticamente a los servidores

Profesor Martín Arosemena 116 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

en ejecución en el caso de un fallo. Existen numerosas configuraciones de clúster, como


horizontal, vertical, múltiple y dinámica.

En la siguiente ilustración se describe una configuración de clúster horizontal,


donde WebSphere Portal se instala en varios servidores o en varios perfiles dentro del
mismo servidor físico. La configuración de los diversos servidores reduce los puntos de
fallo únicos, pero necesita de más hardware, como servidores adicionales. La
configuración de varios perfiles también reduce puntos de anomalías únicos; requiere
menos hardware adicional que la configuración de varios servidores, pero es posible que
necesite más hardware como memoria adicional. El gestor de despliegue gestiona una
célula para nodos de clúster horizontales.

Figura No. 1 Diagrama de cluster en Windows.

Para conservar hardware, también puede configurar los miembros de clúster vertical en
un nodo único. Normalmente, los clústeres de portal grandes incluyen tanto escalado
horizontal como vertical; por ejemplo, es posible que tenga cuatro nodos de portal y
que cada uno de dichos nodos pueda contener cinco miembros de clúster de un total de
veinte miembros de clúster.

Profesor Martín Arosemena 117 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Figura No. 2 Diagrama de cluster en Windows vertical.

En respuesta a las solicitudes de cliente, las instrucciones para configurar WebSphere


Portal se han mejorado con la inclusión de instrucciones específicas de sistema
operativo para configurar un entorno de producción. Seleccione su sistema operativo
para empezar.

 Preparación del sistema operativo de Windows en un entorno en clúster


Vea información sobre la configuración del sistema operativo para IBM
WebSphere Portal. Los otros componentes pueden precisar de pasos
adicionales; consulte la documentación del producto de los componentes
específicos que desee instalar para obtener más información.
 Preparación del nodo primario en Windows
Antes de crear un entorno en clúster, debe instalar IBM WebSphere Portal en el
nodo primario y, a continuación, configurar la base de datos y el gestor de
despliegue de red.
 Creación y aumento de un nuevo perfil del gestor de despliegue en Windows
Para un entorno de producción, debe instalar el gestor de despliegue en un
servidor remoto de la instalación de IBM WebSphere Portal. Utilice la
herramienta de gestión de perfiles o el mandato manageprofiles para crear el
perfil gestor de despliegue remoto. En un entorno de prueba o de desarrollo,
puede instalar el gestor de despliegue localmente utilizando el IBM Installation
Manager. Realice los pasos para crear y aumentar un nuevo perfil del gestor de
despliegue si está instalando un perfil del gestor de despliegue remoto. Sáltese
estos pasos si está utilizando Installation Manager para instalar un perfil del
gestor de despliegue local en el nodo primario.
 Preparación para crear el clúster en Windows.Si ha instalado IBM WebSphere
Application Server Network Deployment, cree un clúster estático para gestionar
las solicitudes por anomalías. Si ha instalado IBM WebSphere Virtual Enterprise,
cree un clúster dinámico para equilibrar las cargas de trabajo de los miembros.

Profesor Martín Arosemena 118 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 Preparación de un servidor web remoto cuando el portal está instalado en


Windows en un entorno en clúster.Instale y configure el plug-in del servidor web,
proporcionado por IBM WebSphere Application Server, a fin de configurar el
servidor web para que se comunique con IBM WebSphere Portal.
 Configuración de WebSphere Portal para utilizar un registro de usuarios en
Windows en un entorno en clúster.Configure la seguridad del registro de
usuarios en IBM WebSphere Portal para proteger el servidor contra usuarios no
autorizados. Puede configurar un registro de usuarios LDAP autónomo o añadir
registros de usuarios LDAP y registros de usuarios de base de datos al repositorio
federado predeterminado. Después de configurar el registro de usuarios, puede
añadir dominios a portales virtuales o a una base de datos Lookaside para
almacenar atributos que no se puedan almacenar en el registro de usuarios
LDAP.
 Preparación de miembros de clúster adicionales en Windows. Después de
instalar y configurar el nodo primario, puede crear los nodos de clúster
adicionales. Debe instalar IBM WebSphere Portal en cada nodo y, a
continuación, configurar el nodo para acceder a la base de datos y al registro de
usuarios antes de añadirlo al clúster.
 Clúster Windows: ajuste de servidores.Ajustar los servidores es importante para
el rendimiento del entorno de WebSphere Portal. WebSphere Portal no está
ajustado para un entorno de producción predeterminado, por lo que se
recomienda, para garantizar el máximo rendimiento, revisar y completar los
pasos de la Guía de ajuste de IBM WebSphere Portal. Aunque no haya una guía
de ajuste disponible para el release actual de WebSphere Portal, debe utilizarse
la guía de ajuste de la versión anterior del producto.
 Configuración de la búsqueda en un clúster de Windows. IBM WebSphere
Portal proporciona dos funciones de búsqueda distintas. Puede utilizar los dos
tipos de posibilidades de búsqueda en un entorno en clúster.
 Configuración de varios clústeres en Windows.La mayoría de los pasos que hay
que seguir para compilar otro clúster son los mismos que los que se emplean
para compilar el primer clúster de portal en la misma célula, con algunas
excepciones. Básicamente, el nuevo perfil se designará como perfil primario,
utilizando la terminología de agrupación en clúster de IBM WebSphere Portal, y
se utilizará como basa de una nueva definición de clúster. Lo que duplicará el
proceso de compilación del primer clúster en la célula. Durante el proceso de
federación, si alguna aplicación de este nodo nuevo ya existe en la célula (porque
el clúster principal la está utilizando), el Gestor de despliegue no permitirá
añadirla. Tras la federación, las aplicaciones que ya existen en la célula no se
correlacionarán al servidor WebSphere_Portal en el nodo recién federado y, por
lo tanto, las aplicaciones existentes deberán volverse a correlacionar a este
nuevo servidor federado para restaurar la lista de aplicaciones. Por lo tanto, en
función de la configuración del nuevo perfil, es posible que haya alguna
combinación de aplicaciones compartida con el otro clúster existente, y algunas
aplicaciones exclusivas de este nuevo perfil.
 Compartir dominios de base de datos entre clústeres en Windows. Para
proporcionar soporte de redundancia y migración tras error en entornos de
producción compuestos por varios clústeres en una sola célula y varios clústeres

Profesor Martín Arosemena 119 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

en diferentes células, puede compartir dominios de base de datos entre dichos


clústeres. Los datos de IBM WebSphere Portal se organizan en dominios de base
de datos diferentes, con diferentes requisitos de disponibilidad según la
configuración del entorno de producción. Cuando haya varias líneas de
producción implicadas y cada línea de producción se implementa como un
clúster de servidores, si se comparten los dominios de base de datos se garantiza
la sincronización automática de los datos entre las líneas de producción.

6.6 Sun clusters

La arquitectura de Sun Cluster permite el desarrollo, la gestión y la visualización de un


grupo de sistemas como un único sistema grande.

Este capítulo se divide en los siguientes apartados:

 Entorno de hardware de Sun Cluster


 Entorno del software de Sun Cluster
 Servicios de datos escalables
 Almacenamiento en discos multisistema
 Interconexión del clúster
 Grupos de ruta múltiple de red IP

Entorno de hardware de Sun Cluster

Los componentes siguientes de hardware componen un clúster:

 Los nodos del clúster con discos locales (sin compartir) proporcionan la principal
plataforma de computación del clúster.
 El almacenamiento multisistema proporciona discos compartidos entre los
nodos.
 Los soportes extraíbles se configuran como dispositivos globales, como cintas y
CD-ROM.
 La interconexión del clúster proporciona un canal para la comunicación
intermodal.
 Las interfaces de red pública permiten que las interfaces de red que utilicen los
sistemas de clientes tengan acceso a los servicios de datos del clúster.

En la figura siguiente podemos observar cómo trabajan conjuntamente los


componentes del hardware.

Profesor Martín Arosemena 120 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Figura No. . Componentes del hardware del Sun Cluster.

Entorno del software de Sun Cluster

Si desea trabajar como miembro de un clúster, un nodo debe tener el siguiente software
instalado:

 Software Solaris
 Software de Sun Cluster
 Aplicación de servicio de datos
 Gestión de volúmenes (SolarisTM Volume Manager o VERITAS Volume Manager)

Una excepción es una configuración que se suministre con una gestión de volúmenes.
Es posible que no necesite un gestor de volúmenes de software.

La figura siguiente muestra con precisión cómo los componentes de software trabajan
conjuntamente para crear el entorno de Sun Cluster.

Profesor Martín Arosemena 121 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Figura No. 3. Arquitectura del software del Sun Cluster.

Supervisor de pertenencia al clúster (CMM)

Para asegurarse de que los datos no sufran daños, todos los nodos deben alcanzar un
acuerdo uniforme sobre la pertenencia al clúster. Cuando es necesario, CMM coordina
una reconfiguración de los servicios del clúster en respuesta a un fallo.

CMM recibe información sobre conectividad con otros nodos desde la capa de
transporte del clúster y usa la interconexión del clúster para intercambiar información
de estado durante la reconfiguración.

Tras detectar un cambio en la pertenencia del clúster, CMM efectúa una configuración
sincronizada de éste en la cual es posible que los recursos del clúster se redistribuyan,
basándose en la nueva pertenencia del clúster.
Profesor Martín Arosemena 122 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

CMM se ejecuta por completo en el núcleo.

Depósito de configuración del clúster (CCR)

CCR confía en CMM para garantizar que el clúster sólo se ejecute cuando se tenga el
suficiente quórum. CCR es responsable de verificar la uniformidad de los datos entre el
clúster, efectuando recuperaciones según sea necesario y facilitando actualizaciones a
los datos.

Sistemas de archivos del clúster

Un sistema de archivos del clúster es un servidor proxy entre:

 El núcleo de un nodo y el sistema de archivos subyacente


 El gestor de volúmenes que se ejecute en un nodo con una conexión física con
los discos

Los sistemas de archivos del clúster dependen de los dispositivos globales (discos, cintas,
CD-ROM), accesibles desde cualquier nodo del clúster, a través del mismo nombre de
archivo, (por ejemplo /dev/global/). Ese nodo no necesita una conexión física con el
dispositivo de almacenamiento. Se puede utilizar un dispositivo global como dispositivo
regular, esto es, se puede crear un sistema de archivos en un dispositivo global
mediante newfs o mkfs.

El sistema de archivos del clúster ofrece las prestaciones siguientes:

 Las ubicaciones de los accesos de archivo son transparentes. Un proceso puede


abrir un archivo que se encuentre en cualquier ubicación del sistema. Asimismo,
los procesos de todos los nodos pueden usar el mismo nombre de ruta para
ubicar un archivo.
 Se utilizan protocolos de coherencia para preservar la semántica de acceso a
archivos UNIX aunque varios nodos estén accediendo al archivo al mismo
tiempo.
 Para mover datos de archivos eficientemente se utiliza masivamente la
antememoria y el movimiento de E/S en bloque sin copia.
 El sistema de archivos del clúster ofrece el bloqueo de archivos a través de las
interfaces fcntl(2). Las aplicaciones que se ejecuten en varios nodos del clúster
pueden sincronizar el acceso a los datos mediante el bloqueo a los archivos de
aviso en un archivo del sistema de archivos del clúster. Los bloqueos de archivo
se recuperan inmediatamente desde los nodos que abandonan el clúster y las
aplicaciones que fallan mientras se mantienen los bloqueos.
 El acceso continuo a los datos queda asegurado aunque se produzcan fallos. Las
aplicaciones no se ven afectadas por fallos si sigue estando operativa una ruta
de acceso a los discos. Esta garantía se mantiene para el acceso a discos de bajo
nivel y todas las operaciones del sistema de archivos.
Profesor Martín Arosemena 123 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 Los sistemas de archivos del clúster son independientes del sistema de archivos
subyacente y del software de gestión de volúmenes. Los sistemas de archivos del
clúster convierten en global cualquier sistema de archivos admitido del disco.

Servicios de datos escalables

El objetivo principal de la conexión en red por clúster es ofrecer escalabilidad a los


servicios de datos. Esto significa que a medida que aumente la carga ofrecida a un
servicio, éste pueda mantener un tiempo de respuesta constante frente a este aumento
de carga de trabajo según se vayan añadiendo nodos nuevos al clúster y se ejecuten
instancias nuevas de servidores. Un buen ejemplo es un servicio web. Normalmente, un
servicio de datos escalable se compone de varias instancias cada una de las cuales se
ejecuta en distintos nodos del clúster. Cuando están juntas, estas instancias se
comportan como un único servicio de un cliente remoto de ese servicio e implementa
la funcionalidad del servicio. Un servicio web escalable con varios daemons httpd que
se ejecuten en varios nodos puede hacer que cualquier daemon atienda las peticiones
de un cliente. El que sirve la solicitud depende de una norma de equilibrio de cargas. La
respuesta al cliente parece provenir del servicio, no del daemon concreto que atendió
la petición, preservando así la apariencia de servicio individual.

La figura siguiente muestra la arquitectura de servicio escalable.

Figura No. 4. Arquitectura de servicios de datos escalables.

Profesor Martín Arosemena 124 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Los nodos que no alojan la interfaz global (nodos delegados) tienen la dirección
compartida alojada en sus interfaces de bucle. Los paquetes que se reciben en la interfaz
global se distribuyen en otros nodos del clúster, basándose en las normas configurables
de equilibrio de cargas. Las normas de equilibrio de cargas posibles se describen a
continuación.

Normas de equilibrio de cargas

El equilibrio de cargas mejora el rendimiento del servicio escalable, tanto en tiempo de


respuesta como en rendimiento.

Hay dos clases de servicios de datos escalables: puros y adosados. Un servicio puro es
aquel donde una instancia puede responder a peticiones de clientes sin restricciones.
Un servicio adosado tiene al clúster equilibrando la carga en las solicitudes al nodo. Estas
peticiones no se redirigen a otras instancias.

Un servicio puro usa una política de equilibrio de cargas ponderada bajo la cual,
predeterminadamente, las peticiones de los clientes se distribuyen de manera uniforme
entre las instancias del servidor en el clúster. Por ejemplo, en un clúster de tres nodos
donde cada uno tenga el peso de 1, cada nodo atiende a un tercio de las solicitudes de
cualquier cliente en nombre de ese servicio. Los pesos se pueden cambiar en cualquier
momento mediante la interfaz de la orden scrgadm(1M) o mediante la interfaz de
SunPlex Manager.

Un servicio adosado tiene dos tipos: servicio adosado normal y servicio adosado
comodín. Ambos permiten que sesiones simultáneas de aplicación a través de varias
conexiones TCP compartan el estado de la memoria (estado de la sesión de aplicación).

Los normales permiten a un cliente compartir el estado entre varias conexiones TCP
simultáneas. Se considera que el cliente es “adosado” con respecto a la instancia del
servidor que recibe en un único puerto. Al cliente se le garantiza que todas sus
solicitudes vayan a la misma instancia del servidor, siempre que ésta permanezca activa
y accesible y que la política de equilibrio de cargas no cambie mientras el servicio esté
en línea.

Los servicios adosados comodín usan números de puerto asignados dinámicamente,


pero siguen esperando que las peticiones de clientes vayan al mismo nodo. El cliente
está “adosado con comodín” a los puertos con respecto a la misma dirección IP.

El software Sun Cluster consigue de los discos una alta disponibilidad mediante el
almacenamiento en discos multisistema, que se pueden conectar a más de un nodo a la
vez. El software de gestión de volúmenes se puede utilizar para ordenar estos discos en
un almacenamiento compartido controlado por un nodo del clúster. Los discos se
configuran después para desplazarse a otro nodo si se produce un fallo. El uso de discos
multisistema en sistemas Sun Cluster proporciona muchas ventajas, entre las que se
encuentran:

Profesor Martín Arosemena 125 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

 Acceso global a los sistemas de archivos


 Rutas de acceso múltiple a los datos y a los sistemas de archivos
 Tolerancia a los fallos de un único nodo

Interconexión del clúster

Todos los nodos deben estar conectados por la interconexión del clúster a través de, al
menos, dos redes independientes físicamente o rutas de acceso, para evitar que exista
un único punto de fallo. Puesto que son necesarias dos interconexiones para conseguir
una mayor seguridad, se pueden usar hasta seis para dispersar el tráfico y evitar de este
modo los atascos, con lo que se mejora la seguridad y la escalabilidad. La interconexión
del Sun Cluster utiliza Fast Ethernet, Gigabit-Ethernet, Sun Fire Link o Scalable Coherent
Interface (SCI, IEEE 1596-1992), con lo que se consiguen comunicaciones privadas de
alto rendimiento entre clústers.

En los entornos de clústers son esenciales las interconexiones de alta velocidad y baja
latencia, así como los protocolos para comunicaciones intermodales. La interconexión
SCI en los sistemas Sun Cluster ofrece un rendimiento mejorado en tarjetas estándar de
interfaces de red (NIC). Sun Cluster utiliza la interfaz de memoria compartida remota
(RSMTM) en la comunicación intermodal en una red Sun Fire Link. RSM es una interfaz
de mensajería de Sun altamente eficaz en operaciones de memoria remota.

La interconexión del clúster consta de los siguientes componentes de hardware:

 Adaptadores: las tarjetas de interfaz de red que residen en cada nodo de


clústers. Un adaptador de red con varias interfaces podría convertirse en un
único punto de fallo si fallara todo el adaptador.
 Uniones: los interruptores que se encuentran en el exterior de los nodos del
clúster. Las uniones llevan a cabo funciones de transporte y conmutación para
permitir conectar más de dos nodos simultáneamente. En un clúster de dos
nodos no se necesitan las uniones puesto que los nodos se pueden conectar
directamente entre sí mediante cables físicos redundantes que están conectados
con adaptadores redundantes en cada nodo. Las configuraciones de más de dos
nodos requieren uniones.
 Cables: las conexiones físicas que se sitúan entre dos adaptadores de red o un
adaptador y una unión.

Figura No. 5. Inteconexión del clúster.

Profesor Martín Arosemena 126 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Grupos de ruta múltiple de red IP

Los adaptadores de red pública se organizan en grupos de ruta múltiple IP (grupos de


ruta múltiple), cada uno de ellos con uno o más adaptadores de red pública. Cada
adaptador de un grupo de ruta múltiple puede estar activo o se pueden configurar
interfaces en espera que estén inactivos a menos que ocurra una recuperación de fallos.

Los grupos de ruta múltiple ofrecen la base para la construcción de nombres de sistema
lógicos y recursos de dirección compartida. El mismo grupo de ruta múltiple de un nodo
puede alojar cualquier número de nombres de sistema lógicos o recursos de dirección
compartida. Si desea supervisar la conectividad de redes públicas de nodos del clúster,
puede crear rutas múltiples.

Interfaces de red pública

Los clientes se conectan al clúster a través de interfaces de red pública. Todas las tarjetas
adaptadoras de red pueden conectarse a una o más redes públicas, de acuerdo con las
interfaces de hardware que la tarjeta tenga. Los nodos pueden configurarse para que
incluyan múltiples tarjetas de interfaz de red pública a fin de que varias estén activas y
se utilicen en caso de recuperación de fallos como respaldo entre ellas. Si uno de los
adaptadores falla, el software de ruta múltiple de red del protocolo de Internet (IP) de
Solaris, en Sun Cluster, recibe la instrucción de recuperarse de una interfaz defectuosa
en otro adaptador del grupo.

6.7 Cluster Beowulf y Linux

Un clúster es una consolidación de software y hardware configurados para resolver


tareas computacionales de forma paralela y en red. El más importante de todos los
clústers fue uno humilde y legendario, el Cluster Beowulf creado en la NASA en 1994
con hardware de tercera clase, casi de desecho, sin embargo adecuado para crear una
útil supercomputadora. Me atrevo a decir que con esto cambio la historia de la
computación científica.

Un clúster es una consolidación de software y hardware configurados para resolver


tareas computacionales de forma paralela y en red. El más importante de todos los
clústers fue uno humilde y legendario, el Cluster Beowulf creado en la NASA en 1994
con hardware de tercera clase, casi de desecho, sin embargo adecuado para crear una
útil supercomputadora. Me atrevo a decir que con esto cambio la historia de la
computación científica.

Profesor Martín Arosemena 127 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Los antecedentes

La llegada de los mainframes significó una revolución para la ciencia, especialmente en


áreas con modelos matemáticos complejos o que requieren cálculo numérico intensivo:
particularmente Física y Química. El problema es que los mainframes llegan a alcanzar
precios exorbitantes, sólo factibles para las principales universidades y centros de
investigación del planeta.

Por ejemplo, la primera unidad de la famosa supercomputadora Cray-1 fue vendida en


8.8 millones de dólares a mediados de los años 70. Claro que así como la Ley de Moore
se cumplió en los procesadores, también en las supercomputadoras y para la década de
los 80 y 90 el panorama fue muy favorable en todos sentidos, pero el costo de los
equipos y su mantenimiento (generalmente pactado en contratos anuales de miles de
dólares) se mantuvo elevado.

Por otra parte, la arquitectura de las supercomputadoras era casi exclusivamente de


propósito específico, muy interesante es cierto, pero que por ser el resultado de diseños
exclusivos elevaba sin remedio su precio. La llegada de los clústers cambió el estado de
las cosas, porque democratizó el acceso al supercómputo, lo hizo más barato, tanto en
su construcción como en su mantenimiento, y con creces más flexible que mainframes
y supercomputadoras de diseño.

La leyenda.

Beowulf es una de las obras cumbre de la literatura anglosajona protagonizada por un


héroe homónimo con la fuerza de unos treinta hombres en la palma de su mano. Este
don inspiró a Thomas Sterling (en la foto) y Donald Becker para iniciar el Proyecto
Beowulf durante su estancia en la NASA allá por 1994 con el objetivo de construir una
máquina que sumara la fuerza computacional de muchas.

Cuentan que el éxito fue inmediato: agruparon 16 procesadores Intel DX4 de unos 100
MHz, los interconectaron con tecnología Ethernet a 10 Mbps, en equipo viejos con Linux
instalado, para ejecutar tareas científicas en paralelo a un precio incomparablemente
bajo para su tiempo. De hecho el kernel Linux de aquel entonces no tenía tanto soporte
para placas Ethernet como hoy en día, por eso Donald Becker se dio a la tarea de
escribir drivers propios que por supuesto compartió a la comunidad.

Profesor Martín Arosemena 128 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Primero fueron los colegas de la NASA, luego los de otros centros investigación en EE.
UU., Europa, Asia y hasta Latinoamérica, la idea de una nueva técnica para abaratar el
preciado poder del supercómputo se hizo viral y en pocos años el cómputo científico
llego a los más "pobres": a los que no podían pagar cientos de miles de dólares en la
compra y mantenimiento de equipos que, en el mejor de los casos, duraban vigentes
unos tres años.

Así nació una leyenda que sigue su curso, y hasta gabinetes IKEA beowulf existen ahora
que el supercómputo dejó de ser un recurso exclusivo.

Figura No. 6. Cluster Beowulf.

Los clústers no serían posible sin tecnologías abiertas, sin Linux, el software libre y su
comunidad, sin la mejora constante de las técnicas para abaratar y escalar ese tipo de
supercomputadoras. Muchas guías y aplicaciones para clústers Beowulf existen en la
red. Mi recomendación para los más curiosos es que investiguen y saquen del abandono
esos viejos equipos para construir su propia supercomputadora personal, su pequeña
granja de servidores, tendrán una experiencia llena de aprendizaje.

Profesor Martín Arosemena 129 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

Bibliografía

[1] Coulouris, Goerge; Dollimore, Jean: Kindberg, Tim, 2005

Sistemas Distribuídos, Conceptos y Diseño, 3a Ediciòn

Editorial Addison Wesley

[2] Ing. Einar Turpo Aroquipa, 2010

Curso Sistemas Distribuidos, Mayo 30, 2010

http://www.unap.edu.pe/cidiomas/licing/pdf/sd.pdf

[3] Julio Pari, 2013

Sistemas Distribuidos, Octubre 20, 2013

https://www.youtube.com/watch?v=MLYM_DeoEoc

[4] Blog Darkblade

Sistemas Operativos de Red y Sistemas Operativos Distribuidos, 2009

http://marcosventuraosorio261v.blogspot.com/2009/03/sistemas-operativos-de-red-y-
sistemas.html

[5] Adrian Herrero, 2014

Sistemas Operativos II, Enero 10, 2014

https://sites.google.com/site/mrtripus/home/sistemas-operativos-2

[6] Aryolisabreu, 2011

Diferencia entre Sistemas distribuídos y sistemas centralizados

Abril 2, 2011

https://aryolisabreu.wordpress.com/2011/04/02/diferencia-entre-sistemas-distribuidos-y-
sistemas-centralizados/

[7] Turmero, Pablo, Comunicación de procesos en sistemas distribuídos

http://www.monografias.com/trabajos106/comunicacion-procesos-sistemas-
distribuidos/comunicacion-procesos-sistemas-distribuidos.shtml

Profesor Martín Arosemena 130 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

[8] Jonnathan Garzón Domínguez, Tecnología Industrial Colombiana, 2012

Comunicación entre procesos y sincronización

https://sites.google.com/site/sistemasdistribuidosycluster/comunicacion-entre-procesos-y-
sincronizacion

[9] Luis Hernández, Estado del arte de los sistemas distribuidos, 2004

Septiembre 28, 2004

http://www.iuma.ulpgc.es/users/lhdez/inves/pfcs/memoria-ivan/node2.html

[10] Adrian Herrero Perezruluoafam, 2014

Enero 10, 2014

Comunicación: comunicación con cliente – servidor, comunicación con llamada a procedimiento


remoto, comunicación en grupo, tolerancia a fallos.

https://sites.google.com/site/mrtripus/home/sistemas-operativos-2/2-1-comunicacion-
comunicacion-con-cliente-servidor-comunicacion-con-llamada-a-procedimiento-remoto-
comunicacion-en-grupo-tolerancia-a-fallos

[11] Tedhy García Lazo, Sistemas Distribuídos, 2012

Junio 13, 2012

http://tedhygarcia.blogspot.com/2012/06/los-sockets-son-utilizados-como-medios.html

[12] Martín Santana, A. David Martínez Santana, Luis Ignacio, 2014, Diseño de sistemas
Operativos

2007-2008

http://sopa.dis.ulpgc.es/ii-dso/leclinux/ipc/sockets/sockets.pdf

[13] Isaí Armenda Rendón, Larmenta’s Blog, El Middleware, 2009

Agosto 24, 2009

https://iarmenta.wordpress.com/2009/08/24/el-middleware/

[14] José Luis Castro Vargas, Sistemas Distribuídos

Mayo 24, 2016

http://sistemasdistribuidosjosecastro.blogspot.com/2016/05/v-behaviorurldefaultvmlo.html
Profesor Martín Arosemena 131 | 134
Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

[15] Julio Pari, Sistemas Distribuidos - Arquitectura - Web Service – Middleware, 2013

Octubre 20, 2013

https://www.youtube.com/watch?v=SObBMbeUcuw

[16] Jade García, Middleware, 2011

http://aplicaciones-middleware.blogspot.com/

[17] George Couloris, Sistemas Distribuídos conceptos y Diseño, 2001

https://es.scribd.com/doc/219504970/Sistemas-Distribuidos-Coulouris-pdf

[18] Juan Sánchez, Arquitectura de Protocolo, 2010

Julio 3, 2010

http://29901juansanchezexamenyamilethquezada.blogspot.com/

[19] Eduard Lara, configuración de la red en GNU/Linux,

http://www.elara.site.ac.upc.edu/documentacion/LINUX%20-%20UD11%20-
%20Configuracion%20de%20red%20en%20Linux.pdf

[20] Nicolás Álvarez S. Juan Monsalve Z., Introducción a las Redes de Computadores, 2008

http://www2.elo.utfsm.cl/~iwg101/ClaseRedes.pdf

[21] Manuel Martín Santiago, Redes locales bajo Windows – Curso Coordinadores TIC

http://www.sietecolinas.es/soporte/documentos/redes.pdf

[22] Licmisterioso, Cluster, 2011

Mayo 21, 2011

http://wwwclusterinformatica.blogspot.com/2011/05/cluster-informatica.html

[23] Wikipedia, Cluster, 2018

Junio 4, 2018

https://es.wikipedia.org/wiki/Cl%C3%BAster_(inform%C3%A1tica)

Profesor Martín Arosemena 132 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

[24] José Manuel Maqueira Marín, Sebastián Bruqué Cámara: Las tecnologías grid de la
información como nueva herramienta empresarial: definición, taxonomía y niveles de
adopción

http://www.minetad.gob.es/Publicaciones/Publicacionesperiodicas/EconomiaIndustrial/Revist
aEconomiaIndustrial/380/Jos%C3%A9%20Manuel%20Maqueira.pdf

[25] Cluster y Grid, colecciones de Informática, 2014

https://laredinfinita.wordpress.com/2014/05/10/cluster-y-grid-colecciones-de-sistemas/

[26] Deysi Chura, Grid Computing, 2016

Julio 22, 2016

http://sistemasdistribuidos.activo.in/t62-grid-computing

[28] Pablo Turmero, Computación Grid

http://www.monografias.com/trabajos102/computacion-grid/computacion-grid.shtml

[29] Bertha Mariel Márquez AvendañoJosé Manuel Zulaica Rugarcía, Capítulo 5. Cliente-
Servidor, 2004

Enero 12, 2004

http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/marquez_a_bm/capitulo5.pdf

[30] Ecured, Cliente-Servidor, 2018

Junio 4, 2018

https://www.ecured.cu/Cliente-Servidor

[31] Universidad de Salamanca, Mecanismos de comunicación Distribuída entre procesos

http://gmodulo.sourceforge.net/docs/html/reference/ch02s02.html

[32] Ecured, LLamada a procedimiento remoto, 2018

Junio 4, 2018

https://www.ecured.cu/Llamada_a_procedimiento_remoto

Profesor Martín Arosemena 133 | 134


Sistemas Operativos III, Apuntes Completos, PPTs y Laboratorios resueltos

[33] Sun Cluster para el Sistema Operativo Solaris: Visión general, 2010

https://docs.oracle.com/cd/E19263-01/817-6910/6mm91j7tc/index.html

[34] Rafael Perez, Procesamiento Distribuído, 2012

Junio 5, 2012

https://es.scribd.com/document/95961710/Distribuido-Cluster

[35] Alan Lazalde, Hipertextual, Historia de la Tecnología: Clúster Beowulf, la


supercomputadora de los pobres, 2011

Novie,bre 9, 2011

https://hipertextual.com/2011/11/historia-de-la-tecnologia-cluster-beowulf-la-
supercomputadora-de-los-pobres

Profesor Martín Arosemena 134 | 134

Вам также может понравиться