• Nenhum resultado encontrado

Canal virtual de tempo-real

N/A
N/A
Protected

Academic year: 2017

Share "Canal virtual de tempo-real"

Copied!
91
0
0

Texto

(1)
(2)
(3)

Ficha catalográfica elaborada pelo DePT da Biblioteca Comunitária da UFSCar

P195cv

Panont, Fernando Sales.

Canal virtual de tempo-real / Fernando Sales Panont. -- São Carlos : UFSCar, 2008.

78 f.

Dissertação (Mestrado) -- Universidade Federal de São Carlos, 2008.

1. Tempo real. 2. Rede de computadores. 3. Protocolos de comunicação. 4. Sistemas de transmissão de dados. I. Título.

(4)
(5)
(6)

Resumo

middleware middleware

! "

# " $ %

& % ' ( ) *

+ $

,

" Brokers

(7)

Abstract

" .

-. " - / 0 / "

" middleware / "

" / )" middleware "

"

# . . / " " " .

. 1 " * ) ( '"

" /" " "

2 " " 0 / Brokers,

(8)

(

Sumário

1 I TRODUÇÃO ... 1

3 3 '45) 6)4 4 )*&7&894 3 3 : 14) (&;<4 3 3 = 47> ) (4 : 3 ? @)*A)A*& & @@ *)&;<4 : 2 SISTEMAS DE TEMPO REAL E CARACTERÍSTICAS DE TEMPO REAL DO S.O. LI UX ... 4

: 3 @@) 1&@ ) 1,4* &8 ? : : '8&@@ 2 '&;<4 4@ @ @) 1&@ ) 1,4 * &8 ? : = ,*478 1& & 5( *@<4 ,* 4* & B : ? @@) 1&@4, *&' 45& @ ) 1,4 * &8 B : B @@) 1&4, *&' 45&8 ,*4,C@ )4 D *&885A6 E 2.5.1 Escalonador O(1) ... 6

2.5.2 Memória Compartilhada ... 7

2.5.3 Travamento de tarefas em memória ... 7

2.5.4 Threads POSIX ... 8

3 MECA ISMOS DE COMU ICAÇÃO DE TEMPO REAL ... 9

= 3 (*)A4@4F (@, G 3.1.1 Canais de Comunicação do Virtuoso™ ... 11

3.1.2 Mecanismo dos Canais ... 11

3.1.3 Bufferizando dados ... 12

3.1.4 Com Bufferização ... 12

3.1.5 Sem Bufferização ... 12

= : @@) 1& @)* 7AH 4 ) 1,4 * &8>&(& 7&@ & 4 1'@, 3= 3.2.1 Canais CSP ... 14

3.2.2 Canais Java ... 14

(9)

(

= = *)'I A1 1 8 J&* '41A5 '&;<4 ) 1,4 * &8 @47* 485A6

) 1,4 * &8*)& 3E

3.3.1 Arquitetura RTC ... 17

3.3.2 Gerenciador de conexão ... 18

3.3.3 MAC (Media Access Control) ... 18

3.3.4 Gerenciamento de lista de pacotes ... 19

3.3.5 Camada de Link ... 20

3.3.6 API ... 20

3.3.7 Gerenciador de Proxy ... 21

3.3.8 API Proxy de Usuário ... 21

3.3.9 API de Usuário Orientada a Objeto ... 22

= ? @ *( ;4@ '41A5 '&;<4 MIDDLEWARE&*1& & :: 3.4.1 Arquitetura de comunicação de tempoAreal ARMADA ... 25

3.4.2 Serviços de Comunicação de Grupo RTCAST ... 29

3.4.3 Serviço de Replicação backupAprimário de TempoAReal (RTPB) ... 31

3.4.4 Ferramentas de avaliação ... 32

4 CA AL VIRTUAL DE TEMPO REAL ... 34

? 3 '41A5 '&;<4 5) *,*4' @@4 =? ? : 5 * ;&1 5)4(*)A&8 4@,*4' @@4@ 1KLA 5&@ =? ? = &*LA ) )A*& 4@'&5& @(*)A& @ =B 4.3.1 API de Comunicação de TempoAReal ... 35

4.3.2 Camada Criador/Destruidor de Canal ... 39

4.3.3 Repositório de Configuração de Canal ... 40

4.3.4 Camada Consumidor ... 42

4.3.5 Camada Produtor ... 42

4.3.6 Camada Encaminhador ... 43

4.3.7 Camada Receptor ... 46

4.3.8 Camada Stub ... 46

4.3.9 Gerenciador de Inversão de Prioridade ... 47

? ? BROKER ?G 4.4.1 Fíveis hierárquicos de Broker... 49

4.4.2 Arquitetura dos Brokers ... 51

(10)

(

B 3 ' 5K* 4@ ) @) BM

B : ) @) 4FRAMEWORK ,*4)4'484@ '41A5 '&;<4 E3

5.2.1 Protocolo de Comunicação via Memória Compartilhada A Shmem ... 61 5.2.2 Protocolo de Comunicação UDP com bit alternante ... 65

B = OVERHEAD 5@ * 4 , 84'&5&8(*)A&8 ) 1,4 * &8 EM

B ? ) @) * 'A, *&;<4 4 '&5&8 5& ,* @ 5;& 2&89&@ '41A5 '&;<4 NO

6 CO CLUSÕES E TRABALHOS FUTUROS ... 74

(11)

(

Lista de Figuras

2 3I 5 0 ( 3O

2 :I ' $ - $ P - $ 3:

2 =I - #

3=

2 ?I &- ' 3?

2 BI 2 / 0 Q . 3B

2 EI ) + - 0 3B

2 NI ) + - 0

3E

2 MI ( # *)' 3N

2 GI ( - &*1& & :=

2 3OI ' R :?

2 33I @ 0 :B

2 3:I & # :N

2 3=I ' *)'&@) =3

2 3?I ' S 5 =B

2 3BI S 5 =B

2 3EI & # ' ( ) * =E

2 3NI " =N

2 3MI 4 S ' ( ) * =G

2 3GI S $ ' ( ) *

R ?3

2 :OI ' ' P ' ?3

2 :3I #T+ ' ?:

2 ::I 2 ' ' ?:

2 :=I 2 ' , ?=

2 :?I #T+ , ?=

2 :BI ' " ' ??

(12)

(

2 :NI ' ' , '

?B

2 :MI % ?E

2 :GI ' * ?E

2 =OI , ' ( ?N

2 =3I S D

, ?M

2 =:I ( & 7 0 ' , P' BO

2 ==I & # 7 0 ' ( ) * B3

2 =?I ' - " @ - 7 0 * LV* D @) * B?

2 =BI ' S - " @ - 7 0 B?

2 =EI ' R S R

S BG

2 =NI ( R

: -: BG

2 =MI ' R S BG

2 =GI ' R R S EO

2 ?OI ' R R E3

2 ?3I ' R S E3

2 ?:I & - 8

! E:

2 ?=I , WX @" E=

2 ??I * ' WX @" E?

2 ?BI * ' WX @" E?

2 ?EI 7 0 9 , 0 WX @" E?

2 ?NI 7 0 9 A 0 WX @" EB

2 ?MI , WX A ,

-EE

2 ?GI * ' WX A ,

-EN

2 BOI 7 0 9 , 0 WX A ,

-EN

2 B3I 7 0 9 A 0 WX A ,

(13)

6

LISTA DE TABELAS

) - 3I 8 2 =G ?O ?3 E3

) - :I ) $ ' (

) * EG

) - =I ) $ ,

