Programa de Pós-Graduação em Ciência da Computação PUCRS

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais Aula II
Soft Errors in Advanced Computer Systems Robert Baumann (IEEE Design & Test of Computers, May-June 2005)
Capitulo 6: Entrada e Saída
gerador de código intermediário
Aula 8 - Sintomas de defeitos comuns
Sistemas Digitais Projeto RTL – Unidade de Controle
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
Barramentos Introdução.
Entrada e Saída Introdução.
Técnicas para operações E/S
UML Visões – Parte 2.
Noções de Informática Prof. Eduardo
Informática Aplica Prof.: Bruno Rafael de Oliveira Rodrigues.
Processos no Unix e Linux
Problemas com Entrada e Saída
Avaliação de Desempenho Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Marcos José
Avaliação de Desempenho
Avaliação de Desempenho de Sistemas Computacionais
Injeção de Falhas Técnicas e Ferramentas
Device Drivers no Windows e Linux Visão Geral e Boas Práticas
Sistemas Operacionais
Componentes do Computador e noções de Arquitetura de Computadores
Arquitetura de Computadores
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Testes – visão geral Vanilson Burégio.
Classes e objetos P. O. O. Prof. Grace.
Sistemas Operacionais I
Discos SCSI Fonte de alimentação Controlador SCSI Disco SAS
REDUNDÂNCIA POR SOFTWARE
Sistemas Operacionais
Sistemas Operacionais
Sistemas Distribuídos
Sistemas Operacionais
PCI- Introdução à Computação
Sistema Operacional Processos
Sistemas Operacionais I
Tolerância a Falhas em Sistemas Distribuídos
Gerência de Configuração - GC
SISTEMAS OPERACIONAIS I
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Aula 3: Sensores.
Computação L1: Infra-Estrutura Básica
Sistemas Operacionais
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Introdução à INFORMÁTICA
Sistemas Tolerantes a Falhas: Conceitos e Técnicas
Sistemas Operacionais
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Introdução O que se espera de um sistema de computação?
Sistemas Operacionais
Conceitos Básicos Introdução.
Engenharia de Software
SISTEMAS OPERACIONAIS
Algoritmos e Programação MC102
Engenharia de Sistemas Embarcados Aula 5: Um Conjunto Básico de Ferramentas.
Sistemas Operacionais Aula 2 Danielle Costa
BIOS (Aula Extra) Prof. Rafael S. Ribeiro
Sistemas Operacionais
Sistemas Operacionais Prof. Tales Cabral 1º Módulo Colégio da Imaculada Curso Técnico em Informática.
Sistemas Operacionais IV – Gerenciamento de E/S
TÉCNICAS DE ESTIMATIVAS

COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Transcrição da apresentação:

Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection in Embedded Systems Guilherme Guindani

SUMÁRIO Introdução Definições de Injeção de Falhas Injeção de falhas de HW Injeção de falhas de SW Injeção de falhas baseadas no Nexus Técnica de injeção de falhas utilizada Estudo de caso: ECU de um carro Conclusões

Introdução A avaliação da dependabilidade envolve o estudo de erros e defeitos Realizadas experimentações nas fases de Conceito Projeto Operacional Diferentes técnicas de injeção de falhas são usadas em diferentes fases do projeto Técnicas empregadas são baseadas em: Simulação (baixo custo)‏ Protótipo (alta precisão)‏

Definições Ambiente de Injeção de falhas:

Definições Método de implementação HWIFI: SWIFI: Hardware (HWIFI)‏ Software (SWIFI)‏ HWIFI: Open Bridging Bit-flip Corrente espúria Surto de tensão Stuck-at SWIFI: Corrupção dos dados (registradores, memoria e disco)‏ Corrupção na comunicação (barramento, NoC ou rede)‏ Manifestação de erros no software (nível de máquina ou superiores)‏

HW Fault Injection Com contato direto Pinos do chip Sockets Produzem falhas a nível de tensão e/ou corrente Probes ativos → Utilizados em falhas stuck-at e bridging Inserção de sockets → entre o chip e sua placa de circuito impresso (PCB)‏ Stuck-at, open ou demais falhas mais complexas Boa controlabilidade das falhas Pouca ou nenhuma pertubação no sistema alvo

HW Fault Injection Sem contato Fonte externa de falhas Pulsos eletromagnéticos (EMP)‏ Radiação Imitam fenômenos naturais os quais os circuitos podem estar sujeitos Difícil de controlar Local Tempo Ferramentas de injeção em HW: Messaline FIST

SW Fault Injection São atrativos pois não requerem HW adicional (encaresse o teste)‏ Alvos: Aplicações Sistemas operacionais Desvantagens: Não insere falhas em áreas inacessíveis ao SW Pode atrapalhar a carga de trabalho do software em teste e/ou modificar sua estrutura original Baixa resolução temporal → causar problemas de fidelidade no teste

SW Fault Injection Injeção em tempo de compilação Modifica a estrutura do programa antes de ser carregado e executado Falhas no código objeto Emulam falhas de HW, SW e transientes Injeção em tempo de execução Mecanismos de ativação da inserção de falhas Time-out Exceção/Trap Inserção de código Ferramentas de injeção em SW: Ferrari Ftape Doctor Xception

Nexus Fault Injection Nexus → Padrão de debug de sistemas embarcados Definido pelo Nexus 5001 Forum Hitachi, Infineon, Motorola, National e ST Dividido em 4 classes Portabilidade → Debugging universal, utilizando uma porta específica “Nexus port” Sobrecarga temporal introduzida pelo SWIFI Seleção do momento de iserir as falhas (trigger)‏ Corrupção dos locais de memória de sistema (injeção da falha)‏

