Qualidade de Software
Aula 04 - QS - Sistemas Embarcados
Prof. Ms. Luiz Alberto
Contato: [email protected]
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Sistemas Embarcados
• São sistemas computacionais que estão inseridos em máquinas ou em sistemas maiores
• Embutidos em equipamentos eletrônicos:– telefones celulares, vídeo-cassete, forno microondas,carros,
automação de escritório....
• Encontrado em quase todas as aplicações que necessitam de algum tipo de controle....
– 1 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Áreas de Aplicação
• produtos de consumo: – telefones celulares, pagers, câmaras digitais, vídeo-
cassete, vídeo games portáteis, calculadores, etc;
• eletrodomésticos: – forno de microondas, secretárias eletrônicas,
equipamentos de segurança, termostatos, máquinas de lavar e sistemas de iluminação;
– 2 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Áreas de Aplicação
• Automação de escritório: – máquinas de fax, copiadoras, impressoras e scanners;
• Automóveis: – controle de transmissão, injeção eletrônica,
suspensão ativa, freio ABS.
– 3 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Características
• Funcionalidade única, executada repetidamente• Entrada/Saída intensivo • Executa tarefas em paralelo• Restrições de projeto mais rígidas:
– Custo, tamanho, peso, desempenho, potência dissipada, etc. • Tempo real:
– O tempo para fornecer resultados é determinado pelo tempo que o ambiente pode esperar.
– Sistemas em que têm aspectos temporais na especificação. • Sistemas reativos
– Reagem continuamente a estímulos externos
– 4 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Arquitetura Básica
• Arquitetura de Hardware– Forte comunicação com o ambiente
– Forte restrição de recursos, tamanho, potência, peso...
• Arquitetura de Software– Tratamento rápido de interrupção
– Sistemas operacionais de tempo real
– Softwares eficientes em tamanho e desempenho
– 5 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Caracterização
• São usados para controlar sistemas de diferentes tipos: máquinas domésticas, fábricas, carros, jogos etc.
• O software é embutido no hardware do sistema e com ele interage
• O tempo de resposta o diferencia de outros sistemas.
• É tipo de sistema mais comum, com grande impacto econômico.
– 6 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Sistema de Tempo real
• O funcionamento depende dos resultados produzidos pelo sistema e do tempo em que esses resultados são produzidos
• •STR Leve: se a operação for degradada caso os resultados não sejam produzidos de acordo com os requisitos de tempo/desempenho.
• •STR Rígido: se a operação for incorreta caso os resultados não forem produzidos de acordo com os requisitos de tempo/desempenho.
– 7 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Sistema de Tempo real
• Rígido (hard) – Perda de um prazo estabelecido é uma falha
• Marcapasso, sistema de controle de motores de carros
• Leve (soft) – Operação degradada se resultados não forem obtidos de
acordo com requisitos de temporização especificados
– A utilidade de um resultado após um deadline é degradada, levando à degradação da qualidade do sistema
– 8 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Geralmente:
• O software que executa em um computador e controla outras máquinas é um sistema embarcado de tempo real.
• •Recebe eventos (sinais) gerados pelo hardware e emite sinais de controle para o hardware em resposta a esses eventos.
• •A resposta pode estar condicionada a restrições de tempo.
• •Nem todo sistema embarcado é de tempo real e vice-versa.
– 9 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Engenharia de Sistemas Embarcados • Deve considerar em detalhes o projeto e o
desempenho do hardware do sistema.
• É preciso decidir que recursos deve ser implementado em software e que parte de hardware
• Custos e consumo de energia são críticos.
• É necessário decidir se serão usados processadores de prateleira (ex. fpga) ou se deverá ser projetado e construído um novo hardware.
– 10 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Projeto de Sistemas Embarcados • Um processo top down pode ser difícil de usar.
• Decisões de baixo nível relacionadas ao hardware precisam ser tomadas no início do projeto, o que diminui a flexibilidade do projeto.
• Os sistemas são geralmente reativos e baseados numa abordagem estímulo-resposta.
• O estímulo é uma entrada e deve produzir uma resposta, que é uma saída e geralmente é dirigido a atuadores
• Os estímulos podem ser de duas categorias: – Periódicos
– Aperiódicos
– 11 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Sistemas estímulo-resposta
• Dado um estímulo, o sistema deve produzir uma resposta dentro de um tempo especificado.
• Estímulos periódicos. Estímulos que ocorrem em intervalos de tempo previsíveis – Por exemplo, um sensor de temperatura pode ser estimulado10
vezes por segundo.
• Estímulos aperiódicos. Estímulos que ocorrem em tempos imprevisíveis – Por exemplo, uma falha de sistema de energia pode disparar uma
interrupção que deve ser processada pelo sistema.
– 12 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Um modelo sensor-sistema-atuador
Diretriz geral: processos separados para cada tipo de sensor e atuador.
– 13 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Arquitetura genérica abstrata • Contém 3 tipos de processos
• Para cada atuador existe um processo gerenciador
• Para cada atuador há um processo gerenciador
• Há um ou mais processos controladores/processadores.
• Essa arquitetura genérica pode ser instanciada para
arquiteturas específicas. Exs: sistemas de monitoração e
de aquisição de dados.
– 14 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Sistemas de tempo real
• As linguagens de programação precisam incluir recursos de baixo nível. Ex. C.
• Java vem sendo atualizada para incluir vários mecanismos que permitam o uso em sistemas de tempo real. – O mecanismo básico são as threads
– 15 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Projeto de Sistemas
• Decisão importante: quais partes serão implantadas como hardware e quais partes serão implantadas como software.
• Para muitos sistemas de TR embutidos, os custos, consumo de energia e espaço são críticos.
• Muitas vezes, um processo top-down não é prático, pois há decisões de baixo nível que precisam ser tomadas.
– 16 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Projeto de Sistemas: Atividades Principais • Seleção da plataforma (Hardware e SO)
• Identificar os estímulos/respostas
• Analisar restrições temporais (timing) para cada estímulo (restrições de tempo)
• Alocar estímulo e processamento a processos concorrentes
• Projeto de processos (concorrentes), de acordo com a arquitetura do sistema.
– 17 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Projeto de Sistemas: Atividades Principais • Projetar os algoritmos para fazer o
processamento necessário
• Projeto de dados
• Programação de processo: projetar um sistema de alocação (scheduling) que permita atender ás restrições temporais.
– 18 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Projeto de Sistemas: Atividades Principais
– 19 –
Processos de sensores e atuadores
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Algumas considerações
• Coordenação de processos (semáforos, regiões críticas.
• Análises teóricas para avaliar se as restrições temporais serão atendidas. Isso pode ser difícil
• Linguagens OO podem não ser eficientes para implementar um STR.
– 20 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Algumas considerações
• Os processos podem executar com diferentes velocidades.
• Isso pode ser resolvido implementando trocas de informações por meio de “buffers” compartilhados e uso de exclusão mútua para controlar o acesso ao buffer.
– 21 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Algumas considerações
– 22 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Modelagem de STR • A resposta aos estímulos muitas vezes
dependem do estado do sistema – uso de diagramas de estado
• UML: statecharts
• Um modelo de estado considera que em qualquer momento o sistema está em um dos vários estados possíveis. Os estímulos causam a transição para outros estados. – Exemplo: uma bomba de gasolina automática
– 23 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Modelagem de STR
– 24 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Padrões de arquitetura
• Um padrão de arquitetura pode ser pensado como um projeto genérico para ser instanciado.
• Os padrões de SE são orientados a processos, em vez de orientados a objetos e componentes.
• Três padrões: – Observar e reagir
– Controle de ambiente
– Pipeline de processo
– 25 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Padrões de arquitetura
• Observar e reagir – Usado quando um conjunto de sensores é monitorado e exibido
rotineiramente. Quando os sensores mostram que ocorreu algum evento, o sistema reage, iniciando o processo para tratar esse evento.
• Controle de ambiente – Quando o sistema inclui sensores que fornecem informações sobre o
ambiente e atuadores capazes de alterar o ambiente.
• Pipeline de processo – Usado quando os dados precisam ser transformados de uma representação para
outra antes de ser processados. A transformação é implementada como uma sequência de etapas de processamento que podem ser realizadas concorrentemente.
– 26 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Padrões de arquitetura
– 27 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Padrões de arquitetura
– 28 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Padrões de arquitetura
– 29 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Padrões de arquitetura
– 30 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Padrões de arquitetura
– 31 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Padrões de arquitetura
– 32 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Sist. Operacional de Tempo Real
• Responsáveis pelo gerenciamento do processo e pela alocação de recursos (processador e memória).
• Muitos sistemas embutidos funcionam com um SOTR
• Os SOTR podem ser muito simples ou grandes e complexos.
• Em geral possuem: relógio de tempo real, tratador de interrupções, alocador (scheduler) gerenciador de recurso e despachador
– 33 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Sist. Operacional de Tempo Real
• Relógio de tempo real – Fornece informações para programar processos periodicamente.
• Tratador de interrupções – Gerencia solicitações aperiódicas por serviços.
• Programador (escalonador) – Escolhe o próximo processo a ser executado.
• Gerenciador de recursos – Aloca recursos de memória e processador.
• Despachador – Inicia a execução de processo.
– 34 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Padrões de arquitetura
– 35 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Gerenciamento de Processos
• É preciso tratar processos com prioridades
• Deve haver pelo menos dois níveis de prioridade: – Nível de interrupção, para os processos que precisam
de resposta muito rápida
– Nível de relógio, para os processos periódicos
– 36 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Serviço de interrupção
• O controle é transferido automaticamente para uma posição de memória predeterminada.
• Essa posição contém uma instrução para pular para uma rotina de serviço de interrupção.
• As interrupções adicionais são desabilitadas, a interrupção é atendida e o controle retorna ao processo interrompido.
• Rotinas de serviço de interrupção DEVEM ser curtas, simples e rápidas.
– 37 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Estratégias de programação
• Programação não preemptiva– Uma vez que o processo foi programado para execução, ele será executado até a
conclusão ou até que seja interrompido por alguma razão (por exemplo, aguardando por E/S).
• Programação preemptiva– A execução de um processo pode ser interrompida se um processo de maior
prioridade solicitar serviço.
• Algoritmos de escalamento – Round-robin;
– Rate monotonic;
– Deadline mais curto primeiro.
– 38 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Sistemas de monitoração e controle
• É uma categoria importante de STR
• Verificam sensores que fornecem informação sobre o ambiente do sistema e executam ações que dependem da leitura do sensor
• Sistema de monitoração executam ações de acordo com os valores/sinais dos sensores
• Os sistemas de monitoração controlam continuamente os atuadores de hardware de acordo com os valores dos sensores associados.
– 39 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Arquitetura genérica de um STR de monitoração e controle
– 40 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Exemplo: sistema de alarme contra roubos para edifícios comerciais • Sensores de movimento em salas (200)
• Sensores em janelas (50)
• Sensores de porta (30)
• Chama um telefone da polícia e sintetiza voz para indicar onde foi ativado o alarme
• liga alarme sonoro
• Acende luzes ao redor do sensor ativado
• Tem back-up de energia e monitora a queda de energia, mudando para a conjunto de baterias.
– 41 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Estímulos
• Há duas categorias: Falha de energia e alarme de intrusos
• Lista de estímulos-respostas – Interrupção por falha de energia (50ms)
– Alarme de porta (2/s)
– Alarme de janela (2/s)
– Detector de movimentos (2/s)
– Alarme sonoro (após 0.5s)
– Interruptor de luzes (após 0.5s)
– Comunicação (após 2s)
– Sintetizar voz (após 4s)
– 42 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Estímulos
– 43 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Metodologia de Projeto
• Principais diferenças entre o projeto de S.E. e projeto de aplicações para desktops– Requisitos não-funcionais são fundamentais: preço, tamanho, peso,
potência,...– Flexibilidade: plataforma não definida, vários tipos de S.O., controle total
da máquina.– Grande preocupação com previsibilidade no uso de recursos– Sistema muito restrito: eficiência no uso de recursos é fundamental
– 44 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Exemplo
• Projeto de um controle remoto de televisão (infra-vermelho)– Controle simples com 3 botões:
• Liga/desliga
• Seleção de canais
– Opera com bateria
– Deve ser leve
– Controla a televisão por infravermelho
– 45 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Exemplo: Restrições
• Protocolo de comunicação com a televisão– Proprietário
– Uso de ROM fornecida pelo cliente
• Satisfazer as especificações temporais fornecidas pelo cliente:– Código de assinatura
– Comando
– 46 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Exemplo: Definição do Hw e Sw
• Processador:– Microcontrolador de 8 bits
• Sistema Operacional:– Não há necessidade
• Linguagem de programação: – C
• Bibliotecas de software:– Nenhuma
• Componentes de Hardware:– Botões– LED infravermelho
– 47 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
• Como o sistema vai satisfazer requerimentos do usuário dadas as restrições de projeto– Revisar a análise– Especificar componentes de hardware– Definir Interface de hardware– Especificar subsistemas de software– Definir interfaces de software– Especificar processos de início e final– Especificar tratamento de erros– Verificar resultados da etapa de design
Requisitos do cliente
– 48 – Prof. Luiz Alberto -
HardwareAlgoritmo
Layout
Program Convolution
SEQ i=0 FOR 2PARIF (x[i]>= 0 c:= x[i],
x[i]<0 c:= x[i]/2)
IF (x[i+1]>= 0 d:= x[i+1],x[i+1]<0 d:= x[i+1]/2)
PAR j=0 FOR 4e[j]:= x[f(i,j)]
PARw := k*e[i]PAR j= 0 FOR 4y[j] := y[j] + e[j]*(c+d)
Características- alto desempenho- pequeno tamanho- alto custo- pouco flexível
Hardware
Alternativas de implementação
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Program Convolution
SEQ i=0 FOR 2PARIF (x[i]>= 0 c:= x[i],
x[i]<0 c:= x[i]/2)
IF (x[i+1]>= 0 d:= x[i+1],x[i+1]<0 d:= x[i+1]/2)
PAR j=0 FOR 4e[j]:= x[f(i,j)]
PARw := k*e[i]PAR j= 0 FOR 4y[j] := y[j] + e[j]*(c+d)
SW
HW
HW
Microprocessador
Circuitosespecíficos
Hardware/Software
Alternativas de implementação
– 50 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Linguagens Empregadas
• Segundo uma pesquisa recente da www.8052.com– 49% assembly– 33% C– 5% Basic– 3% Pascal– 9% outras linguagens
• A previsibilidade no uso de recursos e tempo de execução é fundamental para sistemas críticos
– 51 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Linguagens orientadas a objetos
• Linguagens orientadas a objeto– ciclo de desenvolvimento mais rápido
– melhores métodos de estruturação e modularização
– reutilização de objetos
– Java, não há um modelo definido para o escalonamento das threads. Inviabiliza tempo real
– 52 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
• C e Assembly– Excelente controle do hardware e do tempo de execução
– Alta performance
– Dificuldades no desenvolvimento
– Assembly:• Difícil modularização e reutilização
Linguagens imperativas
– 53 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Sistemas de Tempo Real
• Sistemas computacionais de tempo real:– Tem aspectos temporais em sua especificação– Submetidos a requisitos de natureza temporal– Resultados devem estar corretos lógica e temporalmente
“Fazer o trabalho usando o tempo disponível”– Requisitos definidos pelo ambiente físico
• Aspectos temporais– Não estão limitados a uma questão de desempenho– Estão diretamente associados com a funcionalidade
– 54 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Sistemas Embarcados
• Desafios– Confiabilidade
– Robustez
– Performance
– Complexidade do sistema
– Gerenciamento de requisitos
– Otimização
– Gerenciamento de projetos global
– Verificação e ferramentas– 55 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Conclusões
• Falhas em software embarcado são mais graves• Mais software, mais sistemas, mais falhas• Diversos desafios• -> Qualidade
• Escolha de métodos baseada no contexto• -> Riscos• Oportunidades de pesquisa!
– 56 – Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Conclusões
• Sistemas de tempo real estão ligados a monitoramento e controle
• O tempo é fator crítico – Hard e soft real time
• Software envolvido neste sistema necessita características específicas – Ex: SO com suporte a multitarefa é necessário
• Projeto de Sistemas de Tempo real – Devem levar em conta as restrições de tempo
– Padrões Arquiteturais
– 57 –
Prof. Luiz Alberto -Aula 04 - QS - Sistemas Embarcados
Exercício
1. Usando exemplos, explique por que, geralmente, os sistemas de tempo real precisam ser implementados usando processos concorrentes.
2. O que diferencia o projeto de Sistema Embarcados do projeto de aplicativos para computadores?
3. Mencione pelo menos 5 restrições de projeto comuns em Sistema Embarcados?
4. Quais as vantagens e desvantagens de usar Software e/ou Hardware para implementar um Sistema Embarcados?
5. O que vem mudando na forma de projetar Sistema Embarcados ao longo do tempo?
– 58 –
Top Related