@" EG

) - ?I ) % R R

S N3

) - BI ) % R R

N3

) - EI ) % R

(14)

3

1 I TRODUÇÃO

S $ - $

- "

1.1 Contexto do trabalho

4 + "R R % #

-- W'4)@ U commercialAoffAtheAshelfX

-%

- $ S

kernel preemptivo

R # $ WdeadlinesX & %

# "

S handhelds , 8 , )6 Y3Z

BluetoothY:Z Y=Z W " X WiAFi

MO3 33-Y?Z laptops WiAfi, " Ethernet '

# "

1.2 Motivação

R

"

W R X

% middleware

#

! " #T

(15)

:

1.3 Objetivo

- " - middleware )

* # S

# " - " ,

- ' ( ) * R I

Independência de protocolos de comunicação:& % Framework

' middleware

+ $ #

R $

,

% middleware #

#

S )',P , , ?

Tolerância a falhas por redundância de pontos de acesso de conexão:

, # S #

%

# ,

'

Transparência de localizaçãoI 4 @ Brokers

+ $

1.4 Estrutura da Dissertação

4 S I

' : U @ ) *

8 SI #

) *

8 S

(16)

=

' = U & I # middleware

#

# ?

' ? U , ' ( ) * I

# middleware ) * '

( ) *

' B U ' I - $

# ' ( ) *

' E U ' - " I &

(17)

?

2 SISTEMAS DE TEMPO'REAL E CARACTERÍSTICAS DE

TEMPO'REAL DO S.O. LI UX

- -R

--R

-8 S

$ ' ( ) *

2.1 Sistemas de Tempo Real

4 $

-" ( &7@

A % # #

# #

YBZ # # %

@ ) * W@)*X

2.2 Classificação dos sistemas de Tempo Real

4 @ ) * S

- I

) * * WHard RealATimeXI YEZ # $ WdeadlineX " S

&

%

) * ' WSoftAReal TimeXI @ #

(18)

B

# R YEZ A S

R

# - $

2.3 Problema da Inversão de Prioridade

5 % # #

- # & R

YNZ [ #

# - #

# %

" deadlines , $

9 , YMZ $ %

% # - " 2

% +

2.4 Sistemas Operacionais de Tempo Real

4 W@4)*X

- +

-#

&

8 % # @4)* % $

# R R

& @4)*

R #

A $ # @4)* "

(19)

E

# deadlines

#

- $ # deadlines

2.5 Sistema Operacional de propósito geral Linux

4 % kernel 8 S % throughput

- YGZ & S

+ #

& R $ kernel

# # % S kernel

: B 3 4W3X

4 4W3X $ 1

S 4W3X YEZ

4 % \ \ # %

# ',A \ S \ # % # R

"

- R R

#

-% +

A R

% - ) % I @

R S S R

R &

S R R

' +

@'9 V2 24 U First inAFirst OutI ,

R # $ # #

R

(20)

N

Y3OZ A @'9 V2 24

S R % - # # P@

+

@'9 V** U Round RobinI 4 @'9 V** %

@'9 V2 24 $

%

#

-@'9 V4)9 * U 8 SI ,

$ 4 @'9 V4)9 * % $

# R

4 S % " R

$ - ! # %

: B : 1 ' "

A % %

" ' "

#

: B = )

)

$ # *&1 % S swap% # R

8 S # "

& ] ^ R R % #

(21)

M

: B ? Threads,4@ 6

& threads,4@ 6 8 S

# thread R

8 S $

LinuxThreads &, ,4@ 6I 1 S R

& - - -% R ,4@ 6

(22)

G

3 MECA ISMOS DE COMU ICAÇÃO DE TEMPO'REAL

#

- # ' ( ) *

3.1 Virtuoso™ VSP

' @. J

* @. ( (@, % kernel - @

# % % - nanokernel # R

microkernel R W@4)*X

" #

% # % $

# " " " / Y33Z

kernel - " (@, WVirtual Single ProcessorX

- " # - "

" + ,

( I

1 # # _

_

' $ % R

timers_

* _

) R S _

5 S _

2 hardware

-4 ( $

(23)

3O

Figura 1: Fíveis de programação do kernel Virtuoso

4 @* WInterrupt Service RoutineX

hardware # $

@*

4 = WnanokernelX % S $

' assembly "

' Y3:Z 4 = R

% " microkernel

4 ? % kernel ( @ NO

microkernel # " ' 4

-R - microkernel ' - %

!

-( '

-5 # - "

#

-&

' @ IFanokernel

)

' @ $

1

0

, 3

@* 3

@* O

- 9

--

(24)

33

, + - @4)* (

+ - ' ' # R

= 3 3 ' ' ( F

A ' ' ( )1W :OOOX

- kernel( 2 24 Y3:Z WfirstAinAfirsAoutX #

]pipes^ / #

R & %

%

& ' - 2 24 ( )1 I

• A R WM - X -.

" S - - 2 24

• A R bufferizado3

bufferizado

• & &, # "

-• , "

= 3 : 1 '

' 2 : % - ( )1 #

+

4 buffer2

# "

3

BufferizadoI $ R

:

(25)

3:

Figura 2: Comunicação entre tarefas utilizando canais bufferizados/nãoAbufferizados

A $ bufferizada

L buffer

buffer S "

= 3 = 7 $

L (

-buffer " buffer

S Bufferização S # R

# #

-= 3 ? ' 7 $

L %bufferizado #T+ % I

• 4 " KS_ChannelPut() " KS_ChannelGet() W

X

• @ R R buffer % 4

R

• @ "R buffer 5

- # buffer

L " buffer

= 3 B @ 7 $

8 P

(26)

3=

L %bufferizado #T+ % I

• 4 " KS_ChannelPut() KS_ChannelGet() W

X

• @ R R

• @ "R R " +

W X

, R S S

-# 5

R S W3X

# W3& 37 3'X 2 =

Figura 3: Incompatibilidade entre os dados provenientes pelo escritor e o que pode ser consumido pelo leitor.

3.2 Sistema Distribuído de tempo real Java baseado em CSP

, @ #T # ' Y3=Z '@, %

' & * 9 MO 4 '@,

R

# # #

+ $ +

-S - $ R

Y3?Z

4 '@, >

- R Y3BZ 4

# >

--% $

-R S

& " R S

Y3BZ

(27)

3?

= : 3 ' '@,

& % -R '@, 9 Y3=Z % #

- " $ &

& 7 &

7 - & # %

W X % #

4 - S

CHAFFEL chan //declaração do canal

PAR // construção PAR: os processo abaixo desta construção //executam em paralelo

ProcessoA(chan)

{ chan ! x;...} //escrevendo x no canal ProcessoB(chan)

{ chan ? y;...} //lendo x do canal

= : : ' >

4 ' > # $ '@, S 4

> - R "

-2 ? 4 ' >

bufferizados $ 4 % # %

-$ Y3BZ

Figura 4: Abstração de um Canal de comunicação

= : = 4 8 0

,

&

,

7

'

2 S

(28)

3B

, % framework

device driver% 4 device drivers # " link drivers

-# S 4 - R

$ # link driver +

' driver

" driver

% 4 hardware 9 R

- hardware

2 B

4 % #

$ - link driver & 2 E N

Figura 5: Framework plug & play para dispositivos

Figura 6: Transferência de dados sobre link drivers para um sistema uniprocessado

2 S

(1 ,' )', '

-*@ :=:

A@7 '&5

1

2 J

9 /

9 /

,

&

,

7

'

, Q , .

,

&

,

7

'

8 0 WX / WX

WX / WX

2 S

(29)

3E

Figura 7: Transferência de dados sobre link drivers para um sistema com múltiplos processadores

3.3 RTC: UM MIDDLEWARE de comunicação de tempo real sobre o Linux de

tempo real RTAI

' Y3EZ *)' % middleware @4P4@

Y4@ Z #

S - 8 S *)& Y3MZ ,

R hardware

% &, WApplication User InterfaceX

R , 1&' *)'

) 1& WTime Division Multiple AccessX

- 5

- - % $

# , R R $

S )',P ,

& *)' $ 3BGE 3GG: @' WScalable Coherent InterfaceX

Y3GZ Y:OZ 4 @' " +

- - ! $ - S jitter link 3D7P

Y:3Z 5 *)'

S Infiniband Y::Z Y:=Z -%

-,

& '

8 0 / WX

/ WX ,

7

8 0 WX

WX

'

)',P ,