Nexus Fault Injection Nexus Watchpoints Parte do circuito de debug do Nexus Utilizados para sinalizar eventos nas aplicações, sem parar a execução da aplicação Eventos nas aplicações: Execução de uma dada instrução Acesso à uma palavra de memória pré-determinada

Nexus Fault Injection Acesso à memória em tempo de execução Resolve o problema de inserir falhas sem interferir na execução normal do sistema em teste Inserir falhas em uma parte da memória antes que esta seja utilizada Observabilidade do SWIFI Nexus Mensagens de rastreamento (traces)‏ Saltos (branches)‏ Dados (data)‏ Grafo do fluxo de controle da aplicação Monitoramento das operações de escrita e leitura na memória (inserção de falhas)‏

Injeção de Falhas Empregada Aplicações de um SoC são aplicações que estão sendo executadas em um chip Problemas: Observabilidade Controlabilidade Presença ou não de falhas Injeção de falhas em SoCs Complexidade Escala de integração dos componentes

Injeção de Falhas Empregada Nesta seção serão respondidas as seguintes perguntas: Quais são os conjuntos de falhas que a técnica consegue inserir? Como é determinado o momento em que a falha deverá ser inserida? Quais são os passos que devem ser seguidos para inserir uma falha?

Injeção de Falhas Empregada Quais são os conjuntos de falhas que a técnica consegue inserir? Modelo de falhas utilizado: Falhas de HW Stuck-at Bit-flip (representa a maior parte das falhas)‏ Inserindo falhas de bit-flip (3 passos): Ler o conteúdo da memória alvo (posição/registrador)‏ Alterar seu conteúdo (XOR com uma máscara)‏ Re-escrita do novo valor no mesmo local Inserindo falhas stuck-at: Monitoramento contínuo de um local alvo Quando este local for utilizado, é inserida a falha Stuck-at '1' Stuck-at '0'

Injeção de Falhas Empregada Como é determinado o momento em que a falha deverá ser inserida? Definidos dois esquemas de disparo de falhas: Temporal Espacial Temporal: A inserção da falha é dada em um certo parâmetro de tempo associado à execução do sistema Espacial: A falha é inserida quando a aplicação atinge certo estado ou condição Instrução específica ou ativação de um evento (exception)‏

Injeção de Falhas Empregada Utilização separada ou combinada

Injeção de Falhas Empregada Quais são os passos que devem ser seguidos para inserir uma falha? Inserção de falhas é feita em tempo de execução Não pára a aplicação Não altera sua estrutura original Durante a configuração inicial 2 endereços de memória são definidos Sincronização do fluxo de execução com a inserção da falha (A)‏ Indica o endereço de memória em que será inserida a falha (B)‏ Wacthpoint é configurado em A (trigger espacial)‏ Quando oprograma atingir este endereço dispara um contador interno/externo (trigger temporal)‏ Expirando o contador a falha é inserida em B

Estudo de Caso: ECU Unidade de Controle Eletrônico (ECU) de um motor à Diesel 2 processos distintos, porém fisicamente casados Inserção de combustível Gerenciamento de ar Controlados por: Reguladores integrais-proporcinonais (PI)‏ Controladores liga-desliga Configurados por tabelas de parâmetros Comportamento do motor é modelado

Estudo de Caso: ECU Gráfico dos laços de controle da ECU

Estudo de Caso: ECU Para estudar o comportamento da ECU na presença de falhas INERTE (Integrated NExus-based Real-Time fault injection tool for Embedded systems)‏

Estudo de Caso: ECU Experiment Generator Module (EGM)‏ Entradas: As faixas de endereço de memória onde as falhas serão inseridas Número de falhas a serem inseridas Distribuição das falhas (uniforme, normal ou erlang)‏ Saída: Arquivos de configuração (CF) para o insersor de falhas

Estudo de Caso: ECU Fault Injector (FI)‏ Implementado como um script Nexus Entrada: Arquivo de configuração de falhas (CF)‏ Gerado pelo EGM Após a inicialização do ECU (reset): O FI insere as falhas e espera a sua ativação O FI coleta informações de rastramento (traces)‏

Estudo de Caso: ECU Analysis Tool (AT)‏ Parser que compara os relatórios dos traces com dados de execuções sem falhas (golden-runs)‏ Extrai informações temporais das falhas Avalia se as falhas dispararam errors e se estes foram detectados Verifica se foram produzidos defeitos

Estudo de Caso: ECU Procedimento experimental

Estudo de Caso: ECU Resultados: 3000 experimentos 1000 segmentos de memória do tipo read-only 1000 segmentos de memória do tipo read-write 1000 memória de código 12% das falhas inseridas foram ativadas 88% dos experimentos as falhas não afetaram o comportamento do motor

Estudo de Caso: ECU Resultados: 16% dos erros ficaram dormentes Não acarretaram em um defeito no motor Dos erros que afetaram o funcionamento do motor: 37% provocaram um defeito no motor 44% foram detectados pelo mecanismo de detecção de erros empregado: MPC565 buit-in exceptions 3% foram detectados tarde demais, levando à uma falha do motor

Conclusões Bom sistema de injeção de falhas em SoCs Não provoca sobrecargas no sistemas Realizado em tempo de execução Dependente do padrão Nexus Baixa inter-portabilidade Escalável? MPSoCs

Programa de Pós-Graduação em Ciência da Computação PUCRS Non-intrusive Software-Implemented Fault Injection in Embedded Systems Obrigado! Perguntas?! Guilherme Guindani