Aula 04 qs - sistemas embarcados

15
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–

Transcript of Aula 04 qs - sistemas embarcados

Page 1: Aula 04   qs - sistemas embarcados

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 –

Page 2: Aula 04   qs - sistemas embarcados

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 –

Page 3: Aula 04   qs - sistemas embarcados

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 –

Page 4: Aula 04   qs - sistemas embarcados

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 –

Page 5: Aula 04   qs - sistemas embarcados

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

Page 6: Aula 04   qs - sistemas embarcados

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 –

Page 7: Aula 04   qs - sistemas embarcados

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 –

Page 8: Aula 04   qs - sistemas embarcados

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 –

Page 9: Aula 04   qs - sistemas embarcados

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 –

Page 10: Aula 04   qs - sistemas embarcados

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 –

Page 11: Aula 04   qs - sistemas embarcados

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 –

Page 12: Aula 04   qs - sistemas embarcados

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 –

Page 13: Aula 04   qs - sistemas embarcados

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 –

Page 14: Aula 04   qs - sistemas embarcados

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 –

Page 15: Aula 04   qs - sistemas embarcados

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 –