2 S @

&

(30)

3N

= = 3 & # *)'

& *)'

-# R ,

# "

-R & 8 S S *)& $

& *)' I

&, R 4

%

8 SP*)& Y:?Z #

& &, R % - 86*) Y:BZ *)& & 2

M R # *)' # R "

- #T

& % R -%

# - %

# , driver

8 S # ,

S R $ S

)',P ,

Figura 8: Visão geral da arquitetura da plataforma RTC

A A RR

@' ` " / 8

866**))UU RR )*)*

k

keerrnneell &

)*

& 4 4 )*

4 4 &,

D , S. , S. &, R

&,

Driver nonA

' 8 0

' 1&'

D 8

(31)

3M

4 " / % *)'

& R S

-W S X #

5 *)' % % I

• 5 I #

• 5 I #

-• I $

• 8 - I

-5 *)' %

# $

S %

% - # R

"

= = : D S

" #

-% +

% 8 S

4 " " % R

S - #T

= = = 1&' WMedia Access ControlX

4 ' & 1 1&' % *)'

% R " W

" X % " &

I

• *)&

(32)

3G

• @ $ @'

, 1&' ) 1& " R

" # R - # jitter

5 - ) 1& - % S

" Wslots) S WtimeAslotX

R 4

#

% 4 +

% " ) 1& W) 1& roundX WroundX 5

*)' % # Y3EZ

' ) 1& %

-$ 5 *)' %

-$ W# %

X a #

-% $ %

1&' R $

'

5

" , - # #

W X

% 5

- R

= = ? D

4 - %

P - & $

(33)

:O

= = B ' 8 0

& $

-%

' Link & I

• D +

• *

-•

- &,

L % - % &,

& D 8

,

= = E &,

4 - % kernel

-% "

*)' -%

- S - " # &

&, I

• ,

• 1 P P Link

• * - 0

&

-" R , I

void V " V Wint " voidb int V $ X

void V " V V" "V . Wint " voidb int V $ X

& $ # - #

(34)

:3

R msg " msg_size & %

2 24 Wfirst in first outX &

% R

# & - - #

, - &, - $ I

void V " V Wint " voidb int V $ X

void V " V V Wint " voidb int V $ X

- - #

- # & - - channel

" msg_size R msg

-. #

& &, % R -% - #

= = N D , S.

4 D Proxy % R kernel

S R & R "

D Proxy &, R - # %

-Proxy R R

# S R 86*) *)'

kernel

= = M &, , S. A R

4 - % " &, kernel # - S

R ' Proxy % # # *)'

L R $ #

D Proxy &, Proxy A R # " &,

(35)

::

R kernel "

&, # S R

= = G &, A R 4

4-& 4-&, A R %

-&, - R

L S &,

' &, A R

$ *)&

' R &, A R S D Proxy

*)' , - % R

3.4 SERVIÇOS de comunicação e middleware ARMADA

&*1& & % middleware # +

! "

-- Y:EZ 4 - &*1& &

$

Whard realAtimeX + " hardware

software - S

-+ R & % "

microkernel A

# % % $ " - hosts

& - # & # %

% S

&*1& & - S #

S hosts

R & R

(36)

-:=

- Y:NZ A #

-# 4 middleware

&*1& & "

" *)'&@)

-# ! " *)'&@) middleware

multicast [ $

- $

4 middleware &*1& & -% backup R

" *),7 # + R

-& R

! "

& 2 G - &*1& &

Figura 9: Visão geral do ambiente ARMADA

,

-&*1& & % $ xAkernel framework

- &

xAkernel % R " 4

-xAkernel% - R

Microkernel

&

@

Middleware

2

&,

(37)

:?

" S

@ microkernel

R ' #

kernel $ - - - - S &,

middleware @

" # - driver kernel

framework xAkernel # S "

S R # kernel

R kernel " "

S -% threads W

X kernel Y:EZ , threads kernel,

S $ # #

-& 2 3O 33

R microkernel

Figura 10: Configuração do servidor em nível de usuário

Driver

* R

microkernel &

7 - Stub

&

7 - Stub @

(38)

:B

A S kernel% *)'&@)

# R kernel

W 2 33X S R

kernel R &, 4 %

kernel, S R %

4 Stub - - R W#

&, X microkernel stubs "

$

microkernel $

Figura 11: Servidor em nível de kernel

= ? 3 & # &*1& &

& # R #

I &, W&, *)'X

$ W*)'4,X +

S W'8 ,@X S

R R

& 2 3: R #

&*1& & & " " "

Driver

* R

microkernel &

7 - Stub

&

7 - Stub Stub

(39)

:E

#

&, *)' '8 ,@ "

= ? 3 3 '8 ,@ U 7 - @ ! ,

@ Y:EZ 7 - ' @ !

, '8 ,@ - $

+ #

S - A " clip

A

clip%

A S W socketsX ] ^ clip clip

#

S clip S $

-4 '8 ,@ % $

-# " ' ) * Y:EZ A ' ) * %

S unicast W X

" - &

% + 5

host ]4^ host ] ^ !

R # # @ #

]4^ ] ^ R

] ^ ]4^ &

-]4^ ] ^ S - & R

S S ]4^

-3.4.1.1.1 Escalonamento sensível a qualidade de serviço de CPU

& # clip S

(40)

:N

" '

$ WdeadlineX " $

% - earliestAdeadlineAfirst

W 2X % $ % '

'8 ,@

R 4 2 S R

% deadline

'8 ,@ - # S

$ S % %

-& % S % - # S

$ S S

Figura 12: Arquitetura do serviço de comunicação de tempoAreal

3.4.1.1.2 Reserva de Recursos

1 W '8 ,@X S "

R '8 ,@

Políticas

Aplicações

K ' *) (

&, ' *

*)'4, '8 ,@

*

* *

' "

*

@ $ ) +

Mecanismos

)

L @

, '8 ,@

,

, S

Overheads

S

Busca/resposta

3 -: * #

1 L @

(41)

:M

clip - ',A

# $ ',A '

%

S RS

4 - # RS

3.4.1.1.3 Policing

