Está en la página 1de 20

IPC - Comunicacin entre procesos

La espina dorsal de los sistemas distribuidos son los mecanismos de comunicacin


entre procesos (interprocess communication o IPC): la posibilidad de que procesos
separados e independientes (como podr recordar el lector, los procesos son
representaciones en tiempo de ejecucin de programas) se comuniquen entre s para
colaborar en una tarea. n este captulo, se !an a !er los "undamentos, caractersticas,
paradigmas e implementaciones de los mecanismos de comunicacin entre procesos.
NOTA: #n paradigma es un modelo abstracto de cmo se reali$a una determinada
tarea.
La %igura &.' ilustra un mecanismo bsico de comunicacin entre procesos: (os
procesos independientes, con la posibilidad ejecutarse en mquinas separadas,
intercambian datos sobre una red de comunicaciones. n este caso, el proceso ' act)a
como emisor, que transmite datos al proceso &, el receptor.
%I*#+, &.': Comunicacin entre procesos
Proceso ', Proceso &, misor, +eceptor, (atos
n sistemas distribuidos, dos o ms procesos establecen una comunicacin entre ellos
por medio de un protocolo -un conjunto de reglas que deben ser obser!adas por los
participantes en la comunicacin de los datos- acordado por los procesos. #n proceso
puede ser emisor en determinados puntos durante el protocolo . receptor en otros.
Cuando la comunicacin es desde un proceso a )nicamente otro proceso, el modelo de
comunicacin entre procesos se dice que es unidifusin o unicast. Cuando la
comunicacin es desde un proceso con un grupo de procesos, el mecanismo de
comunicacin se denomina multidifusin o multicast, que ser tratado en el Captulo
/. La %igura &.& ilustra el concepto de estos dos tipos de IPC.
%I*#+, &.&.: #nicast . multicast
--
Los sistemas operati!os actuales, como #0I1 . 2indo3s proporcionan
"uncionalidades para la comunicacin entre procesos. Llamaremos a estas
"uncionalidades mecanismos de comunicacin entre procesos a ni!el de sistema
operati!o, para distinguirlos de los mecanismos de comunicacin de alto ni!el. Los
mecanismos de comunicacin a ni!el de sistema operati!o inclu.en colas de
mensajes, sem"oros, . regiones de memoria compartida. (4i el lector no 5a reali$ado
un curso de sistemas operati!os, no se preocupe si no le resultan "amiliares estos
t6rminos7 no !an a ser casos de estudio en este libro.) s posible desarrollar so"t3are
de red usando directamente estas "uncionalidades a ni!el de sistema operati!o.
jemplos de estos programas son los manejadores (drivers) de red . los programas de
e!aluacin de prestaciones.
4e pueden desarrollar tambi6n aplicaciones distribuidas mu. rudimentarias aunque
normalmente no se 5ace, debido a que la complejidad tpica de estas aplicaciones
requiere el uso de alg)n tipo de abstraccin para separar al programador de los
detalles a ni!el de sistema operati!o. l lector puede encontrar ms in"ormacin sobre
mecanismos de comunicacin a ni!el de sistema operati!o en libros sobre dic5os
sistemas operati!os.
NOTA: n ingeniera del so"t3are, se denomina abstraccin a un mecanismo para
ocultar las complejidades internas de una tarea. Por ejemplo los lenguajes de alto
ni!el, como 8a!a proporcionan una abstraccin que permite al programador tener que
comprender los detalles al ni!el del sistema operati!o.
#na interfaz de programacin de aplicaciones (application program interface o
,PI) para un mecanismo de comunicacin entre procesos, normalmente re"erido
como interfaz de programacin solamente, proporciona una abstraccin de los
detalles e interioridades de las "uncionalidades a ni!el de sistema operati!o,
permitiendo de esta "orma al programador concentrarse en la lgica de la aplicacin.
, lo largo del resto de este captulo se !an a abordar las di"erentes inter"aces de
programacin para comunicacin entre procesos.
Un arquetipo de interfaz de programacin para comunicacin
entre procesos
, continuacin se !a a presentar una inter"a$ de programacin que proporciona el
mnimo ni!el de abstraccin para "acilitar la comunicacin entre procesos. Para ello
se necesitan cuatro primiti!as bsicas. Los detalles acerca de estas operaciones (tales
como los argumentos . los !alores de!ueltos) se !ern cuando se comenten
5erramientas . "uncionalidades espec"icas a lo largo de los siguientes captulos. stas
operaciones son:
Enviar: sta operacin se in!oca por el proceso emisor con el propsito de
transmitir datos al proceso receptor. La operacin debe permitir al proceso
emisor identi"icar al proceso receptor . especi"icar los datos a transmitir
Recibir: sta operacin es in!ocada por el proceso receptor con el objeti!o de
aceptar datos de un proceso emisor. La operacin debe permitir al proceso
receptor identi"icar al proceso emisor as como especi"icar el rea de memoria
que permitir almacenar el mensaje, que posteriormente ser accedida por el
receptor.
Conectar: Para mecanismos de comunicacin orientados a cone9in deben
e9istir operaciones que permitan establecer una cone9in lgica entre el
proceso que lo in!oca . otro proceso determinado: un proceso in!oca una
operacin de solicitar-conexin (denominada conectar en adelante) mientras
que el otro proceso solicita la operacin de aceptar-conexin.
Desconectar: Para mecanismos de comunicacin orientados a cone9in, esta
operacin permite que una cone9in lgica, pre!iamente establecida, sea
liberada en ambos e9tremos de la comunicacin.
#n proceso in!olucrado en un mecanismo de comunicacin in!oca estas operaciones
en un orden determinado. La in!ocacin de cada operacin implica la ocurrencia de
un evento. Por ejemplo, una operacin de en!iar solicitada por el proceso emisor
desemboca en el e!ento de transmisin de datos 5acia el proceso receptor, mientras
tanto la in!ocacin de la operacin recibir por parte del proceso receptor implica que
dic5os datos sean entregados al proceso. s necesario indicar que los procesos
participantes in!ocan operaciones de "orma independiente, .a que no 5a. "orma de
conocer el estado del otro proceso.
:odos los paradigmas de sistemas distribuidos que se !an a !er en este libro
proporcionan, implcita o e9plcitamente, operaciones de comunicacin entre
procesos. l siguiente captulo (Captulo ;) presentarn una jerarqua de los
paradigmas de sistemas distribuidos. n los siguientes captulos, se !ern ejemplos de
cmo se utili$an estos paradigmas en protocolos, 5erramientas . "uncionalidades.
Los protocolos de ser!icio de red pueden ser implementados usando operaciones de
comunicacin entre procesos primiti!as. Por ejemplo, en el protocolo <::P bsico
(HyperText Transfer Protocol, protocolo de trans"erencia de 5iperte9to, usado de
"orma e9tensi!a en el entorno 3eb, que ser estudiado en pr9imos captulos) un
proceso, el na!egador 3eb, in!oca una operacin conectar para establecer una
cone9in lgica con otro proceso, el ser!idor 3eb, seguido de una operacin enviar
5acia el ser!idor 3eb, para transmitir los datos que representan una solicitud. l
ser!idor 3eb como respuesta in!oca una operacin en!iar para transmitir los datos
solicitados por el na!egador 3eb. ,l "inali$ar la comunicacin, cada proceso in!oca
su operacin desconectar para "inali$ar con la cone9in. La %igura &.; ilustra la
sequencia de operaciones. 4e !ern protocolos de ser!icio de red como <::P ms
adelante en este . otros captulos.
%I*#+, &.;: Comunicacin entre procesos en <::P bsico.
#n proceso, #na operacin, %lujo de datos, ser!idor 3eb, na!egador 3eb,
operaciones, aceptar cone9iones, recibir (solicitud), en!iar (respuesta), desconectar,
establecer la cone9in, en!iar (solicitud), recibir(respuesta), desconectar.
n el resto de este captulo se !an a tratar determinados aspectos cla!e de estas
operaciones de comunicacin entre procesos.
Sincronizacin de eventos
#na de las ma.ores di"icultades cuando se trabaja con mecanismos de comunicacin
entre procesos es que cada proceso in!olucrado ejecuta de "orma independiente sin
que ninguno de ellos sepa que ocurre en el proceso en el otro e9tremo.
4i tenemos en cuenta el caso del protocolo bsico <::P, tal . como lo 5emos descrito
antes, como se puede obser!ar, los dos e9tremos in!olucrados en el protocolo in!ocan
operaciones de comunicacin en un orden determinado. Por ejemplo, el proceso del
na!egador 3eb no debe in!ocar ninguna operacin enviar antes de 5aber completado
la operacin conectar. :ambi6n es importante que el ser!idor 3eb no empiece a
transmitir datos antes de que el proceso del na!egador 3eb est6 preparado. ,)n ms,
el proceso na!egador necesita conocer cundo los datos solicitados se 5an
transmitido, de tal manera que el subsiguiente procesamiento de los mismos tenga
lugar, inclu.endo el dar "ormato . mostrar los contenidos al usuario.
La "orma ms sencilla que tiene una mecanismo de comunicacin de procesos para
proporcionar sincroni$acin de e!entos es por medio de peticiones bloueantes, que
es la supresin de la ejecucin del proceso 5asta que la operacin in!ocada 5a.a
"inali$ado.
Para ilustrar el uso de las llamadas bloqueantes en la sincroni$acin de e!entos, se !a
a considerar de nue!o el caso del protocolo <::P bsico. #n proceso de na!egador
3eb in!oca una operacin bloqueante para conectar, que bloquea su posterior
ejecucin 5asta que la cone9in 5a.a sido aceptada por el lado ser!idor.
Posteriormente, el proceso na!egador in!oca una operacin recibir bloqueante, la cual
suspende la ejecucin del proceso 5asta que la operacin se 5a.a completado (con
69ito o no). La opcin de bloqueante o no bloqueante se reali$a a ni!el del sistema
operati!o . se inicia por medio de las "uncionalidades proporcionadas por el
mecanismo de comunicacin entre procesos, no por el programador. Los programas
de los dos procesos se muestran en la %igura &.=.
(urante su ejecucin, el proceso se suspende despu6s de que se in!oque cada llamada
bloqueante. Cada !e$ que se ejecuta una in!ocacin a una operacin bloqueante, la
condicin de bloqueo se inicia por las "uncionalidades de comunicacin entre
procesos en conjunto con el sistema operati!o sobre el que se apo.a. La condicin de
bloqueo termina posteriormente cuando la operacin 5a sido completada, en dic5o
instante se dice que el proceso se encuentra desbloqueado. #n proceso desbloqueado
transita al estado de listo . en su momento continuar la ejecucin. n el caso de que
la operacin no pueda ser completada, un proceso bloqueado su"rir un bloueo
indefinido, durante el cual el proceso permanecer en el estado de bloqueado
inde"inidamente, a menos que se tomen las medidas de inter!encin apropiadas.
Las operaciones bloqueantes a menudo se llaman operaciones s!ncronas. Como
alternati!a, las operaciones de comunicacin entre procesos tambi6n pueden ser
as!ncronas o no bloueantes. #na operacin asncrona in!ocada por un proceso no
causar bloqueo, . por consiguiente el proceso es libre de continuar con su ejecucin
una !e$ que se in!oca al mecanismo de comunicacin para reali$ar la operacin
asncrona. 4e in"ormar posteriormente al proceso si la operacin se 5a completado .
si lo 5a sido con 69ito o no.
#n proceso puede in!ocar una operacin no bloqueante cuando el proceso puede
continuar sin esperar a que se complete el e!ento iniciado por la operacin. Por
ejemplo, la operacin recibir in!ocada por el na!egador 3eb debe esperar a la
respuesta del ser!idor para poder continuar con el procesamiento. Por el contrario, la
operacin enviar in!ocada por el ser!idor 3eb puede ser no bloqueante, porque el
ser!idor 3eb no necesita esperar a que la operacin se 5a.a completado antes de
proceder con la siguiente operacin (la operacin desconectar), de "orma que puede
continuar sir!iendo a otros procesos na!egadores.
%I*#+, &.=: %lujo de ejecucin de dos programas que inter!ienen en una
comunicacin entre procesos.
--
s responsabilidad del programador reconocer la necesidad de sincroni$acin . de
cundo una llamada es bloqueante. Por ejemplo, si se in!oca una operacin recibir no
bloqueante en el cdigo del na!egador 3eb, debido a un programador descuidado, se
asume que los datos se reciben inmediatamente despu6s de que se in!oque la
operacin, el procesamiento posterior puede mostrar datos que no sean !lidos o, peor
a)n, generar errores.
(ebido a que el uso de operaciones enviar . recibir es "undamental para los sistemas
distribuidos !amos a !er di"erentes escenarios en los cuales se usan di"erentes
combinaciones de estos modos.
Enviar sncrono y recibir sncrono
La %igura &.> es un diagrama, que a lo largo de este libro !amos a denominar
diagrama de eventos, que ilustra la sincroni$acin de los e!entos para una sesin de
un protocolo implementada por medio de una operacin enviar . una recibir
sncronas. n este escenario, la in!ocacin de la operacin recibir causa la suspensin
del proceso que la in!oca (proceso &) 5asta que se reciben los datos . se completa la
operacin. (e la misma "orma, la operacin en!iar in!ocada causa que el proceso
emisor (proceso ') se suspenda. Cuando se reciben los datos en!iados al proceso &, el
mecanismo de comunicacin entre procesos en el ordenador & en!a un asentimiento
al mecanismo de comunicacin anlogo del ordenador ', . el proceso ' puede
posteriormente desbloquearse. s necesario remarcar que el asentimiento se gestiona
por medio de los mecanismos de comunicacin de ambos ordenadores . que es
transparente para el proceso.
%I*#+, &.>: Enviar . recibir sncronos
l uso de un en!iar sncrono . un recibir sncrono es aconsejable cuando la lgica de
la aplicacin de ambos procesos necesita que los datos en!iados se reciban antes de
continuar con el procesamiento.
(ependiendo de la implementacin de las "uncionalidades de comunicacin entre
procesos, la operacin recibir sncrona puede no completarse 5asta que la cantidad de
datos esperada por el receptor 5a.a llegado. Por ejemplo, si el proceso & in!oca una
operacin de recibir para ;?? b.tes de datos, . la operacin en!iar slo transmite &??
b.tes, es posible que el bloqueo del proceso & contin)e incluso despu6s de 5aberse
entregado los primeros &?? b.tes7 en este caso, el proceso & no se desbloquear 5asta
que el proceso ' transmita posteriormente los '?? b.tes de datos restantes.
Enviar asncrono y recibir sncrono
n la %igura &./ se ilustra un diagrama de e!entos para una sesin de protocolo
implementada usando una operacin de enviar asncrona . una operacin de recibir
sncrona. Como antes, la operacin recibir bloquea al proceso que la in!oca 5asta que
lleguen datos para completar la operacin. 4in embargo, la operacin enviar in!ocada
no !a a causar que el proceso emisor se suspenda. n este caso, como el proceso
emisor no se bloquea no resulta necesario un asentimiento por parte del mecanismo de
comunicacin en el ordenador del proceso &. ste uso de una operacin de enviar
asncrona . una de recibir sncrona es apropiado cuando la lgica de la aplicacin
emisora no depende de la recepcin de los datos por parte del otro e9tremo. 4in
embargo, dependiendo de la implementacin del mecanismo de comunicacin, no se
garanti$a que los datos en!iados, realmente sean entregados al receptor. Por ejemplo,
si la operacin enviar es ejecutada antes de que la correspondiente de recibir sea
in!ocada en el otro e9tremo, es posible que los datos no se entreguen al proceso
receptor, a menos que el mecanismo de comunicacin proporcione espacio para
almacenar datos en!iados de "orma prematura.
%I*#+, &./: Enviar asncrono . recibir sncrono
Enviar sncrono y recibir asncrono
La %igura &.@ ilustra los di"erentes escenarios de un protocolo de sesin que emplee
operaciones de enviar sncrono . de recibir asncrono.
#na operacin de recibir asncrono causa que el proceso que la in!oca no se bloquee,
. el comportamiento depender muc5o de cmo se encuentre implementado el
mecanismo de comunicacin. La operacin recibir, en todos los casos, retornar
inmediatamente, e9istiendo tres posibles escenarios de qu6 ocurrira a continuacin:
Escenario 1. Los datos solicitados por la operacin del receptor .a 5an llegado
en el momento que la operacin recibir se in!oca. n este caso los datos se
entregan al proceso & inmediatamente, . el proceso ' se desbloquear por
medio de un asentamiento transmitido por el mecanismo de comunicacin del
ordenador &.
Escenario 2. Los datos solicitados por la operacin recibir no 5an llegado
toda!a7 el proceso receptor no recoge ning)n dato. s responsabilidad del
proceso receptor cerciorarse de que los datos se 5an recibido, si es necesario,
repetir el proceso 5asta que los datos 5a.an llegado. (0tese que es com)n que
el programa utilice un bucle para in!ocar a la operacin recibir repetidas !eces
5asta que el dato esperado llegue. ste t6cnica de repetir intentos se denomina
muestreo (en ingl6s polling)). l proceso ' se queda bloqueado de "orma
inde"inida 5asta que el proceso & !uel!e a in!ocar a recibir . el asentimiento
"inalmente le llega por parte del mecanismo de comunicacin del ordenador &.
Escenario 3. Los datos solicitados por la operacin recibir no 5an llegado a)n.
l mecanismo de comunicacin del ordenador & noti"icar a dic5o proceso
cuando los datos solicitados 5a.an llegado, en dic5o instante el proceso &
puede pasar a procesarlos. ste escenario requiere que el proceso &
proporcione un manejador de e!ento que puede in!ocarse por parte del
mecanismo de comunicacin para noti"icar al proceso que los datos esperados
5an llegado.
%I*#+, &.@: Enviar sncrono . recibir asncrono
Enviar asncrono y recibir asncrono
4in ning)n bloqueo en cualquiera de los dos lados, la )nica "orma en que los datos
puede entregarse al receptor es que el mecanismo de comunicacin pueda almacenar
los datos recibidos. l proceso receptor puede ser noti"icado de la llegada de los datos
(!6ase la %igura &.A). Btra alternati!a es, que el proceso receptor 5aga muestreo en
busca de la llegada de datos, para su posterior procesamiento.
%I*#+, &.A: Enviar asncrono . recibir asncrono
Temporizadores e hilos de ejecucin
,unque el bloqueo proporciona la sincroni$acin necesaria para los mecanismos de
comunicacin, es por lo general inaceptable que un proceso se quede suspendido de
"orma inde"inida. 9isten dos medidas para solucionar este problema. La primera es el
uso de temporizadores (timeouts), que se pueden utili$ar para "ijar el tiempo m9imo
de bloqueo. Los tempori$adores los proporciona el propio mecanismo de
comunicacin . pueden ser "ijados desde el programa por medio de una operacin. n
segundo lugar, un proceso puede lan$ar otro proceso "i#o o un "ilo de e#ecucin
(thread) independiente para in!ocar la operacin bloqueante, permitiendo de este
manera al 5ilo de ejecucin principal o al proceso padre del programa seguir
ejecutando otras tareas de procesamiento mientras el 5ilo de ejecucin o proceso 5ijo
se suspende. La %igura &.C ilustra este uso de los 5ilos de ejecucin.
Los tempori$adores son importantes si la ejecucin de operaciones sncronas puede
potencialmente dar como resultado un bloueo indefinido. Por ejemplo, una
operacin bloqueante de conectar puede causar que el proceso que la solicita se quede
suspendido de "orma inde"inida si la cone9in no est establecida . no se puede
establecer debido a una cada en la red de intercone9in entre ambos ordenadores. n
esta situacin, es tpicamente inaceptable para el proceso solicitante quedarse
DcolgadoE de "orma inde"inida. Los bloqueos inde"inidos pueden resol!erse usando
tempori$adores. Por ejemplo, se puede "ijar un tempori$ador de ;? segundos para la
operacin de conectar. 4i la peticin no se completa en apro9imadamente ;?
segundos, el mecanismo de comunicacin la abortar, en dic5o instante el proceso que
la solicit se desbloquear, pudiendo as continuar con su procesamiento.
%I*#+, &.C: #tili$acin de un 5ilo de ejecucin para una operacin bloqueante.
Interbloqueos y temporizadores
Btra causa para su"rir un bloqueo inde"inido son los interbloueos (deadlocs). n
comunicacin entre procesos, un interbloqueo puede causarse por una operacin
in!ocada de "orma no apropiada, qui$s por culpa de una mala interpretacin del
protocolo o por errores de programacin. La %igura &.'? muestra este caso. l proceso
' 5a in!ocado una operacin de recibir para recoger datos del proceso &. , la !e$, el
proceso & 5a in!ocado otro recibir bloqueante cuando debera ser una operacin de
enviar lo apropiado. Como resultado, ambos procesos se encuentran bloqueados a
esperas de datos del otro, cosa que nunca puede ocurrir (debido a que cada proceso se
encuentra bloqueado). n resumen, cada proceso por su parte se encontrar
suspendido inde"inidamente 5asta que salte un tempori$ador o 5asta que el sistema
operati!o aborte el proceso.
%I*#+, &.'?: #n interbloqueo causado por operaciones bloqueantes
Representacin de datos
n el ni!el "sico de una arquitectura de red (que es el ni!el ms bajo, en oposicin al
ni!el de aplicacin que es el ms alto), los datos se transmiten como seFales
analgicas, las cuales representan un flu#o binario. n el ni!el de aplicacin, se
necesita una representacin ms compleja de los datos transmitidos con el objeto de
dar soporte a la representacin de tipos de datos . estructuras proporcionadas por los
lenguajes de programacin, tales como cadenas de caracteres, enteros, !alores en
coma "lotante, !ectores, registros . objetos.
NOTA: Analgico es lo opuesto a digital: 5ace re"erencia a algo mecnico, en
oposicin a algo que representa datos. l procesamiento de seFales analgicas es un
rea de trabajo dentro de redes de computadores.
NOTA: #n flu#o binario es un "lujo de bits (? . '), tal como ??'?'...'?'?'''
4i consideramos el caso simple de dos procesos, proceso ' en el ordenador , .
proceso & en el ordenador G, que participan en un protocolo que implica el
intercambio de un !alor entero durante su ejecucin. l proceso ' calcula el !alor e
in!oca una operacin enviar para mandar el !alor al proceso &, el cual in!oca una
operacin recibir para recoger dic5o !alor, para que el proceso & realice las
correspondientes operaciones con dic5o !alor, todo de acuerdo al protocolo
establecido.
4i nos centramos en el !alor entero que el proceso ' tiene que en!iar. l !alor entero
se encuentra representado en el "ormato de representacin del ordenador ,, que es
una mquina de ;&-bits que utili$a representacin Dbig!endianE para tipos de datos de
!arios b.tes. (Los t6rminos big!endian . little!endian indican cul es el b.te ms
signi"icati!o en representaciones de !alores de !arios b.tes de tamaFo. n
arquitecturas de tipo big!endian, el b.te ms a la i$quierda Hel de menor direccinI es
el ms signi"icati!o. n arquitecturas, little!endian es el b.te ms a la derec5a el ms
signi"icati!o.)
l ordenador G, por su parte, es una mquina de '/-bits con representacin de datos
little!endian. 4upngase que el dato de ;& bits es transmitido directamente desde el
espacio de almacenamiento del proceso ' al espacio reser!ado por el proceso &.
ntonces (') '/ bits de los ;& en!iados !an a ser truncados .a que el tamaFo de un
entero en el ordenador G es de slo '/ bits . (&) el orden de los b.tes de la
representacin de los enteros debe ser intercambiado de "orma que se interprete
correctamente el mismo !alor por parte del proceso receptor.
Como se 5a !isto en el ejemplo, cuando ordenadores 5eterog6neos participan en una
comunicacin entre procesos, no basta con transmitir los !alores de los datos o las
estructuras usando "lujos de bits en crudo a menos que los procesos participantes
tomen las medidas oportunas para empaquetar e interpretar los datos de "orma
apropiada. Para nuestro ejemplo 5a. tres esquemas para 5acer esto:
NOTA: 4e denominan ordenadores 5eterog6neos a aquellos ordenadores que
disponen de di"erente 5ard3are . por tanto de di"erentes representaciones de datos.
'. ,ntes de in!ocar a la operacin enviar, el proceso ' con!ierte el !alor entero a
'/-bits en "ormato little!endian para el proceso &.
&. l proceso ' en!a los datos en ;&-bits . representacin big!endian. :ras
recibir los datos, el proceso & con!ierte el !alor a su "ormato, '/-bits . little!
endian.
;. #n tercer esquema es que los procesos cuando intercambien datos lo 5agan en
una representacin externa: los datos se !an a en!iar trans"ormados a esa
representacin . los datos recibidos se !an a interpretar con esa representacin
. se !an a traducir a la representacin nati!a.
:omando otro ejemplo, supongamos que el proceso ', ejecutndose en el ordenador
,, desea en!iar un simple carcter a al proceso &, ejecutndose en el ordenador G. l
programa para el proceso ' usa ,4CII como representacin de caracteres, mientras
que el programa del proceso & usa #nicode. l esquema ' obligar al proceso ' a
con!ertir el carcter a a #nicode antes de en!iarlo. l esquema & requerir que el
proceso & reciba el dato, . lo con!ierta de ,4CII a la representacin #nicode
correspondiente. l esquema ; e9igir que ambos e9tremos se pongan de acuerdo en
una representacin e9terna, digamos ,40.' ("bstract #yntax $otation $umber 1), de
"orma que el proceso ' con!ierta el carcter a a ,40.' antes de mandarlo, . el
proceso & con!ierta el dato recibido de ,40.' a la representacin #nicode. (La
representacin ,40.' se e9plicar en la 4eccin &./.)
NOTA: A$C%% son las siglas de "merican #tandard %ode for &nformation
&nterchange (Cdigo estndar americano para intercambio de in"ormacin), . es un
esquema de codi"icacin usado para caracteres del al"abeto ingl6s usando un rango de
!alores de ? a '&@.
NOTA: &nicode es un esquema de codi"icacin complejo que permite traducir
caracteres, no slo del al"abeto ingl6s, a !alores num6ricos entre ? . />>;>. Para una
de"inicin ms precisa, !6ase 5ttp:JJ333.unicode.org.
4i se considera otro caso ms cuando se transmite una estructura de datos, como por
ejemplo una lista de !alores, adems de lo necesario de representacin e9terna de los
!alores de datos, e9iste en este caso la necesidad de DaplanarE o seriali$ar la estructura
de datos en el e9tremo del emisor . des5acer el cambio en el otro e9tremo, para as
reconstruir los datos.
l t6rmino de empauetamiento de datos (data marshaling) se usa en el conte9to de
los mecanismos de comunicacin entre procesos para re"erirse a las trans"ormaciones
necesarias para transmitir !alores de datos o estructuras. l empaquetamiento de datos
se necesita para todos los mecanismos de comunicacin e inclu.e los pasos necesarios
para acondicionar los datos a ser transmitidos: (') seriali$acin de las estructuras de
datos, . (&) con!ersin de los !alores de datos a las representaciones e9ternas. La
%igura &.'' muestra el concepto de empaquetamiento de datos.
Para aplicaciones de red escritas en lenguajes orientados a objetos como 8a!a, unas
estructuras de datos que requieren especial atencin en lo re"erente al
empaquetamiento de datos son los propios objetos. , di"erencia de estructuras de
daos estticas como !ectores o registros, un objeto encapsula tanto datos
(representando el estado del objeto), como m6todos (representando el comportamiento
del objeto). 4i se !a a transmitir un objeto usando un mecanismo de comunicacin
entre procesos es necesario que el proceso de empaquetamiento (de nue!o aplanado .
codi"icacin) cubra tanto a los datos como a la representacin de m6todos K
inclu.endo el estado de ejecucin- de "orma que el objeto una !e$ desempaquetado
por el proceso receptor pueda "uncionar como un objeto ejecutando en el espacio de
dic5o proceso. (ebido a la complejidad e9istente, el empaquetado de objetos implica
un ma.or reto que el del resto de estructuras, se le 5a dado un nombre espec"ico:
serializacin de ob#etos Hja!a.sun.com, ''I. n 8a!a, DLa seriali$acin de objetos
soporta la codi"icacin de objetos, . de los objetos alcan$ables desde ellos, en un "lujo
de b.tes, as como el soporte complementario para su reconstruccin en un objeto ...
desde el "lujo de b.tesE H<arold,'&I.
odificacin de datos
,unque determinados programas especiali$ados puedan escribirse para reali$ar la
comunicacin entre procesos usando un esquema de representacin determinado de
mutuo acuerdo, las aplicaciones distribuidas de propsito general necesitan un
esquema uni!ersal, e independiente de plata"orma, para codi"icar el intercambio de
datos. Por esto se 5an de"inido estndares de red para la codi"icacin de datos.
%I*#+, &.'': mpaquetamiento de datos
Como se muestra en la %igura &.'&, 5a. estndares para la codi"icacin de datos
disponibles a di"erentes ni!eles de abstraccin.
,l ni!el ms simple, un esquema de codi"icacin como 'DR (External 'ata
(epresentation) Hiet".org, 'I permite que un conjunto de tipos de datos determinado .
unas estructuras espec"icas se puedan codi"icar para usarse con mecanismos de
comunicacin entre procesos. l empaquetamiento . desempaquetamiento de datos se
reali$an automticamente por las "uncionalidades de comunicacin entre procesos en
los dos e9tremos, de "orma transparente al programador.
, un ni!el de abstraccin ms alto (esto es, ocultando ms detalles7 se entrar en este
concepto con ms detalle en el pr9imo captulo), e9isten estndares como A$N()
("bstract #yntax $otation $umber 1) Hoss.com, &I. ,40.' es un estndar de B4I
()pen #ystems &nterconnection) que especi"ica la sinta9is de trans"erencia para datos
sobre una red. l estndar cubre un amplio rango de estructuras (como conjuntos .
secuencias) . tipos de datos (enteros, boolenos . caracteres) . soporta el concepto de
etiquetado de datos. Cada elemento de datos transmitido se codi"ica usando una
sinta9is que indica el tipo, la longitud, el !alor . opcionalmente una etiqueta que
identi"ica una "orma espec"ica de interpretar esta sinta9is.
, un ni!el a)n ms alto de abstraccin 5a emergido '*+ (Extensible *arup
+anguage) H3;.org, CI como lenguaje de descripcin de datos entre aplicaciones que
comparten in"ormacin, principalmente aplicaciones en Internet, usando una sinta9is
similar a <:LL (HyperText *arup +anguage), que es el lenguaje usado para
componer pginas 3eb. 1LL !a un poco ms all que ,40.' en el sentido que
permite al usuario usar etiquetas con"igurables (tales como ,mensa-e., ,de. o
,para. en el ejemplo de la %igura &.';) para especi"icar una unidad de contenido de
datos. 1LL se utili$a para "acilitar intercambio de datos entre sistemas 5eterog6neos,
para separar el contenido de una pgina 3eb (escrito en 1LL) de la sinta9is para
mostrarlo (escrita en <:LL), . para permitir que los datos se compartan entre
aplicaciones. (esde su aparicin en 'CCA, 1LL 5a ganado una atencin considerable
. en la actualidad se utili$a en un amplio rango de aplicaciones.
%I*#+, &.'&: stndares de representacin de datos de red
%I*#+, &.';: #n "ic5ero 1LL de ejemplo
<mensaje>
<a>MaryJ@BigU.edu</a>
<de>JohnL@OpenU.edu</de>
<sobre>Comunicacin entre procesos</sobre>
<texto> La espina dorsal de los sistemas distribuidos son los ... </texto>
</mensaje>
!rotocolos basados en te"to
l empaquetamiento de datos es, en el caso ms simple, cuando se intercambian
cadenas de caracteres o te9to codi"icado en una representacin de tipo ,4CII. l
intercambio de datos en te9to tiene la !entaja adicional de que puede ser "cilmente
anali$ado por un programa . mostrado a un usuario 5umano. Por eso es relati!amente
5abitual en !arios protocolos intercambiar peticiones . respuestas en "orma de
cadenas de caracteres. stos protocolos se denominan basados en texto. Luc5os
protocolos 5abituales son basados en te9to, inclu.endo %:P (/ile Transfer Protocol,
protocolo de trans"erencia de "ic5eros), <::P . 4L:P (#imple *ail Transfer
Protocol, protocolo simple de trans"erencia de correo). l lector tendr la oportunidad
de in!estigar . e9perimentar con estos protocolos en ejercicios al "inal de este
captulo, . se estudiarn !arios de estos protocolos en detalle en posteriores captulos.
!rotocolos de solicitud#respuesta
#n tipo importante de protocolos son los protocolos de solicitud-respuesta. n estos
protocolos un lado in!oca una peticin . espera una respuesta del otro e9tremo.
Posteriormente, puede ser en!iada otra solicitud, esperndose de nue!o respuesta. l
protocolo se desarrolla basndose en interacciones de este tipo 5asta que la tarea
solicitada se 5a cumplido. %:P, 5ttp . 4L:P son protocolos 5abituales del tipo
solicitud-respuesta.
$iagrama de eventos y diagrama de secuencia
#n diagrama de e!entos, .a presentado en la seccin &.&, es un diagrama que se puede
utili$ar para documentar la secuencia detallada de e!entos . bloqueos durante la
ejecucin de un protocolo. La %igura &.'= es un diagrama de e!entos para un
protocolo solicitud-respuesta en el que participan dos procesos concurrentes, , . G.
La ejecucin de cada proceso respecto del tiempo se representa usando una lnea
!ertical, que a!an$a 5acia abajo. #n inter!alo de lnea continua durante la lnea de
ejecucin representa un periodo de tiempo en el cual el proceso estaba acti!o. #n
inter!alo de lnea discontinua representa cundo el proceso est bloqueado. n el
ejemplo, ambos procesos estn inicialmente acti!os. l proceso G in!oca un recibir
bloqueante con antelacin a la solicitud ' del proceso ,. l proceso , mientras tanto
lan$a la solicitud ' que se estaba esperando, usando para ello un enviar no bloqueante
. acto seguido un recibir bloqueante a la espera de la respuesta de G. La llegada de la
solicitud ' reacti!a al proceso G que inicia el procesamiento de la solicitud antes de
in!ocar una operacin de enviar con respuesta ' para el proceso ,. l proceso G
in!oca luego un recibir bloqueante para la solicitud &. La llegada de la respuesta '
desbloquea al proceso ,, que reanuda su ejecucin para trabajar con la respuesta .
preparar la peticin &, que desbloquea al proceso G. #na secuencia similar de e!entos
se sigue.
%I*#+, &.'=: #n diagrama de e!entos
Cabe resaltar que cada turno de solicitud-respuesta enla$a una pareja de operaciones
enviar . recibir para intercambiar dos mensajes. l protocolo se puede e9tender 5asta
cualquier n)mero de turnos de intercambios con este patrn.
:ambi6n es necesario indicar que es esencial que los programas que implementan el
protocolo deben estar escritos para in!ocar las operaciones de enviar . recibir en el
orden preestablecido, de otra "orma uno o los dos procesos participantes puede
quedarse esperando por una solicitud o una respuesta que nunca llega . los procesos
pueden quedarse bloqueados de "orma inde"inida.
La %igura &.'> presenta, por medio de un diagrama de e!entos un protocolo <::P.
n su "orma ms bsica, <::P es un protocolo basado en te9to del tipo peticin-
respuesta que utili$a slo un turno de intercambio de mensajes. #n ser!idor 2eb es
un proceso que escuc5a constantemente peticiones reali$adas desde procesos
0a!egadores. #n 0a!egador 3eb establece una cone9in con el ser!idor, tras ello
in!oca una peticin en el "ormato dictado por el protocolo. l ser!idor procesa la
peticin . responde con una lnea de estado, una cabecera de in"ormacin . el
documento solicitado por el na!egador. :ras recibir la respuesta, el na!egador anali$a
el documento . lo presenta en pantalla. (4e estudiar el modelo cliente-ser!idor . el
protocolo <::P con ms detalle en el Captulo >.)
%I*#+, &.'>: (iagrama de e!entos de una sesin <::P.
#n diagrama de e!entos es una 5erramienta mu. )til para ilustrar la sincroni$acin
entre e!entos. Pero es, sin embargo, demasiado detallado para documentar protocolos
que sean complejos. #na "orma simpli"icada de este diagrama, denominada diagrama
de secuencia . parte de la notacin #LL, se usa ms 5abitualmente para denotar la
comunicacin entre procesos.
n un diagrama de secuencia, el "lujo de ejecucin de cada participante del protocolo
se representa por una lnea discontinua . no se di"erencia entre estados de bloqueo .
ejecucin. Cada mensaje intercambiado entre dos elementos se representa con una
lnea dirigida que !a entre las dos lneas discontinuas de emisor . receptor sobre la
que se aFade una etiqueta descripti!a del mensaje, tal . como se ilustra en la "igura
&.'/.
l diagrama de secuencia de una sesin <::P bsica se muestra en la "igura &.'@.
%I*#+, &.'/: #n diagrama de secuencia
%I*#+, &.'@: l diagrama de secuencia para una sesin <::P.
La "igura &.'A muestra el te9to de los mensajes intercambiados durante una sesin
<::P de ejemplo. Por medio de un cliente telnet (telnet es un protocolo utili$ado
normalmente para una sesin de terminal sobre una mquina remota), se puede
conectar a un ser!idor 3eb e introducir el te9to de una peticin <::P a mano. (La
utili$acin de telnet para comunicarse con un proceso de la "orma aqu indicada
permite 5acer pruebas con procesos !a IPC sin necesidad de escribir el programa,
pero es necesario a!isar de que 6sta no es la "orma normal de interactuar con estos
procesos. n los siguientes captulos se aprender a programar estas interacciones.)
n este caso, el ser!idor 3eb se ejecuta sobre el puerto A? de la mquina
333.csc.calpol..edu. La peticin *: JMmliuJ <::PJ'.? se teclea . en!a. La
respuesta del ser!idor 3eb se remite a continuacin. n el captulo C se estudiar el
signi"icado de las peticiones . respuestas cuando se e9ponga el protocolo <::P en
detalle.
%I*#+, &.'A: l dilogo durante una sesin <::P.
omunicacin entre procesos orientada y no orientada a
cone"in
n el captulo ' se introdujo la distincin entre comunicaciones orientadas . no
orientadas a cone9in. Namos a aplicar esta distincin a los mecanismos de IPC.
Por medio de un mecanismo de IPC orientado a cone9in, dos procesos establecen
una cone9in (la cual, como recordatorio, decamos que poda ser lgica-es decir,
implementada por so"t3are- en lugar de !erdaderamente "sica), . posteriormente
insertan datos en o e9traen datos desde dic5a cone9in. #na !e$ que la cone9in est
establecida, no es necesaria la identi"icacin de emisor . receptor.
Para el caso de una IPC no orientada a cone9in, los datos son intercambiados por
medio de paquetes independientes cada uno de los cuales necesita e9plcitamente la
direccin del receptor.
Cuando se estudie el ,PI de socOets en el captulo =, se !er cmo los mecanismos de
IPC orientados . no orientados a cone9in se proporcionan al ni!el de aplicacin.
Evolucin de los paradigmas de comunicacin entre
procesos
#na !e$ e9puesto el concepto de comunicaciones entre procesos (IPC), !eremos
di"erentes modelos, o paradigmas, por medio de los cuales la comunicacin entre
procesos se proporciona al programador que quiere utili$ar una IPC en su programa.
,l comien$o de este captulo se !io que los esquemas de codi"icacin de datos se dan
a di"erentes ni!eles de abstraccin. Lo mismo se puede decir de los paradigmas de
comunicacin entre procesos, tal . como muestra la %igura &.'C.
n el ni!el menos abstracto, la comunicacin entre procesos implica la transmisin de
ristras binarias sobre una cone9in, utili$ando una trans"erencia de datos de bajo
ni!el, serie o paralelo. ste paradigma de comunicacin entre procesos puede ser
!lido para el desarrollo del so"t3are de un driver de red, por ejemplo. #na IPC de
esta "orma cae dentro del dominio de programacin de red o de sistema operati!o . no
lo !a a cubrir este libro.
NOTA: Transferencia de datos serie se re"iere a la transmisin de datos bit a bit. Lo
opuesto a transferencia de datos serie es transferencia de datos en paralelo, en la
cual !arios bits se transmiten concurrentemente.
l siguiente ni!el es un paradigma bien conocido, denominado inter"a$ de
programacin de aplicaciones de soc,ets (el A-% de soc,ets). Por medio del
paradigma de socOets, dos procesos intercambian datos por medio de una estructura
lgica denominada soc,et, 5abiendo uno de cada tipo en cada e9tremo. Los datos a
transmitir se escriben sobre el socOet. n el otro e9tremo, un receptor lee o e9trae
datos del socOet. 4e estudiar el ,PI de socOets del lenguaje 8a!a en el pr9imo
captulo.
0B:,: 4ocOet es un termino tomado de los primeros das de las comunicaciones
tele"nicas, cuando un operador tena que establecer manualmente una cone9in entre
dos partes insertando los dos e9tremos de un cable en sendos socOets
'
.
Los paradigmas de llamadas a procedimientos remotos o de invocacin de
m.todos remotos proporcionan una ma.or abstraccin, permitiendo al proceso
reali$ar llamadas a procedimientos o la in!ocacin de m6todos de un proceso remoto,
con la transmisin de datos como argumentos o !alores de resultado. 4e estudiar una
implementacin de este paradigma, la in!ocacin de m6todos remotos en 8a!a, en el
Captulo A.
%I*#+, &.'C: Paradigmas de comunicacin entre procesos
Resumen
La comunicacin entre procesos (IPC) con"orma el eje central de la computacin
distribuida. n este captulo se 5an !isto los principios de los mecanismos de IPC,
inclu.endo lo siguiente:
Comunicacin entre procesos (IPC): La posibilidad de que procesos
independientes, . separados se comuniquen entre ellos para colaborar en una
tarea. Cuando una comunicacin se reali$a )nicamente de un proceso a otro, el
mecanismo IPC se denomina unidi"usin. Cuando la comunicacin se reali$a
entre un proceso . un grupo de procesos, el mecanismo IPC es multidi"usin.
#na ,PI bsica de "uncionalidades para IPC debe proporcionar:
'
(0. del :. 4ocOet en ingl6s signi"ica enc5u"e)
o Primiti!as de operacin: en!iar, recibir, conectarse, . desconectarse.
o La sincroni$acin de e!entos permite que procesos relacionados se
ejecuten independientemente, sin conocimiento de lo que ocurre en el
otro e9tremo. La "orma ms sencilla para que un mecanismo de
comunicacin permita sincroni$acin es por medio de bloqueos. Las
operaciones que son bloqueantes se denominan a menudo operaciones
sncronas, mientras que las que no son bloqueantes se llaman tambi6n
operaciones asncronas. Los interbloqueos pueden aparecer debido al
uso de operaciones bloqueantes. La utili$acin de 5ilos de ejecucin
(threads) o procesos permiten la reali$acin de otras tareas a un
proceso que a)n espera que una operacin bloqueante se complete.
o l empaquetamiento de datos (data marshaling) necesario para
preparar los datos para su transmisin por red, est compuesto por los
siguientes pasos: (i) seriali$acin de las estructuras de datos, . (ii)
con!ersin de los !alores de datos a una representacin e9terna o de
red.
9isten di"erentes esquemas de representacin de datos de red a di"erentes
ni!eles de abstraccin. ,lgunos de los ms conocidos son 4un 1(+(External
'ata (epresentation), ,40.' ("bstract #yntax $otation $umber 1) and 1LL
(Extensible *arup +anguage).
l empaquetamiento de datos es ms sencillo cuando los datos a transmitir son
una secuencia de caracteres o te9to representado por medio de una
codi"icacin de tipo ,4CII. Los protocolos que utili$an te9to se denominan
protocolos basados en te9to.
Los protocolo del tipo solicitud-respuesta son protocolos que en!an
iterati!amente mensajes de solicitud . de respuesta 5asta que se completen las
tareas.
#n diagrama de e!entos se utili$a para documentar la secuencia detallada de
e!entos . bloqueos en un protocolo. #n segmento continuo a lo largo de la
lnea de ejecucin representa el periodo de tiempo durante el cual el proceso
est acti!o. #na lnea discontinua representa que el proceso est bloqueado.
#n diagrama de secuencia es parte de la notacin #LL . se utili$a para
documentar iteraciones entre procesos que son complejas. n un diagrama de
secuencia, el "lujo de ejecucin de cada participante del protocolo se
representa por una lnea discontinua . no se di"erencia entre estados de
bloqueo . ejecucin.
Las "uncionalidades de comunicacin entre procesos pueden ser orientadas o
no orientadas a cone9in:
o Por medio de los mecanismos orientados a cone9in, dos procesos
establecen una cone9in lgica, para posteriormente intercambiar datos
insertndolos . e9tra.6ndolos de la cone9in. #na !e$ que la cone9in
se 5a establecido no es necesario identi"icar a emisor . receptor.
o n el caso de mecanismos no orientados a la cone9in, los datos se
intercambian por medio de paquetes independientes, cada uno de los
cuales necesita identi"icar al receptor.
Las "uncionalidades de tipo IPC pueden clasi"icarse de acuerdo a sus ni!eles
de abstraccin, .endo desde trans"erencia de datos serieJparalelo, al ni!el ms
bajo, pasando por el ,PI de socOets al siguiente ni!el, 5asta llamadas a
procedimientos o m6todos remotos, al ni!el ms alto.
Ejercicios
'. :eniendo en cuenta el caso de la comunicacin entre 5umanos:
a. Clasi"ique cada uno de los siguientes escenarios en t6rminos de
unidifusin o multidifusin:
i. #n estudiante 5ablando con un amigo por medio de un tel6"ono
inalmbrico.
ii. #n ejecuti!o 5ablando !a con"erencia con empresarios en
!arias ciudades.
iii. #n pro"esor dando clase en un aula.
i!. #n niFo jugando con otro usando un D0alie!talieE.
!. #n presidente dirigi6ndose a la nacin en tele!isin.
b. PCmo se reali$a la sincroni$acin de e!entos . la representacin de
datos durante una sesin de una con!ersacin cara a cara, como cuando
se 5abla con alguien sentado a su ladoQ
c. PCmo se reali$a la sincroni$acin de e!entos . la representacin de
datos durante una sesin de con!ersacin a distancia, como cuando se
5abla con alguien por tel6"onoQ
d. PCmo se reali$a la sincroni$acin de e!entos . la representacin de
datos durante una reunin entre dos representantes de dos naciones que
5ablan idiomas di"erentesQ
&. l proceso , manda un mensaje sencillo al proceso G usando una llamada IPC
no orientada a cone9in. Para 5acerlo, , in!oca una operacin enviar
(especi"icando un mensaje como argumento) en alg)n instante durante su
ejecucin, . G in!oca una operacin recibir. 4uponga que la operacin enviar
es asncrona (no bloqueante) . la operacin de recibir es sncrona
(bloqueante). (ibuje un diagrama de e!entos (no un diagrama de secuencia)
para cada uno de los siguientes escenarios.
a. l proceso , in!oca la operacin enviar antes de que el proceso G
in!oque la operacin recibir.
b. l proceso G in!oca la operacin recibir antes de que el proceso ,
in!oque la operacin enviar.
;. +epita la )ltima pregunta. sta !e$ ambas operaciones (enviar . recibir) son
bloqueantes.
=. Considere el ,PI de comunicacin entre procesos siguiente:
sta ,PI en!a . recibe los mensajes de bu$ones. #n proceso puede
comunicarse con otro proceso usando un bu$n compartido por esos dos
procesos. Por ejemplo, si el proceso , desea comunicarse con los procesos G .
C, debe compartir el bu$n ' con el proceso G, . otro bu$n, el bu$n &, con
C. Los mensajes entre , . G se depositan . recogen del bu$n ', mientras que
los mensajes entre , . C se depositan . recogen del bu$n &. Bbs6r!ese la
%igura &.&?.
Las operaciones enviar . recibir se de"inen como:
en!iar(n, mensaje): n!a un mensaje al bu$n n, bloqueante (es decir, que
el emisor quedar suspendido 5asta que llegue una respuesta al bu$n
compartido)
recibir(n, mensaje): 9amina el bu$n n con antelacin a la recepcin de
un mensaje7 es tambi6n una operacin bloqueante, que signi"ica que el
proceso receptor quedar suspendido 5asta que llegue un mensaje al citado
bu$n.
#n proceso que se encuentre bloqueado a la espera de un mensaje en un
determinado bu$n no podr recibir ning)n mensaje por otro bu$n.
a. 4uponga que un proceso P espera recibir dos mensajes, uno por el
bu$n ' . otro por el bu$n &. 0o se conoce a priori ni el instante ni el
orden en el que !an a llegar los mensajes. PRu6 secuencia de enviar .
recibir, si e9iste, se puede ejecutar para asegurarse que el proceso P no
se bloquea permanentementeQ
b. PRu6 secuencia de enviar . recibir, si e9iste, debe ejecutar el proceso
P si quiere esperar por un solo mensaje bien por el bu$n ' o por el
bu$n & (o incluso) por ambosQ (e nue!o, no se conoce por adelantado
qu6 mensaje llegar primero. ,simismo, la secuencia propuesta no
debe causar un bloqueo inde"inido.
($ota: 4u respuesta debe utili$ar )nicamente las operaciones dadas en el
captulo7 no utilice 5ilos (threading) u otras "uncionalidades del sistema
operati!o).
%I*#+, &.&?: #na inter"a$ de programacin de aplicaciones IPC para el
jercicio =.
>. P4e puede dar un interbloqueo durante la comunicacin entre procesos
(utili$ando enviarJrecibir)
a. en un sistema de comunicaciones que proporciona una operacin de
enviar bloqueante . de recibir bloqueanteQ
b. en un sistema de comunicaciones que proporciona una operacin de
enviar no bloqueante . de recibir bloqueanteQ
8usti"ique su respuesta. 4i la respuesta es a"irmati!a, proporcione un ejemplo.
4i la respuesta es negati!a, d6 una bre!e argumentacin.
/. Considere el desarrollo de una ,PI de multidi"usin sobre una ,PI e9istente
de tipo unidi"usin. l ,PI de unidi"usin proporciona operaciones enviar .
recibir entre dos procesos. l ,PI de multidi"usin debe proporcionar
operaciones para (') en!iar a un grupo de procesos, . (&) recibir de un proceso
de multidi"usin. (escriba cmo proporcionara las operaciones de
multidi"usin usando las operaciones de unidi"usin )nicamente. ($ota: 4u
respuesta debe utili$ar )nicamente las operaciones dadas en el captulo7 no
utilice 5ilos (threading) u otras "uncionalidades del sistema operati!o).
@. n un sistema distribuido, tres procesos P1, P2, . P3 participan en una
comunicacin entre procesos. 4uponga que sucede la siguiente secuencia de
e!entos:
n el instante ', P3 in!oca un recibir para P2.
n el instante &, P1 env1a el mensaje m1 5acia P2.
n el instante ;, P2 in!oca un recibir para P1.
n el instante =, P2 recibe el mensaje m1.
n el instante >, P2 env1a el mensaje m1 5acia P3.
n el instante /, P3 recibe el mensaje m1. P1 in!oca un recibir para P2.
n el instante @, P2 in!oca un recibir para P3.
n el instante A, P3 env1a el mensaje m2 5acia P2.
n el instante C, P2 recibe el mensaje m2.
n el instante '?, P2 env1a el mensaje m2 5acia P1.
n el instante '', P1 recibe el mensaje m2.
a. Para cada uno de los siguientes escenarios, dibuje un diagrama de
e!entos para mostrar la secuencia de e!entos . los bloqueos .
desbloqueos de cada proceso:
i. en un sistema de comunicaciones que proporciona una
operacin de enviar bloqueante . de recibir bloqueante,
ii. en un sistema de comunicaciones que proporciona una
operacin de enviar no bloqueante . de recibir bloqueante.
b. (ibuje un diagrama de secuencia para documentar la comunicacin
entre los procesos P1, P2, . P3.
A. ste es un ejercicio sobre empaquetamiento de datos (data marshaling).
a. n el conte9to de IPC:
i. PRu6 es el empaquetamiento de datosQ <a. dos pasos dentro
del empaquetamiento de datos, nmbrelos . describa cada uno.
PPor qu6 es necesario el empaquetamiento de datosQ
ii. PRu6 es la seriali$acin de objetosQ
iii. PCmo se aplican los dos pasos del empaquetamiento de datos
a (i) un !ector de enteros, . (ii) un objetoQ (escriba en
t6rminos generales qu6 es necesario reali$ar con los datos.
b. l proceso , en!a al proceso G un )nico dato, una "ec5a. l proceso
, usa el "ormato americano de "ec5a: ,mes.2,d1a.2,a3o. (por
ejemplo, ?'J;'J&??'). l proceso G usa el "ormato europeo:
,d1a.2,mes .2,a3o. (por ejemplo, ;'J?'J&??').
i. 4uponga que no se 5a acordado una representacin e9terna de
datos.
a. PCmo , en!iara la "ec5a a G para que , no
necesite 5acer ninguna con!ersinQ
b. PCmo , en!iara la "ec5a a G para que G no
necesite 5acer ninguna con!ersinQ
ii. 4uponga que la misma "ec5a se comunica al proceso C, que
utili$a un "ormato de "ec5a del tipo: ,a3o.!,mes.!,d1a. (por
ejemplo, &??'-;'-?'). PCmo puede , en!iar la "ec5a a G . C
a la !e$ de "orma que , no tenga que reali$ar con!ersin
algunaQ
iii. (escriba una representacin e9terna de datos para la "ec5a de
"orma que cualquier proceso emisor con!ierta la "ec5a del
"ormato de representacin local al "ormato de representacin
e9terno antes de en!iarla, . que cualquier proceso receptor
con!ierta la "ec5a recibida del "ormato de representacin
e9terno al su.o propio.
Puede resultarle de inter6s la consulta de la re"erencia Hsaqqara.demon.co.uO,
'?I.
C. #tilice telnet para interactuar con un ser!idor 'aytime H+%C A/@, =I sobre una
mquina a la que tenga acceso. Los ser!idores 'aytime escuc5an el puerto ';.
(esde una !entana de consola sobre el smbolo de sistema tecl6e:
telnet <espacio> <nombre o direccin ! de la m"#uina><espacio> $%
jemplo: telnet ma#uina.uni&ersidad.edu $%
+ecopile una tra$a de la sesin . describa sus obser!aciones.
'?. (ibuje un diagrama de secuencia para el protocolo 'aytime.
''. Ps posible para un cliente 'aytime que se quede bloqueado de "orma
inde"inidaQ 9plquelo.
'&. #tilice telnet para interactuar con un ser!idor echo H+%C A/&, /I sobre una
mquina a la que tenga acceso. Los ser!idores echo escuc5an el puerto @.
a. (ibuje un diagrama de e!entos para el protocolo echo.
b. Ps posible para un cliente 'aytime que se quede bloqueado de "orma
inde"inidaQ 9plquelo.
';. Considere el protocolo %:P (/ile Transfer Protocol-Protocolo de
:rans"erencia de %ic5eros) H+%C C>C, >I
0tese que este protocolo utili$a dos cone9iones: una para transmitir las
peticiones . respuestas . otro para transmitir los "ic5eros a ser
en!iadosJrecibidos.
a. #tilice telnet para conectarse a un ser!idor %:P al que tenga acceso.
Luego solicite un mandato para listar el contenido de directorio ra$ del
ser!idor.
b. #tilice un diagrama de e!entos para describir las interacciones entre
los procesos participantes.
c. PCul es el "ormato de cada peticinQ
d. PCul es el "ormato de cada respuestaQ
e. Considere el mandato LB( del protocolo: permite especi"icar el tipo
de "ic5ero (te9to o binario) a transmitir. PCul es la representacin de
datos para cada uno de los di"erentes modos de "ic5eroQ
'=. Considere el protocolo 4L:P (#imple *ail Transfer Protocol-Protocolo
4imple de :rans"erencia de Correo) H+%C A&', ;I. #n e9tracto de la +%C de
este protocolo proporciona la siguiente sesin de ejemplo:
R: 220 USC-ISI.ARPA Simple Mail Transfer Service Ready
S: HE! "-U#I$.ARPA
R: 2%0 USC-ISI.ARPA
S: MAI &R!M:'m()"-U#I$.ARPA*
R: 2%0 !+
S: RCPT T!:',(nes)USC-ISI.ARPA*
R: !+
S: -ATA
R: .%/ S0ar0 mail inp102 end 3i04 'CR&*.'CR&*
S: "la 5la 5la...
S: ...e0c. e0c. e0c.
S: .
R: 2%0 !+
S: 6UIT
R: 227 USC-ISI.ARPA Service cl(sin8 0ransmissi(n c4annel
a. #tilice un diagrama de secuencia para describir las interacciones entre
los procesos participantes.
b. PCul es el "ormato de cada peticinQ
c. PCul es el "ormato de cada respuestaQ
d. #tilice telnet para conectarse a un sistema donde usted tenga una
cuenta 4L:P, . en!ese a s mismo un correo. Con6ctese luego al
sistema . !eri"ique que el correo 5a llegado.
+ecopile una tra$a de la sesin . describa sus obser!aciones.
Referencias
(Nota: Todos los RFC (Requests for Comments) se pueden consultar en lnea en la pgina: IETF RFC
Page, http://wwwiet!org/r!cht"l)
# RFC #$#%, E&ternal 'ata Representation
( )*+,# -.er.iew,/ http://www.oss.com/asn1/overview.html
0 RFC 1(#, +2TP
% RFC 134, Protocolo 'a5ti"e
6 RFC 767, Protocolo FTP
3 RFC 13(, Protocolo Echo
4 8ohn +haple5 9ra5 Interprocess Communications in UNIX :pper +addle Prentice ;all, #774
1 RFC 4%(, Finger protocol
7 E&tensi<le 2ar=up >anguage (?2>), http://www.w3.org/X!/
#$ International 'ate For"at Ca"paign, http://www.saqqara."emon.co.u#/
## 8a.a -<@ect +erialiAation, http://$ava.sun.com/$%se/1.3/"ocs/gui"e/seriali&ation/
#( Elliotte Rust5 ;arold 'ava I/(, +e<astopol, C*: -BReill5 Press, #777

También podría gustarte