![Page 1: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/1.jpg)
Modelos e Linguagens de POO para aplicações Tempo Real
Necessidade de Modelos Uso de OO e Reflexão Computacional Modelos e Ling. OO e Reflexivos O Modelo RTR A Linguagem Java/RTR
![Page 2: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/2.jpg)
Introdução
Sistemas Tempo Real (STR) Correção lógica + temporal Req. específicos: correção temporal e previsibilidade Req. emergentes: distribuição, flexibilidade e integração
Aplicações tempo real Tamanho, complexidade e criticalidade (hard x soft) Necessidade de correção temporal
Desenvolvimento de STR Fator Tempo deve ser considerado em todos os estágios e
suportado pelo hardware, S.O., modelo e ling. programação
Programação de STR
Inadequação de modelos e linguagens convencionais Soluções propostas:
Extensões tempo real : RTCC, RT-Modula2, Ada95 Linguagens tempo real novas : Pearl, HI-Pearl, RT-Euclid
![Page 3: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/3.jpg)
Introdução
Problemas encontrados: Gerenciamento da complexidade / Falta de
flexibilidade Representação/Controle dos aspectos temporais Dependência de ambientes operacionais
específicos Dificuldade de reuso, manutenção e integração
Busca de novos mecanismos Estruturação de STR / Representação aspectos
temporaisOrientação a objetosReflexão Computacional
Propostas recentes RTC++, FLEX, RTT, RT-Java, RTSJ, R2, DRO/DROL
e RT-MOP, Modelo RTR, Java/RTR
![Page 4: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/4.jpg)
Orientação a Objetos e Reflexão Computacional no contexto Tempo Real
Orientação a Objetos Sucesso do paradigma Uso de Objetos é Atrativo
Gerenciamento da complexidade Características básicas favorecem reuso.
flexibilidade e Manutenção Concorrência e distribuição
Problemas Não suporta representação e controle das
Restrições Temporais Ineficiência e Imprevisibilidade STR Hard x STR Soft
![Page 5: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/5.jpg)
Orientação a Objetos e Reflexão Computacional no contexto Tempo Real
Reflexão Computacional Raciocinar e atuar sobre sí próprio Monitorar e Modificar Estrutura e Comportamento do Sistema Qualquer Paradigma, OO em particular Abordagem de Meta-Objetos
Separa Aspectos Funcionais de Aspectos não-funcionais
Ajustes dinâmicos de estrutura e comportamento
Torre reflexiva
![Page 6: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/6.jpg)
Orientação a Objetos e Reflexão Computacional no contexto Tempo Real
Vantagens do uso de Reflexão Simplificação da programação Modularização Reuso e Manutenção Incremento da Flexibilidade Controle do usuário sobre o sistema Extensibilidade e evolução
Áreas de aplicação SO, SD, Projeto de Linguagens, Tolerância
a Falhas, Concorrência, Trabalho Cooperativo e Tempo Real
![Page 7: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/7.jpg)
Reflexão Computacional e Tempo Real
Abordagem promissora Flexibilidade e gerenciamento Adequação à questões correlatas a TR
Potencialidades Adição/modificação de construções
temporais Definição de comportamento
alternativo Adequação do algoritmo de
escalonamento
![Page 8: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/8.jpg)
Reflexão Computacional e Tempo Real
Potencialidades Ajustar Tempo de Execução Análise de escalonabilidade dinâmica Implementar protocolos TR Independência entre aplicação e ambiente
operacional Incrementar a portabilidade
Problemas Desempenho e previsibilidade Informações a serem refletidas
![Page 9: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/9.jpg)
Modelos de Programação TR OO
STR devem satisfazer: Correção Temporal Previsibilidade Segurança de Funcionamento
STR também devem satisfazer: Modularidade, Reusabilidade,
Manutenibilidade, Distribuição, Flexibilidade e Integração com Sistemas não-TR
![Page 10: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/10.jpg)
Modelos de Programação TR OO
Caracterização Sistema computacional de controle e
Ambiente a ser controlado Estrutura e semântica de
funcionamento deve representar integralmente aspectos funcionais e de controle temporal
Aspecto central no desenvolvimento Base para Metodologias e LPTR
![Page 11: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/11.jpg)
Modelos de Programação TR OO
Modelo RTO.K (Kim e Kopetz, 92, 94, 96) Extensão do modelo de Objetos Introduz
Métodos Espontâneos (ativados por tempo) Intervalo, Frequência, Start e Deadline
Associação de deadlines às ativações Dados de tempo real (duração máxima de
validade) Restrição básica de concorrência
Unidade de armazenamento atômica Comunicação
chamadas podem ou não ser bloqueadas Independência de plataforma e linguagem
![Page 12: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/12.jpg)
Modelos de Programação TR OO
Modelo RTC++ (Ishikawa 92) Modelo implícito à LTR RTC++ Objetos ativos (com rest. Temporais)
Executam concorrentemente RT – métodos e comandos Exceções temporais Concorrência
Regiões criticas (c/ RT) Comunicação síncrona
Reply – sender continua Filosofia de programação – Ling. RTC++
![Page 13: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/13.jpg)
Modelos de Programação TR OO
Modelo DRO (Takashio e Tokoro, 93) Extensão distribuida do modelo OO Best-effort e least-suffering
Invocação polimórfica Métodos com RT
Restrições Temporais Tarefas Periódicas (métodos ativos) Tempo de execução dos métodos Controle reflexivo
Concorrência – estados habilitados Comunicação – polimorfismo temporal
Linguagem DROL
![Page 14: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/14.jpg)
Modelos de Programação TR OO
Outros Modelos RTT – RealTimeTalk
Framework para Modelagem e Projeto de STR Modelo R2 (Real-Time Reflective)
OO e Reflexão Computacional STR soft Linguagem ABCL
RT-MOP Baseado em grupos de escalonamento Meta-objetos
![Page 15: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/15.jpg)
Modelo RTR
Objetivos Estruturação e programação de STR
Favorecendo correção temporal Flexibilizando representação/controle dos
aspectos temporais Facilitando gerenciamento da complexidade
Reuso/manutenção de software tempo real
Extensão/evolução de sistemas Independência de linguagem e de
ambiente operacional Caracterização
Objetos, Concorrência, Reflexão e Tempo Real
![Page 16: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/16.jpg)
Modelo RTR Reflexão no modelo RTR
Monitorar / Modificar - Estrutura / Comportamento Abordagem de meta-objetos
objetos-base - questões funcionais meta-objetos - questões de controle
Vantagens potenciais Simplificação, flexibilidade políticas de controle a nível de aplicação capacidade de reuso e manutenção
Focos de utilização Adição/modificação de construções temporais Alteração/substituição de algoritmos de escalonamento Manipulação de exc. temporais, concorrência e sincronização Controle do comportamento : tempo, carga, QoS,...
Tempo Real representação/controle de restrições temporais Escalonamento tempo real : meta-nível da aplicação Abordagem de melhor esforço (“best-effort”)
![Page 17: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/17.jpg)
Modelo RTR
Estrutura geral /Dinâmica de funcionamento
META-OBJ ETO
RELÓGIO
META-OBJ ETO
ESCALONADOR
Meta-ObjetoGerenciador
Objeto-Base
Nível -MetaNíve l -Base
Meta-ObjetoGerenciador
Objeto-Base
Meta-ObjetoGerenciador
Objeto-Base
![Page 18: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/18.jpg)
Modelo RTR
Descrição detalhada Objetos-base de tempo real (OBTR)
Similar aos objetos convencionais Representação de restrições temporais
Declaração de novos tipos de restrições temporais
RT-Type ActivationInterval = (StartTime, EndTime)
Associação de restrições temporais e manipuladores de exceções aos métodos do objeto
void Metodo1(...), ActivationInterval (T1, T2),Exceçao1(...)
Ativação de métodos com atributos temporais
ObjetoX.Metodo1(...), (300, 1000) Cláusula Timeout
![Page 19: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/19.jpg)
Exemplo de um OBTR
OBTR class ClasseExemplobegin
// definição de novos tipos de restrições temporais RT-Type Start-at = (StartTime, Deadline, MET); // declaração das variáveis da classe ... // declaração dos métodos: void Met1 ( ... ), Aperiodic (D, MET=20), ExcMet1( ); begin ... end; void Met2 ( ... ), Periodic (P, Fim, MET=10),ExcMet2( ); begin ... end;
void Met3 ( ... ), Aperiodic(D, MET=15), ExcMet3 ( ); begin ... end; void Met4 ( ... ), Start-at (Tinicio,D,MET=10),ExcMet4; begin ... end;.
end
![Page 20: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/20.jpg)
Meta-objetos gerenciadores (MOG)
Funções básicas Gerenciamento de pedidos de ativação Controle de concorrência Especificação/controle de sincronização Controle das restrições temporais
Interação com MO Escalonador e MO Relógio Manipulação de exceções temporais Ativação de métodos dos objetos-base
Estrutura geralMOG class id-meta-classe
begin <Seção de gerenciamento>
<Seção de sincronização> <Seção de exceções temporais> <Seção de restrições temporais>end
![Page 21: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/21.jpg)
Exemplo de um MOGMOG class MetaClasseExemplo;begin // Declaração das variáveis ... // *** seção de gerenciamento *** void RecebePedido (MetId, ... ) begin ... end; void ProcessaPedidoSRT (MetId, ... ) begin ... end; void LiberaPedidoDeAtivacao (MetId) begin ... end; void FimDeExecucao(MetId) begin ... end; // *** seção de sincronização *** Path 2 : (Met1 ; Met3) end; bool VerificaSincronizacao(MetId) begin ... end; void AtualizaEstSincronizacao (MetId) begin ... end; // *** seção de exceções temporais *** void ExcMet1 ( ... ) begin ... end; ... // *** seção de restrições temporais *** void Periodic(MetId, ExcId, P, Fim, MET) begin ... end; void Aperiodic (MetId, ExcId, D, MET) begin ... end; void Start-at (MetId, ExcId, Tinicio, D, MET) begin ... end;end;
![Page 22: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/22.jpg)
RT Aperiodic
void Aperiodic (MetId, ExcId, D, MET)begin id-MOE.Escalona (id-MOG, MetId, D)
if D > (current-time + MET) then id-MOG.LiberaPedidoDeAtivação (MetId); if D > (current-time + MET) then
id-OBTR.MetId ( ... );
id-MOG.AtualizaEstadoSincronizacao(MetId) else
id-MOG.ExcId ( ... ) end if
id-MOG.FimDeExecução ( ... ) else
id-MOG.ExcId ( ... );
id-MOE.LiberaProximoPedido ( ) end ifend;
![Page 23: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/23.jpg)
Meta-objeto escalonador (MOE)
Funções básicas Recebe, ordena e libera pedidos de ativação Implementa a política de escalonamento Mapeia decisões de escalonamento para
suporte subjacente
Vantagens Flexibilidade na escolha da política de
escalonamento Independência de ambiente operacional adequação às especificidades das aplicações
![Page 24: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/24.jpg)
Meta-objeto relógio (MOR)
Funções básicasFornecer uma base de tempoProgramar ativações para um
tempo futuroEfetuar ativações time-triggerControlar passagem do tempo
detectar violações temporais
![Page 25: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/25.jpg)
Potencialidade / Expressividade Potencialidade / Expressividade do Modelo RTRdo Modelo RTR
Facilidades básicas inerentes Suporte a facilidades avançadas
Reflexão de aspectos não temporais Cláusula “CATEGORIA”
Ajuste dinâmico dos atributos das restrições temporais
Tempo máximo de execução, Período, Deadline, ... Análise de escalonabilidade dinâmica
Política de admissão de tarefas Escalonamento tempo real
Mudança dinâmica da política uso simultâneo de diferentes políticas
Controle reflexivo da disponibilidade de memória Criação de objetos - operação reflexiva gerenciador de memória determinista
![Page 26: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/26.jpg)
Polimorfismo Temporal
Computação imprecisa - N-versões Exemplo:
RT-Type TimingPolymorphic = (Deadline, <MethodList>);...void DisplayImagem( ... ), TimingPolymorphic (D, Met1=”DI-
qA”, Met2=” DI-qB”,
Met3=” DI-qC”),
IdExcecaoTemporal ( )...void DI-qA ( ... ) // MET = 150begin ... end;void DI-qB ( ... ) // MET = 100begin ... end;void DI-qC ( ... ) // MET = 50begin ... end;
Escalonamento “task-pair” versão hard, versão soft
![Page 27: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/27.jpg)
sincronização multimídia
Aspectos temporais questão de sincronização tratamento “best-effort”
Relações de sincronização Modelo de intervalos (Allen 83) - 13 relações Modelo de intervalos estendido (Wahl 94)
29 relações - 10 operadores Representação dos operadores no modelo RTR
Restrições temporais básicas ActivationInterval, Aperiodic, Periodic, Start-at
![Page 28: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/28.jpg)
Exemplo : Representação de uma animação parcialmente comentada por um vídeo
“Animation while (d1, d2) Audio”
void Animation ( ... ), ActivationInterval (StartTime, EndTime), Exc1() begin ... end;
void Audio ( ... ), ActivationInterval (StartTime, EndTime), Exc2() begin ... end;
...@Animation ( ... ), (T1, T2);@Audio ( ... ), (T1 + D1, T2 - D2);...
t
Audio
Animation
12
T1 T2
![Page 29: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/29.jpg)
Extensão distribuída do modelo RTR
Adoção da arquitetura CORBA Interoperabilidade, transp.de distribuição e
heterogeneidade Meta-objetos de Comunicação
MetaStub / MetaDII e MetaSkeletons Comportamento tempo real
Adoção de políticas “best-effort” Restrições temporais controladas localmente
timeouts (cliente) e deadlines (servidor)
<id-objeto>.<id-método> (<args>),(<args-temp>) Timeout ( <valor-timeout> ), Exception
begin case reject : <manipulador de exceção> case abort : <manipulador de exceção> case timeout : <manipulador de exceção>
end
![Page 30: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/30.jpg)
Estrutura do modelo RTR distribuído
OBJECT REQUEST BROKER
SERVIDORCLIENTE
Meta Stub / DIIMeta Stub / DIIMeta-ObjetoGerenciador
Objeto-Base
Meta Stub / DII
Meta Stub / DIIMeta Stub / DIIStub / DII
Meta Stub / DIIMeta Stub / DII Meta-ObjetoGerenciador
Objeto-Base
Meta Skeleton
Meta Stub / DIIMeta Stub / DIISkeleton
META-OBJETORELÓGIO
META-OBJETOESCALONADOR
META-OBJETORELÓGIO
META-OBJETOESCALONADOR
Nível-MetaNível-Base
![Page 31: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/31.jpg)
Exemplo de aplicação
Composição de um documento multimídia
Protótipo da extensão distribuída Mapeamento do modelo RTR para SOLARIS 2.4 Implementação usando ORBLINE 1.0
Servidorde Texto
Servidorde Som
Cliente de Som
Composição doDocumento Multimídia
Servidorde Imagem
Clientede Imagem
Clientede Texto
Estação A Estação B Estação C
Estação X
![Page 32: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/32.jpg)
Estrutura básica de um cliente de mídiaOBTR Class ClienteMídia begin ...
RequisitaMídia (...), Periodic (StartTime, Period, EndTime , MET), ExceçãoRequisitaMídia ()
begin ... ServidorDeMídia.RecuperaMídia(Buffer[I], ...), (ValorDeadline) Timeout (ValorTimeout), Exception begin
case reject : < manipulador de exceção reject > case abort : < manipulador de exceção abort >
case timeout : < manipulador de exceção timeout > end ... end ApresentaMidia (...), Periodic (... ), ExceçãoApresentaMidia() begin ... end; // outros métodos do objeto-base ...end;
MOG Class ClienteMídiabegin ... end;
![Page 33: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/33.jpg)
Estrutura básica de um servidor de mídia
OBTR Class ServidorDeMídiabegin
... RecuperaMídia (...), Aperiodic (Deadline, MET=30),
ExceçãoRecuperaMídia () begin ... end; // Outros métodos do servidor ...end;
MOG Class ServidorDeMídiabegin
... // seção de exceções : ExceçãoRecuperaMídia () begin ... end; ...
// seção de restrições temporais : Aperiodic (...) begin ... end;end;
![Page 34: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/34.jpg)
Java / RTR Caracterização
Extensão da linguagem Java (TM Sun Microsystems Inc.) Implementação explícita do modelo RTR
Objetivos Viabilizar programação de STR segundo o modelo RTR Uso da tecnologia Java no desenvolvimento de STR
Extensões básicas Definição de um esquema reflexivo Representação / controle dos aspectos temporais
Pré-processador Java/RTR - Java Análise léxica, sintática e semântica das extensões RTR Mapeamento das extensões para construções Java
![Page 35: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/35.jpg)
Estrutura reflexiva de Java/RTR Objetos e meta-objetos
Representados por diferentes tipos de classes Estrutura geral de classes e meta-classes
[<ClassModifiers>] [<RTRoption>] class <Identifier> [extends <TypeName>]
[implements <TypeNameList>]<ClassBody>
onde <RTRoption> identifica o tipo de classe Java/RTR RTBC - Real-Time Base-Class MMC - Manager Meta-Class SMC - Scheduler Meta-Class CMC - Clock Meta-Class classe-base convencional, assumida por default
![Page 36: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/36.jpg)
Classes RTBC
Alteram classes Java convencionais com as seguintes extensões / proibições:
Declaração de tipos de restrições temporais
RT-Type <RTIdentifier> = [<RTType> , ] (<RTAtributesList>) Associação de restrições temporais, manipuladores de exceções
e categorias
[<M-Modifiers>] <ResultType> <M-Identifier> ([<ParameterList>])[throws <TypeNameList>] [,<TimingConstraint >]
[,<TimingExceptionHandler>][, category =
<CategoryIdentifier>] <MethodBody>
Associação de par. temporais / timeout à ativação de métodos Proibição criação/manipulação explícita de threads de controle Introdução de mensagens assíncronas
![Page 37: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/37.jpg)
Meta-classes MMC
Todas as facilidades Java Especificação da sincronização via
“path-expression” Implementam interface padrão
(Protocol-MMC) MMC padrão (Standard-MMC) Programadas pelo usuário (uma por
RTBC da aplicação) Novos tipos de restrições temporais Manipuladores de exceções Procedimentos de controle (categorias)
![Page 38: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/38.jpg)
Classes Scheduler e Clock
Meta-classes SMC e CMC Todas as facilidades Java Interface padrão / Meta-classe padrão
Classes convencionais Funções auxiliares Tarefas não tempo real (RTBC’s
especiais)
![Page 39: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/39.jpg)
Java / RTR Criação de objetos/meta-objetos
MO manager - criados implicitamente sempre que um objeto-base tempo real for criado
MO scheduler / MO clock - criados implicitamente Ativação de mét. de obj. tempo real
Forma reflexiva ativação desviada para MO manager correspondente
mensagens síncronas ou assíncronas (@) parâmetros temporais / cláusula timeout
Concorrência / sincronização Esquema misto
Meta-classes - mecanismos padrão de Java Classes RTBC - comportamento proposto no modelo
RTR controle via meta-objeto manager necessidade de controle explícito sobre as threads ativas
![Page 40: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/40.jpg)
Análise do modelo RTR Vantagens
Facilidades relativas a estruturação Flexibilidade para representação / controle aspectos
temporais Reuso/manutenção na presença do tempo Aberto a novas técnicas e mecanismos tempo real Extensibilidade Independência de ambiente operacional
Limitações Previsibilidade não inerente Overhead devido a reflexão
Comparando com outros modelos tempo real Expressividade, no mínimo, eqüivalente Reúne características dispersas nos demais modelos + Flexível, + Adaptável e + Independente
![Page 41: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/41.jpg)
Análise da linguagem Java/RTR
Vantagens Expressividade/Flexibilidade - representação de asp.
temporais Facilidade no entendimento / gerenciamento da
complexidade Capacidade de reuso / manutenção Independência de ambiente operacional
Tratamento reflexivo das questões temporais Independência de arquitetura de Java
Redução do “Gap”semântico entre projeto e implementação
Tratamento integrado concorrência x tempo real
![Page 42: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/42.jpg)
Análise da linguagem Java/RTR
Limitações Esquema misto de concorrência /
sincronização Previsibilidade presença de mecanismos / construções
não deterministas limitação comum às demais LTROO Necessidade de disciplina de
programação, substituição de mecanismos
![Page 43: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/43.jpg)
Análise Comparativa Java
RTR RT
Java RTC
++ Drol R2 +
ABCL Flex Ada
9x RTT
Análise de escalonabilidade
* * * - - * * 3
Construções com TME previsível
0 1 0 0 0 0 0 3
Flexibilidade 3 2 1 2 2 2 1 0
Suporte a concorrência 3 3 2 - 2 0 3 -
Reuso e manutenção 3 2 2 2 2 1 1 2
Exceções temporais 3 3 3 3 2 2 2 2
Robustez 2 2 2 2 2 2 3 3
Ger. da complexidade 3 2 2 2 2 1 1 2
Acesso às políticas 3 1 0 1 3 0 1 0
Rest. temp. explícitas 3 2 3 3 3 3 1 2
Novas rest. temporais 3 1 0 0 2 1 0 0
Novos alg. escalonam. 3 1 0 0 3 0 1 0
Adequação a STR Hard 1 2 2 2 1 2 2 3
Adequação a STR Soft 3 2 1 2 3 2 2 1
Independência de ambiente operacional
3 3 0 0 - 2 2 2
![Page 44: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/44.jpg)
Trabalhos correlatos
Extensão distribuida Simulação em Java Tratutor Java/RTR – Java Tradutor Java-RTR – RTSJ (Eclipse) Mecanismo de Adaptação para TR
usando Computação Imprecisa Sincronização Multimidia
![Page 45: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/45.jpg)
Sincronização em Java
class Buffer{ private int contents;
private boolean avaliable = false; public synchronized int get () { while (avaliable == false) wait (); avaliable = false; notify (); return contents; } public synchronized void put (int value) { while (avaliable == true)
wait (); contents = value; avaliable = true; notify ();
}}
![Page 46: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/46.jpg)
Sincronização em Java/RTRRTBC class Buffer{ private int contents; public int get (); { return contents; } public void put (int value) { contents = value; }}MMC class Meta_Buffer extends Standard-MMC{ ... // seção de sincronização path put ; get end; protected boolean VerifySynchronization (...) { ... }; protected void UpdateSynchronizationState (...) { ... }; ... }
![Page 47: Modelos e Linguagens de POO para aplicações Tempo Real](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681459a550346895db28e34/html5/thumbnails/47.jpg)
Operadores do modelo de intervalo
A
B efore (1 ) B eforeen d of (1 ) C obeg in (1 ) C oen d (1 )
W h ile (1 ,2 ) D elayed (1 ,2) S ta r tin (1 ,2)
E n d in (1 ,2 ) C ross (1 ,2 ) O ver lap s (1 ,2 )
A A A
B B B B
A A A
B B B
A A A
B B B
1 11
1
1 21
2 1 2
12
12
12
3