S # S

R

= ? 3 : & - #

4 2 24

WFirst In First OutX - 0 ' '8 ,@

- ! "

R

$ 4 link 2 $

" ,

W S I # 0 R X link'8 ,@

% # 4

- " Wbest effortX "

link R S

# clips

= ? 3 = & *)'

& S - S

- S S

+ S - & &,

I & $

(42)

:G

& $ *)'4, $ $ W S I

S X $ '8 ,@ +

#

4 " &, *)' % - &, socket A S 7@ '

S % W , X 4 ,

3E - host % host

4 # &, *)' &, socket % #

S - $ S

= ? 3 ? *)'4, U , 4 ' S ) *

' Y:EZ *)'4, % $ - @

% S % & 2 3=

*)'4,

4 1 * # *

$ $ #

"

R

4

# # S

-% % S

- - S

4 *)'4, S &, *)' #

# - S

S 4 *)'4, -% engine

- # # #

R $ S

= ? : @ ' D *)'&@)

4 D *)'&@) % #

- $ # middleware

(43)

=O

*)'&@) backAup R *),7

= ? : 3 , *)'&@)

4 *)'&@) + multicast

" ' 3=

*)'&@) multicast [ $

4

@ $

% # %

$ ,

-S - 2 +

4 *)'&@) A

# token Y3NZ " # token

multicast

-WheartbeatX # % # 4 R

$ #T+ #

- # - ' # "

- - - #

-multicast

token +

token & % $ - S

*)'&@) # # " "

*)'&@) 4 *)'&@) # - ] ^

-

-# % #T+ #

-#

-2 %

S - $

(44)

=3

4 % - #

4 clip

host # S $

@ "R

" overhead. &

R - " Wbest effortX

= ? = @ * - 0 R ) * W*),7X

1 #

- - R# overhead

1 #

+ & $ overhead

backupA R S !

# " # #

R & !

- '

backup R 4 backup3

S % 5

# ! R backup %

%

Figura 13: Conjunto de serviços RTCAST

= '

'

multicast [ $

@ &

D

' unicast R

& R

-@ $ ( *

(45)

=:

A backup R $ + S +

- i timestamp4 i

% timestamp #

backup # S backup R

= ? = 3 *),7

4 *),7 R backup &

R# # R 4 R % R $

backup +

S + hosts R

backup 5 R R S

' # backup " R -%

backup $

= ? ? 2

+

deadlines ! "

I 4*'9 @)*& "

middleware '4D 5) R

= ? ? 3 4 "

4*'9 @)*&% " - # $

" - %

-framework " scriptAdriven probing and fault injection & + - %

?

(46)

==

% S

-5 - 4*'9 @)*& " %

" - S & #

" ' # % 4*'9 @)*& S

" send filter -% % receive

filter - 4 $ I

• 2 1 I S

• 1 I

• 1 I - $

= ? ? : '45D 5)I D ' ) R *

'45D 5) % - " %

" $ 4 %

-# R S

(47)

-=?

4 CA AL VIRTUAL DE TEMPO'REAL

4 ' ( ) * % middleware

" ! " % %

! #

, - '

# "

& " #

- " #

4.1 Comunicação Interprocesso

, $ middleware

R "

# # " , ' 4

, R #

-4.2 Endereçamento Virtual dos Processos e Máquinas

+

, P' 5 R#

-" R ' , P' %

# R

% R

' , P'

(48)

=B

,

2 3? S 2 3B

Figura 14: Composição de um número Exemplo de um Fúmero identificador de canal

Figura 15: Exemplo de um Fúmero identificador de canal

4.3 Arquitetura dos Canais Virtuais

& # ' ( % - %

middleware # " & 2 3E

# ' ( R kernel

? = 3 &, ' ) *

& &, WApplication User InterfaceX ' ) *

-R

-&

R I

( IEEEOOO3:=

1R 1R# I EEE

' , P' I OOO3:=

(49)

=E

Figura 16: Arquitetura dos Canais Virtuais de TempoAReal.

&

-% ' , Broker

-Broker8 W Brokers 8 "

BrokerX , $ !

I

int process_type: ) - ,*4 A' *

'45@A1 * ' Brokers

8 D - -% $ ' (

$ Broker8 BrokerD

-int opt:4 $ * - @)&*)

@)4, Espaço de Usuário

Sistema Operacional

,

Rede Aplicação do Usuário

&, ' ) *

"

D

, * '

'

Framework

, '

' P

'

Stub

*

, '

Broker

Stub Broker Framework

@ Broker

@

(50)

=N

char proc_name[]: 5 A $

' Brokers

char peer_name[]: 5 A $

, ,

idaddr_t my_id:5 A $

struct accesspts peer_accpts: ,

, P % #

R#

R#

& 2 3N 3M 3G accesspt

udpaccpt W $ A , )',P ,X shmaccpt

W $ " X S

' ( ) * S '

$ ,

Figura 17: Definições das estruturas accesspt, udpaccpt e shmaccpt

typedef struct shmaccpt{ _ "_ 0 .V " 0 ._

" $ _ 0 .V 0 ._

V _

};

typedef struct udpaccpt{

Pb $ bP

_

Pb) bP

"_

Pb bP

" V YEZ_

Pb , bP

" Y3?Z_ Pb, bP

_ c };

struct accesspts{

(51)

=M

& - $ & config

R $

I

int fail_police: - "

I

TRY_ALL_ROUTESI S

TRY_SPARE_FIC_FIRSTI S

R #

#

& S +

, ' % ! I

idaddr_t my_id: , $

' R

W % threadsX % $

# R

char *data:,

unsigned datalen:) " W bytesX

>R * WX

-% ! I

idaddr_t my_id: ' $

' R

-W % threadsX %

$ #

-char **data:& $ - ' ,

unsigned *datalen:* " ' ,

, " S

2 3M # S

' ( ) *

, % START

(52)

=G

# R

! $

-$ 2

% STOP ! opt

Figura 18: Ordem de execução das primitivas do Canal Virtual de TempoAReal

? = : 1 ' P '

&

$ ' (

) * %

-' &

' P ' I

Id Local:* - #

Endereço de Máscara Local: 5 R#

R#

Pontos de Acesso do canal: %

%

&

% R # R

$ >R R

R # R $ " "

Id da Mensagem:

-VirtualChannel( STOP, , id ) vcWriteTo( id )

vcReadFrom( id ) vcConfig( id )

(53)

?O

úmero Seqüencial da última mensagem: '

-#T

5 $ Broker %

R R# # 4

S $ '

' # %

Brokers8 D - ) , % cache prefetching %

$ % # $ R#

' S

-Brokers

& 2 :O ' P

'

? = = * ' '

$

$ ' P ' ,

' ' $ # P %

R % - #

& R

(54)

?3

Figura 19: Exemplo de inicialização e destruição de um Canal Virtual de TempoAReal do tipo produtor pela aplicação do usuário

Figura 20: Módulo Criador/Destruidor de Canal

d e P " "e

"

# $ %%%%

&'()*! +, !*(+-* . *//0+1&-/ &'()*! +, 2+ .2 . *//0+1&-/

3 45 4 45 4

6 1 7 89 6

$ : ; &'()*! +, 2+ .2 . *//0+1&-/ <<

$ % 7

: => ? $ 1 ? @

