Escolar Documentos
Profissional Documentos
Cultura Documentos
real
Sistema de tempo real
– Um sistema de tempo real é um sistema em que seu comportamento
não depende apenas dos resultados lógicos dos cálculos, mas
também do tempo físico que esse resultado é produzido. (Hermann
Kopetz)
• Técnicas Formais
Caracterizam-se pelo formalismo, em detrimento da
compreensão do modelo ou da sua facilidade de uso
Permitem validação do modelo
Sistemas de tempo real
– Especificação de requisitos
• Formal
Tem uma base matemática rigorosa
• Informal
Não pode ser completamente traduzida para uma notação
matemática rigorosa
Uma especificação textual
Não são suficientes para sistemas de tempo real
• Semi-formal
Entre formal e informal
UML? UML 2.0?
Sistemas de tempo real
– Requisitos de sistema
• Confiabilidade
• Disponibilidade
• Segurança
• Manutenibilidade
• Portabilidade
• Reuso
Sistemas de tempo real
– Requisitos não funcionais
• Requisitos tecnológicos
• Tolerância a Falhas
• Redundâncias
• Funcionamento degragadado
• Manutenção
• Consumo de Energia
• Tamanho, Peso
• Ergonomia
• ...
Sistemas de tempo real
– Métodos formais na especificação de sistemas
• Os métodos formais contribuem significativamente para a
formulação e validação de requisitos pelo uso e extensão de
técnicas matemáticas eficazes
• Um dos principais benefícios dos métodos formais é que eles
fornecem uma perspectiva científica exata para a especificação do
sistema e o design de software
Sistemas de tempo real
– Métodos formais na especificação de sistemas
• Verificação de Consistência
O comportamento dos requisitos do sistema são descritos
usando uma notação de base matemática
• Model checking
Utiliza máquinas de estado para verificar onde uma determinada
propriedade é satisfeita sob todas as condições
• Prova de Teoremas
Axiomas do comportamento do sistema são empregados para
derivar uma prova de que o sistema vai se comportar sob uma
determinada forma
Sistemas de tempo real
– Máquinas de estado finito
• Diagrama de Transições de Estados
É um modelo formal, matemático usado na especificação e
projeto de sistemas
Muitos sistemas podem ser representados por um número finito
de estados
Os sistemas transitam de estado pela ocorrência de eventos
A decorrência de um período de tempo é um evento
Estas máquinas podem ser especificadas sob a forma de
diagramas.
Sistemas de tempo real
– Máquinas de estado finito
• Diagrama de Transições de Estados
Sistemas de tempo real
– Máquinas de estado finito
• Vantagens:
Como existem técnicas matemáticas rigorosas para reduzir o
número de estados, o código do programa com base nos FSMs
pode ser formalmente otimizado. Essa otimização pode até ser
automatizada
• Desvantagens:
Os aspectos internos dos módulos não podem ser representados.
Não há como indicar como as funções (estados) podem ser divididos
em subfunções (subestados).
É difícil descrever a comunicação entre tarefas entre vários FSMs.
Dependendo do sistema específico e do alfabeto usado, o número
de estados às vezes pode crescer muito grande.
Sistemas de tempo real
– Statechats
• É uma forma de modelar o comportamento de sistemas que podem ser
descritos pelo princípio de máquinas de estado ou autômatos finitos.
• Estende os diagramas convencionais de transição de estado com
essencialmente três elementos, lidando, respectivamente, com as
noções de hierarquia, concorrência e comunicação.
Sistemas de tempo real
– Redes de Petri
• Outra classe de métodos formais usados para especificar e analisar
operações simultâneas em sistemas em tempo real.
• É representado por um conjunto de círculos chamado "lugares" (places)
e por retângulos que representam transições ou eventos.
• Cada local (P) e transição (T) é rotulado com uma contagem de dados e
uma função de transição, respectivamente, e eles são conectados por
setas unidirecionais.
• Cada posição pode armazenar um ou mais tokens. Apenas os tokens
mudam de lugar quando uma transição dispara
• Não especificam sequências temporais
Sistemas de tempo real
– Redes de Petri
• As rede de Petri são uma poderosa ferramenta, frequentemente utilizadas,
para a análise de race-condicions e identificação de deadlock
• Cada transição possui locais
de entrada e locais de saída.
• Uma transição pode ser
acionada se houver pelo
menos um token em cada um
de seus locais de entrada.
• Quando a transição é
acionada, um token para cada
local de entrada é consumido
e um token é gerado em cada
um dos locais de saída.
Sistemas de tempo real
– Quando utilizar Métodos Formais
• Concorrência
Os sistemas possuem um padrão complexo
Sistemas de controle em tempo-real, sistemas distribuídos, projeto
de hardware e processamento paralelo
• Qualidade crítica
Sistemas cuja confiabilidade e disponibilidade são importantes
Aplicações financeiras, telecomunicações e Sistemas Operacionais
• Segurança crítica
Controle de sistemas vitais – defesa, medicina, trens, entre outros
Prevenção de acesso não autorizados – sistemas bancários,
segurança nacional, etc.
• Padronizações Para definição de padrões, em especial padrões
internacionais e especificações de protocolos
Sistemas de tempo real
– Limitações de Métodos Formais
• Formalismo é usado para garantir correções e segurança
Ele pode eventualmente garantir nenhum
• Especificações formais de software tem que ser convertidas em
design e implementação
Isto pode introduzir erros se feita manualmente
Sistemas de tempo real
– Métodos Semi Formais
• Métodos semi formais são usados extensivamente na especificação
de sistemas em tempo real por causa de sua versatilidade típica
• A abordagem orientada a objetos fornece:
Distributividade e simultaneidade
Gerenciamento eficaz da complexidade
Reutilização aprimorada
Excelente rastreabilidade
Melhor compreensão e capacidade de manutenção
Maior extensibilidade
Modularidade do design
Sistemas de tempo real
– Métodos Semi Formais
• Mas também apresentam algumas deficiências:
As representações voltadas com a abordagem orientada a objetos
não têm eficácia em projetos de larga escala para contexto e
comunicação
Sistemas de tempo real
– UML
• Tem por objetivo estabelecer uma linguagem de modelagem visual
comum, semanticamente e sintaticamente rica, para arquitetura,
design e implementação de sistemas de software complexos, tanto
estruturalmente quanto para comportamentos.
• Diagramas estruturais : diagramas de classe, objeto,
componentes, implantação, pacote e estrutura.
• Diagramas comportamentais diagramas de casos de uso,
máquinas de estados, atividades e de interação.
Sistemas de tempo real
– Modelando processos
• Um processo é a execução de um programa sequencial
• O seu estado consiste nos valores de suas variáveis
• Conforme executa, transforma seu estado através da execução de
comandos
• Cada comando consiste de uma sequência de uma ou mais ações
não atômicas que faz com que um estado mude
• Um modelo mais abstrato apenas considera um processo tendo um
estado modificado por ações atômicas indivisíveis
Cada ação causa uma transição de estados
A ordem possível das ações é determinada pelo grafo de transições
Uma representação abstrata do programa
Sistemas de tempo real
– Programação concorrente
• Processamentos em paralelo
• Múltiplas linhas de execução
• Controle de atividades externas
• Vantagens
Aumento de desempenho e throughput
Estrutura apropriada para sistemas de tempo-real
Atendimento às restrições temporais
• Desvantagens
Aumento da Complexidade
Sincronização
Sistemas de tempo real
– Estados
• Separam o passado do futuro
• O estado habilita a determinação de uma futura saída baseando
somente no estado atual do sistema e da entrada futura
• O estado possui todo o histórico de um sistema
• Noção de passado e futuro
Sistemas de tempo real
– History state ( H-state)
• Possui todas as informações necessárias para iniciar um nó ou uma
tarefa em determinado instante de tempo
• Mínimo no tempos antes e depois do cálculo
• Deve ser pequeno nos instantes de reintegração
Sistemas de tempo real
– Ground State ( G-state)
• Feito para facilitar a reintegração dinâmica de um componente em
um sistema que já está em funcionamento
• Nesse instante, deve-se ter um history state pequeno
• Acontece quando todas as tarefas estão inativas e não há
mensagens sendo transmitidas.
Exercícios