47
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

Modelos e Linguagens de POO para aplicações Tempo Real

  • Upload
    gordon

  • View
    24

  • Download
    0

Embed Size (px)

DESCRIPTION

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. Introdução. Sistemas Tempo Real (STR) Correção lógica + temporal - PowerPoint PPT Presentation

Citation preview

Page 1: Modelos e Linguagens de POO para aplicações Tempo Real

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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