: => $ /A(*(

: => B $ CCD

: => 7 $ E*,.'2- /A( (*(+!F /1G*

: => B $ C

: => $ :

6 1 7 89 6

$ : ; &'()*! +, !*(+-* . *//0+1&-/ <<

$ % 7

: => ? $ 1 ? @

3 : => 4 :4 7 4 :4

: => $ 'E0 )1-

.2-: => $ ,./-

*-A*!&*-: => 4C::H%IHJIH%K%4 %L

: => $ I::%

H : $ :

H % $ %

H : $ :

H % $ %

HHH

0!+E' *!

/-.!-HHH

0!+E' *! /-+0

HHH M 1R# 3 * ' '

Aplicação do Usuário

' P

' Broker

& $ P

(55)

?:

? = ? 1 '

% R R R

- R 4

' -% % $

-& 2 :3 #T+

' # 2 ::

Figura 21: Diagrama de seqüência do módulo Consumidor

Figura 22: Funcionamento do módulo Consumidor

? = B 1 ,

4 , $ 1

$ R & 2 := :?

, #T+

,

* WX

Aplicação do Usuário

'

&, ' ) *

2 '

*

W8 :X

*

W* 3X

*

W* :X

Framework , '

* '

'

*

(56)

?=

Figura 23: Funcionamento do módulo Produtor

Figura 24: Diagrama de seqüência do módulo Produtor

? = E 1 "

% R #T

"

# "

' " % - $

' ' R % S

R R

' '

' R %

& 2 :B :E

5

2 :N % ' $ '

,

J WX

* '

'

Aplicação do Usuário

,

"

(57)

??

5 " "

$ " $ '

WTRY_ALL_ROUTES PTRY_SEC_ROUTE_FIRSTX

Figura 25: Módulo Encaminhador A Cópia local de dados

) - " 3 Canal Virtual de Tempo Real

&, ' ) *

` , ' ` , &

"

P , P 5 '

Stub

,

Canal Virtual de Tempo Real

&, ' ) *

5 P P , &

* WA , 3X

* WA , :X

* W@91 3X

* W@91 3X

Aplicação do Usuário 1 Aplicação do Usuário 2

' 1 ' " 8+ Framework , ' Stub D ,

Framework , '

(58)

?B

Figura 26: Módulo Encaminhador – Cópia de dados remota

Figura 27: Código em C para verificação de localidade entre os canais Produtor e Consumidor

, ' ( ) *

) - " 3 ) - " :

Canal Virtual de Tempo Real

&, ' ) *

` , ' ` , &

"

P ) "

* ' ' Stub , Canal Virtual de Tempo Real

&, ' ) *

P ) "

* '

'

* WA , 3X

* WA , :X

* W@91 3X

* W@91 3X

Aplicação do Usuário 1 Aplicação do Usuário 2

'

8+

*

A , A ,

Stub

D ,

Framework , '

Framework , '

N ('2- ,. -+! %::::::

HHH

B $ => 6 ('2- ,. -+!

6 *? O ###:::%CD6%:::::: $ ### 6

B $$ B "

66 PQ

M "

66 PQ

(59)

?E

2 :M

Figura 28: Identificação numérica das tecnologias de interface de rede

? = N 1 *

4 * "

-' 5 % thread # %

# $

! 4 S 2 :G # threads

* # $ $

WbufferizaçãoX

-Figura 29: Módulo Receptor

? = M 1 Stub

& Stub % - " Stub

' ( ) * , $

'

2

* W@91 3X

* W@91 :X

* WA , 3X

* WA , :X

Framework , '

Stub

D ,

PbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbP Pb 5 ' ) '95484D @bP

PbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbP

d 1 14*f 3 O

d 78A )44)9V(3V3 : O

d 78A )44)9V(:VO : 3

d J V2 = O

d 2&@)V )9 *5 ) ? O d D D&V )9 *5 ) ? 3

(60)

?N

- " Stub "

Stubpack() Stubunpack().& $ #

- , ' % Stubpack()

StubUnpack() - " Stub 4 #

- " Stub I

, I # % $

% $

,

, I # $

# , % $

,

4 I

1 I #

5 @ #T+ , I 4 Stub , #T

, ' , I $

, S

# " R

, , I ' 1 - R

S

# " R

& 2 =O - " Stub '

(

Figura 30: Pacote de dados do Canal Virtual

? = G D ,

, Immediate Priority

Ceiling Y:MZ , # % D

, ' #

' 1 5 @ #

,

, ,

,

' - " Stub

, ,

(61)

?M

, #

-D ,

-' '

& 2 =3 " ' #

'

Figura 31: Exemplo do código fonte da elevação de prioridade pelo Gerenciador de Inversão de Prioridade

? = G 3 Framework , '

- $ R

' ( ) *

# # framework

"

, framework

- unsigned int transprotocol unsigned int nictech #

-# R

1 R #

, A ,

# " A

S % socket A , A socket%

# 4

R #

R $ timeout

H $$ / A*E !! 33

H > H

"

/ / H H

/ / @ H H

(62)

?G

4 S middleware%

# frameworkI EmissorProdutor(), ReceptorConsumidor(), ProtocolStubPackBroker() ProtocolStubUnpackBroker()

& EmissorProdutor() # -R $

W $ X

% '

& ReceptorConsumidor() -R $

-$ '

5 ProtocolStubPackBroker()

$

R - " Stub Broker A - "

-R R - Broker

, ProtocolStubUnpackBroker()

- " Stub Broker S #

4.4 Broker

4 Broker% $ ,

, Wsockets "

X & % Broker # R

R# % R#

? ? 3 5 " R # 7 0

A - Broker + " # #

IBroker Broker8 BrokerD

-4 % Broker thread R

- ' ( ) * $

$ - Brokers

(63)

BO

threads R #

Y:GZ & $ cache Broker

# S

4 % Broker 8 Broker% S

" Brokers

$ #

>R % BrokerD - # +

- # Brokers 8

! Broker

& # Brokers

$ - " R #

% # ' ( R

$ R R Broker %

-+ $ #

Y=OZ

# '

& 2 =: " R # Broker

-Figura 32: Velocidade de Acesso a um Broker por um Canal Produtor/Consumidor

7 0

7 0 8

7 0 D

-( &

(

(64)

B3

? ? : & # Brokers

4 Brokers $ # ' ( )

* % + I 4 1 1 Broker

Framework @ Broker Stub Broker 5 2 == - S #

Broker % , ' $

- Brokers

Figura 33: Arquitetura do Broker dos Canais Virtuais de TempoAReal

4.4.2.1 1 1 Broker

% R

Framework @ Broker

& RequestMask(),

RegisterConsumer(), TranslateConsumerFame() UnregisterConsumer() Peerfound() QueuedforTranslate() RespMask() R

I

* # R R#

* # ,

* #

* #

* ,

1 1

Broker Stub Broker

Framework de Serviços Broker

@

Broker

@

BrokerD

-@

Broker8

(65)

B:

& ,

,

* R R#

? ? : : ' '

4 - ' Broker % #

R &

' ( ) * $ %

$ $ ' " Brokers

' # # Brokers %

' Brokers

? ? : = Stub Broker

# , - "

WopcodeX 4 I

•4 I ' '

S

- " 4 # I

* LV* D @) *I 1

* LV)*&5@8&) I 1

* LVA5* D @) *I 1

* @,V, *24A5 I A Broker

, "

* @,VLA A V24*V)*&5@8&) I '

(66)

B=

opcode # S

* LV& *V1&@gI 2 $ # R 1R#

opcode# S

* @,V& *V1&@gI * # R

• 2 I

' opcode

S - " " & S

opcodeI

X * LV* D @) *I

• V I & ,

• V I ,

• YZI

% - R

" - %

-+ A $

#

R WbindedX

#

# W ,

S A ,X 4

# framework

• YZI + '

$

-X * LV, *24A5 I @ * LV* D @) *

& % # % , # $ #

X * LV)*&5@8&) I

• V I * ' $

(67)

B?

• V I & '

-Brokers

X * @,V& *V1&@gI

• V 0V I R#

& 2 =? =B - " Stub Broker

opcode* D @) * S opcode - " Stub Broker.

Figura 34: Campos do cabeçalho Stub Broker para o valor de opcode REQ_REGISTER

Figura 35: Campos fixos e dependentes de opcode do cabeçalho Stub Broker

? ? : ? Framework @ Broker

Framework #

Broker ' % " optcode

" + Brokers

Broker Broker8 BrokerD

-A S # R R#

& Brokers R R# %

4 2

* LV* D @) * * LV)*&5@ 8&)

* LVA5* D @) * ...

' S

' - " Stub Broker

'

4

W* LV* D @) *X 2

V V

' - " Stub Broker

"c

YZ YZ

'

- "

Stub Broker ' S opcode

(68)

BB

BrokerD - BrokerD

-$ R#

&

Broker 8 D - I

• * ' I * - # %

S Broker 5 " Broker #

% " 5 S ,

* @,V, *24A5

R

• @ ) 5 I 5

' Broker

-, ' $

%

, " S Broker,

% " Broker D - #

' A

" # %

Broker 8 % "

# # R " #

Broker D

-% $

Broker D - -% $ Broker 8

• @ 1R# I 5

# R R# % $ ,

Brokers 8 " BrokerD - #

$ R R R#

* @,V& *V1&@g R

• @ * * I 1 '

# Broker

(69)

BE

A - Broker %

-S Brokers ,

1

1 # Stub

Broker # ,

#

S ]* L^ optcodes # ]* @,^

(70)

BN

5 ESTUDO DE CASO

5 R

$ middleware - hardware

R 4

I

• + I R

Framework

, ' A R $

" W R X - Y=3Z A ,

Overhead middleware I

-% overhead ',A

$ middleware

• * " I

R % "

$ middleware. (R R R

TRY_ALL_ROUTES TRY_SPARE_FIC_FIRST

• ) + $ I # % Brokers

middleware '

R R $

- #

5 S R $

Framework

, ' # $ overhead middleware

" ' $

Framework ,

(71)

BM

5.1 Cenários de teste

, R ' ( ) *

# $

' - 8 S

& " 8 S R

I

-D,8 Y=:Z S

@ 4 *) 8 S Y==Z *)& Y=?Z

$ - 8 S W@ 0/ Y=BZ 1 0 Y=EZX

- 8 S R - W 8 SY=NZX

- ,4@ 6 3

W X ,4@ 6 3- W X ,4@ 6 3 Wthreads,4@ 6X Y=MZ '

' " - +

- @ 4 8 S

A $ middleware

S - "

4 R - "

W]&^ ]7^X S W]'^X #

WiAFi Bluetooth 3P :

]&^ -3P-: 7 3P : ]'^ 5 R " -% Access Point WiAFi

S

& S + R

5 2 =E R ]'^ - $

]&^ ]7^ $

" &

a1 b1 a1 c1 c2 b2 a2 c2 c1 b1 a2 b2

" % n S m - S ]&^ ]7^

n ]&^ m ]7^ 4

R 2 =N %

(72)

BG

5 R " R S

a1 b1 a2 b2 2 =M

Figura 36: Cenário com comunicantes próximos composto por várias rotas alternativas de conexão

Figura 37: Variação do primeiro cenário com comunicantes fora de alcance entre as interfaces a2Ab2

Figura 38: Cenário com apenas uma rota alternativa com comunicantes próximos

) - " ' W, X

:b2

:b1

) - " 7

a2:

a1:

) - " &

J 2 J 2

7 "

J 2 &, J 2 7 "

* , 3 -3

* & : -:

2 " ' 7 "

* & 3 3 : -:

c2:

c1:

:b2

:b1

) - " 7

a2:

a1:

) - " &

J 2 J 2

7 "

J 2 &, ) - " '

J 2

* , 3 -3

* & : -:

2 " ' 7 "

c1:

) - " ' W, X

:b2

:b1

) - " 7 J 2 7 "

J 2 &, J 2 7 "

* , 3 -3

* & : -:

2 " '

a2:

a1:

) - " & J 2 7 "

* & 3 3 : -:

c2:

(73)

EO

, R " % $

- " I

) - " &I

, I &1 GOO1"$

1 , I 3:M 17 *&1

@ 4 I 8 S

( KernelI : E 33 M

* I Fast Ethernet

) - " 7I

, I &1 & " E? : 3D9$

1 , I B3: 17 *&1

@ 4 I 8 S

( KernelI : E 33 M

* IFast Ethernet Gigabit Ethernet

,

- " switch $ #

5 #

% - crossover

-- "

) # ]'^ R %

" ]&^ ]7^ " ]&^

]7^ # ]'^ # ,

2 =G ?O ?3 #

R 2 =E =N =M & ) - 3 $

2 =G ?O ?3

Figura 39: Cenário de simulação com várias rotas entre comunicantes próximos entre si.

* , 3 -3 2 "

'

* & : -:

) - " & J W "X

7)W "X

a2:

a1:

) - " 7 J W "X

7)W "X

:b1 :b2

Switch

(74)

E3

Figura 40: Cenário de simulação com várias rotas entre comunicantes distantes entre si.

Figura 41: Cenário de simulação com apenas uma rota entre comunicantes próximos

Tabela 1: Legenda das Figuras 39, 40 e 41

5.2 Teste do Framework de Protocolos de Comunicação

, Framework , ' ' ( )

* 4

, Shmem W

-" U Shared Memory U + X $

" $ R $ 4 $

$ A ,

-Y=3Z

B : 3 , ' 1 ' " Shmem

* , 3 -3 2 "

'

* & : -:

) - " & J W "X

7)W "X

a2:

a1:

) - " 7 J W "X

7)W "X

:b1 :b2

Interface de RedeTecnologiaTecnologia Simulada

a1 " J 2

a2 " 7 "

b1 " J 2

b2 " 7 "

* , 3 -3 2 "

'

* & : -:

) - " & J W "X

7)W "X

a2:

a1:

) - " 7 J W "X

7)W "X

:b1 :b2

Switch

(75)

E:

4 Shmem $ " R $

, " $

" $ - Y=GZ

! & 2 ?:

- R !

Figura 42: Algoritmo para o problema de Leitores e Escritores com suporte a múltiplos leitores simultâneos

@ $ Framework , '

" shmaccptWstruct shmaccptX I

unsigned int transprotocolI 5

, Shmem $

unsigned int nictech: 5

Escritor:

Enquanto (verdadeiro){

+Trava semáforo de escrita;

Se dado já lido ou memória pronta para escrita{ Zera memória compartilhada;

Escreve os dados na memória; Marca na memória dados escritos

Destrava semáforo de escrita; Sinaliza leitores para começarem a leitura;

}Senão{

Destrava semáforo de escrita; Espera por alguns instantes; Aumenta o tempo de espera; Seta flag de extensão de tempo para 1; Sinaliza leitores para começarem a leitura;

}

Se flag de extensão de tempo igual a 1{ Diminui tempo de espera;

Seta flag de extensão de tempo em zero; }

}

Leitor:

Espera um sinal de dados prontos para ler; +Trava semáforo dos leitores;

Incrementa o contador de leitores em 1; Se for o primeiro leitor {

+Trava o semáforo dos escritores; }

Destrava o semáforo dos leitores; Lê o dado;

Marca na memória “dado lido” +Trava o semáforo dos leitores;

Decrementa o contador de leitores simultâneos; Se não houver mais leitores {

Destrava Semáforo dos escritores; }

(76)

E=

key_t shmkey: 5 "

int shmsize:) " -.

key_t semakey:5 W X R

unsigned int sem_num:A R R

int shmid: 5 "

$

4 %

EmissorProdutor(), ReceptorConsumidor(), ProtocolStubPackBroker() ProtocolStubUnpackBroker() 2 ?= ?? ?B ?E

Figura 43: Implementação da função EmissorProdutor() para o protocolo Shmem

! "# # #

$

% $

&'( ()

*

+* ,-& $

& . /0 " /0 #

* , & /0 " /0 !

1 2 $

* & /0 " /0 ! /0 " /0 #

1 2 $ 34 # 5

5 5

** ,-& $

6 6

7 /0 " /0 #

2 5

* /0 ! /0 " /0 #

! #

1 2 34 # .

87 #934#:,4)

(77)

E?

1.1.1. Protocolo de Comunicação UDP com bit alternante

Figura 44: Implementação da função ReceptorConsumidor() para o protocolo Shmem. Figura 45: Implementação da função ReceptorConsumidor() para o protocolo Shmem.

Figura 46: Implementação da função BrokerHdrPacking() para o protocolo Shmem.

# # "# .# #.

$

% $

&'( ()

# ;# < # ;

* # < # # ;

** =8,, $

* # < # # ;

& . /0 " /0 #

/0 # * , & /0 " /0 !

/0 # 1 2 $

/0 # * & /0 " /0 !

/0 " /0 #

/0 # 1 2 $

# ;# < # ;

/> 5

5

5 ** ,-& $

7 /0 " /0 #

# ;# < # ;

2 5

# ;# < # ;

* < /0 # /0 !

/0 " /0 # "#

1 2 :7#

.

9 ' . .#

$

. ?>2@AB

!

. .#

! * 2 *

% $

&'( ()

#

# * /0 ? B

" <. ? ! B < * # /0

! # /0

! C* ! # /0

" <. ? ! B < * # /0

! # /0

! C* ! # /0

" <. ? ! B < * # /0 "

! # /0 "

! C* ! # /0 "

" <. ? ! B < * # /0 !

! # /0 !

! C* ! # /0 !

" <. ? ! B < * # /0 "

! # /0 "

! C* ! # /0 "

" <. ? ! B < * # /0 #

! # /0 #

! C* ! # /0 #

.

(78)

EB

Figura 47: Implementação da função BrokerHdrUnpack () para o protocolo Shmem.

B : : , ' A ,

-4 A , - $ A , "

)',P , - Y=3Z 4

-S $ "

- %

R S " &

% - $ RS

$ - %

) R

@ $ Framework , '

" udpaccpt I

unsigned int transprotocolI 5

, Udp_bit_alt 3

unsigned int nictech: 5

. .# 9 ' 8 .

$

. .#

! ! ! ! #

#

* .

! * !

% $

&'( ()

* > !

/0 * < ? B C* !

/0 * < ? B C* !

/0 " * "# < ? B C* !

/0 ! * < ? B C* !

/0 " * "# < ? B C* !

/0 # * < ? B C* !

/0 ? B *

CC .

(79)

EE

char interface_name[]I 5 W S I "O

"3 8 SX

char address[]I ,

unsigned int portI 5 , socket int sd: socket

4 Framework %

EmissorProdutor(), ReceptorConsumidor(), ProtocolStubPackBroker() ProtocolStubUnpackBroker()

2 ?M ?G BO B3

Figura 48:Implementação da função EmissorProdutor() para o protocolo UDP bit alternante.

! "# # #

$

% $

87 #934#:,4) *

"# * "#

# ; * "# /0 # ;

# ;# < # ;

* # < # # ;

+* =8,,

D /0 # E F D /0 #

** =8,, GG ** &4: 4 -== $

* # < # # ;

/0 # * 3 # # < /0 # #

/0 /0

/0 "# /0 #

/0 # ** /> $

# ;# < # ;

/> 5

D 87 ++F D

5 ** ,-& $

# < # # ;

# ;# < # ;

2 5

* /0 #

* /0 # #

# ;# < # ;

* & 4 < ! 2 1 2 $

/>

5 $

D( +F D

(80)

EN

Figura 49:Implementação da função ReceptorConsumidor () para o protocolo UDP bit alternante.

Figura 50: Implementação da função BrokerHdrPacking() para o protocolo UDP bit alternante.

# # "# .# #.

$

% $

87 8=3 :&4) "# *

# ;# < # ;

* # < # # ;

** =8,, $

* # < # # ;

/0 # * 3 # #& < /0 # #

87 #934#:,4 "# /0 "# /0

/0 #

/0 # # # * # ! #

/0 # 1 2

/>

5 $

** ,-& $

/0 # #

# < # # ;

# ;# < # ;

2 5

5

* /0 #

# # * /0 # # #

# ;# < # ;

* & < # # : H#I & < 2

1 2 />

# /0 * 87 #934#:,4

" # /0 # # # /0 # >A

# /0 * # # /0 #

# * #

.

9 ' . .#

$

. ?>2@AB

!

. .#

! * 2 *

% $

87 #934#:,4)

* > !

/0 * < ? B C* !

/0 * < ? B C* !

# * < ? B

* #

" < /0 < ! /0 C* !

/0 * < ? B C* !

/0 ? B *

CC .

(81)

EM

Figura 51: Implementação da função BrokerHdrUnpack () para o protocolo UDP bit alternante.

5.3 Overhead inserido pelo Canal Virtual de Tempo Real

5 ' ( ) * overhead &

%

Brokers $ ' Y:MZ

% % $ cache prefetching R

Wsoft realAtimeX ) -% ' ( ) *

-Framework , '

-& overhead %

middleware , % $

+ 30- $ - " 7

R W ' R X $

$ - &

' ( ) * $

Shmem Framework. &

. .# 9 ' 8 .

$

. .#

! ! ! ! #

#

* .

! * !

% $

87 #934#:,4)

* > !

/0 * < ? B C* !

/0 * < ? B C* !

# * < ? B

* #

" < /0 < ! /0 C* !

/0 * < ? B C* !

/0 ? B *

CC .

(82)

EG

Shmem W

middlewareX & ) - : =

-$ ' ( ) * Shmem

$ Shmem

Tabela 2: Tempo de transmissão e recepção de mensagens utilizando o Canal Virtual de TempoAReal.

)

) "" 55

' ' ) ) , , W

W XX

) )

' ' W

W XX

30- =OOO Canal Virtual TR

+ Shmem E O=G:?BEM3 E O:?N:?NM=

30- =OOO Canal Virtual TR

+ Shmem E O=?N3:3?B E O?3E=?NM?

30- =OOO Canal Virtual TR

+ Shmem E OOM?:?BEN E OOE?MNMG

30- =OOO Canal Virtual TR

+ Shmem E O=3NGM:3G E O=?:3:B?B

30- =OOO Canal Virtual TR

+ Shmem E O:3M=?G3B E O:3NBE=:3

30- =OOO Canal Virtual TR

+ Shmem E O=EGM:?3B E :NBEGMB:3

30- =OOO Canal Virtual TR

+ Shmem E O:GEO3?O= E OE3:MNBO3

30- =OOO Canal Virtual TR

+ Shmem E O:?OMB?NM E O::=GEGN3

30- =OOO Canal Virtual TR

+ Shmem E O=N=G?BEE E O=EGMNN:3

30- =OOO Canal Virtual TR

+ Shmem E O=BBM=G?E E O=BE=NMO3

T

Toottaallddeettrraannssmmiissssõõeess:: 10 TTeemmppoommééddiioo

E O:GGEE E OBEOM:

Tabela 3: Tempo de transmissão e recepção de mensagens utilizando somente o Protocolo Shmem

)

) "" 55

' ' ) ) , , W

W XX

) )

' ' W

W XX

30- =OOO Somente

Shmem E O:=BN?:=M E OOM3:B3=E

30- =OOO Somente

Shmem E OO:?EB=:E E OONEN3:M=

30- =OOO Somente

Shmem E O:O3G3B:: E O:O3E?BBG

30- =OOO Somente

Shmem E O:GOM3?E: E O:G?:?N:3

30- =OOO Somente

Shmem E OOBNEM?3: E OOBNMGE:3

30- =OOO Somente

(83)

NO

30- =OOO Somente

Shmem E O=OE?:=NM E O:?BGE=BN

30- =OOO Somente

Shmem E OOB3G:?BE E OO??:NMGM

30- =OOO Somente

Shmem E O:EN:3EMM E O=?BENMG3

30- =OOO Somente

Shmem E OOEB3G?E? E OO3?BGN:=

T

Toottaallddeettrraannssmmiissssõõeess:: 10

T

Teemmppoommééddiioo

E

EOO33MM3333MM EEOO33EE==??BB

2 $ - %

- overhead O O33M?M

O O=GN=N # '

-- overhead - S

33 =G '

overhead R quantum

8 S # 3O

5.4 Teste de recuperação do canal na presença de falhas de Comunicação

, "

$ '

' ) * R

' R %

TRY_ALL_ROUTES TRY_SPARE_FIC_FIRST + R

, - $

"

$ A , " W -%

" bit X # ,

FICs nictec

78A )44)9V(3V3 Bluetooth

J V2 WiAfi

& ) - ? % $

R $

(84)

N3

% R $

"

Tabela 4: Tempo médio de transmissão no cenário de simulação com vária rotas alternativas entre comunicantes próximos

C

Ceennáárriioo::11 Política de redirecionamentoI

TRY_ALL_ROUTES TRY_SPARE_FIC_FIRST

)

) "" 55

1 1 *

* '' )) ,, WW XX

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

T

Toottaallddeettrraannssmmiissssõõeess::3O

T

Teemmppoommééddiioo

Tabela 5: Tempo médio de transmissão no cenário de simulação com vária rotas alternativas entre comunicantes distantes

C

Ceennáárriioo::22 Política de redirecionamentoI

TRY_ALL_ROUTES TRY_SPARE_FIC_FIRST

)

) "" 55

1 1 *

* '' )) ,, WW XX

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

(85)

N:

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

T

Toottaallddeettrraannssmmiissssõõeess::3O

T

Teemmppoommééddiioo

' - ) - ? "

-+ " "

R R

! # "

"R R

2 =N TRY_ALL_ROUTES

"

' R #

S - W 2 =MX

TRY_SPARE_FIC_FIRST% #

-- ) - E

Tabela 6: Tempo médio de transmissão no cenário de simulação com apenas uma rota entre comunicantes próximos

C

Ceennáárriioo::3 3 Política de redirecionamentoI

TRY_ALL_ROUTES TRY_SPARE_FIC_FIRST

)

) "" 55

1 1 *

* '' )) ,, WW XX

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

(86)

N=

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

30- 3O Bh UDP Bit

Alternante

T

Toottaallddeettrraannssmmiissssõõeess::3O

T

(87)

N?

6 CO CLUSÕES E TRABALHOS FUTUROS

7

-' (

) *

W

@ 4 8 S $ middlewareX

handhelds laptops

' # ?

-8 S # $

Framework , ' 2 -% overhead

- " $ R

B 3

4 Framework

-' ( ) * %

framework ? ? # "

# framework

5 overhead # ' S

$ middleware

Shmem $ middleware $

Shmem $ S overhead

% - R middleware R

middleware ' overheads - % R

-2 ' - " ' $

% " +

R & TRY_ALL_ROUTES

(88)

NB

TRY_SPARE_FIC_FIRST R # # #

" R

5 R TRY_ALL_ROUTES

!

-TRY_SPARE_FIC_FIRST 2 R

TRY_SPARE_FIC_FIRST "

# TRY_ALL_ROUTES R

' - " #

" -

-#

#

middleware #

Imagem

Figura 1: Fíveis de programação do kernel Virtuoso  4 @* WInterrupt  Service  RoutineX
Figura 6: Transferência de dados sobre link drivers para um sistema uniprocessado 2 S(1 ,')',' -*@:=:A@7'&amp;512J9/9/,&amp;,7',Q , .,&amp;,7'8 0WX/WXWX/WX2 S/WXWX
Figura 7: Transferência de dados sobre link drivers para um sistema com múltiplos  processadores
Figura 10: Configuração do servidor em nível de usuário Driver*Rmicrokernel &amp;7 -Stub &amp;7 -Stub @W&#34;X
+7

Referências

Documentos relacionados

Neste trabalho, foram estudadas as plântulas e plantas jovens de Erythrina speciosa (Phaseoleae), Holocalyx balansae e Sophora tomentosa (Sophoreae), Swartzia langsdorffii

Mas, como patrocinador, ele também não deixa de ser só um torcedor, que tem de torcer para o time ir bem, mas que pode cobrar com um pouco mais de peso se o resultado não

Em média, a Vivo forneceu a melhor velocidade de download para os seus clientes em 2020... A Vivo progrediu em especial a partir de abril

Lopes et al., (2013), utiliza imagens de sensoriamento remoto do TM LANDSAT 5 na análise da qualidade da água com relação do clorofila-a espacializado nas margens

Cito-Histologia Atlas Colorido de Citologia, Histologia e Anatomia Microscópica Humana Sobotta. Cito-Histologia Atlas de Histologia com relações funcionais e

1- A partir de observações e avaliações realizadas no segmento de transportes verificou-se a dificuldade de apropriação dos custos efetivos aos serviços

E, confiando nos princípios que sempre nortearam a SME São Paulo na seleção para aquisição de obras literárias para o projeto Minha Biblioteca nos últimos anos, a LIBRE espera

• No haga funcionar este equipo si está dañado, presenta cambios en su patrón de trabajo, tiene daños en cables y conductores de electricidad (cable roto, agrietado, pelado, etc.)