Conceitos em Sistemas de Tempo Real (Real Time Systems)

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Metodologia de testes Nome: Gustavo G. Quintão
Algoritmos de Escalonamento
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
A Interface entre Processadores e Periféricos
Noções de Sistemas Operacionais
UML Visões – Parte 2.
Sistemas Operacionais - 3
Sistemas Operacionais
Escalonamento Linux.
Faculdade de Ciências Sociais e Aplicadas de Petrolina – FACAPE
Jaime Dalla Valle Junior
SSC SISTEMAS OPERACIONAIS I Aulas 6 – Escalonamento de Processos
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é
Sistemas Distribuídos
QoS para Realidade Virtual
AULA6 – tecnologia TOWER complemento
Sistemas de Tempo Real: Abordagens de Escalonamento
Simulação de Sistemas Prof. MSc Sofia Mara de Souza AULA2.
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
André Luis Meneses Silva Programação Concorrente (Sistemas de Tempo Real)
Escalonamento de Tempo Real Introdução
Algoritmos para Escalonamento de Tempo Real – (RM, EDF, DM)
Sistemas Operacionais
Sistemas em Tempo Real Módulo 2: Concorrência: Conceito de processos; estados de processos; algoritmos para escalonamento de processos; Regiões Críticas;
Sistemas Operacionais I
Sistemas Operacionais Aula 4
Unidade 1-1 Processos e Threads
Sistemas Operacionais
Gerência de Recursos Processador
Gerência do processador
Qual o melhor sabor para o RT-Linux (Real Time Linux)? Ricardo Matias Nº27471 e Vitor Hugo Nº21906 Sistemas de Tempo Real 2006 DETI-UA.
Processo Entidade dinâmica e efêmera
Sistemas Operacionais Profª Adriana Vettorazzo
GESTÃO DE SISTEMAS OPERACIONAIS II
Escalonamento de Tempo Real
Introdução aos Sistemas de Tempo Real
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Escalonamento de Processos e Threads
Engenharia de Software
Sistemas Operacionais
Escalonamento de Processos EDF Algorithm
Escalonamento de Tarefas com Compartilhamento de Recursos André Luis Meneses Silva.
SISTEMAS OPERACIONAIS
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Sistemas em Tempo Real Jadsonlee da Silva Sá
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Sistemas em Tempo Real Jadsonlee da Silva Sá
Engenharia de Sistemas Embarcados Aula 9: Salvo RTOS.
Prof. André Luis Meneses Silva
Sistemas Embarcados de Tempo Real Grupo de Engenharia da Computação Sérgio Cavalcante.
Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação.
Sistemas Operacionais Aula 2 Danielle Costa
Serviços de rede e internet Jackson Eduardo da Silva.
Tipos de Sistemas Operacionais
Universidade Federal de Pernambuco
Aula 02 de Eng. de Requisitos
Introdução aos Sistemas de Tempo Real
Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE Assunto: [str]
TÉCNICAS DE ESTIMATIVAS
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Sistemas Operacionais
Sistemas Operacionais Multimídia Aula 12. Gerência de Processos Mapeamento de processos sobre recursos de acordo com política de escalonamento Possíveis.
Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE Assunto: [str]
Bruna Cavallero Martins Universidade Católica de Pelotas.
Tipos de Suportes para Tempo real Aluno: Ritiele M. Aldeburg Curso: Engenharia da Computação.
Transcrição da apresentação:

Conceitos em Sistemas de Tempo Real (Real Time Systems) Jair Jonko Araujo (jonko@cefetrs.tche.br)

Caracterização Sistemas de Tempo Real respostas devem ser válidas (“correctness”) e dentro de prazos (“Timeliness”) impostos pelo ambiente. Sistemas Não de Tempo Real respostas válidas em prazos aceitáveis, não especificados. Uma Definição [Audsley90]: Um Sistema de Tempo Real é um sistema que produz reações a estímulos oriundos do ambiente dentro de intervalos de tempos impostos pelo ambiente (é incluindo entre estes estímulos o passar do tempo físico).

Caracterização Forte acoplamento de um STR com o seu Ambiente: Processamento ativado por estímulos do Ambiente Tempos de Resposta delimitam Estímulos/Respostas Processamentos devem terminar dentro de prazos (deadlines) Se terminar fora de prazo sistema falha (falha temporal) Dados com prazos de validade: Dados desatualizados ou não válidos (“outdated data”) podem conduzir a resultados ou respostas incorretas Fluxos de controle na execução dos processamentos é definida pelo ambiente: Impossibilidade em muitas aplicações do STR exercer um controle ou limitação nos estímulos provenientes do Ambiente

Conceitos Básicos Tarefa (task ) Segmento de código cuja execução possui atributo temporal próprio Exemplo: método em OO, subrotina, trecho de um programa Deadline Instante máximo desejado para a conclusão de uma tarefa

Conceitos Básicos Tempo real crítico ( hard real-time ) Falha temporal pode resultar em consequências catastróficas Necessário garantir requisitos temporais em projeto Exemplo: usina nuclear, industria petroquímica, mísseis Tempo real não crítico ( soft real-time ) Exemplo: multimídia

Conceitos Básicos Modelo de Tarefas (task system ) Descrição das propriedades temporais das tarefas no sistema Exemplo: periódicas ou não, com duração conhecida ou não, etc Carga de Tarefas ( task load ) Descrição de quais tarefas deverão ser executadas Estática: Limitada e conhecida em projeto Dinâmica: Conhecida somente ao longo da execução

Conceitos Básicos Previsibilidade ( predictability ) Capacidade de afirmar algo sobre o comportamento futuro do sistema Determinista: Garante que todos os requisitos temporais serão cumpridos Probabilista: Fornece uma probabilidade para o seu cumprimento A previsibilidade em STRs determina implicações em todos os níveis: linguagens sistemas operacionais comunicação arquitetura do computador, etc

Conceitos Básicos Escalonamento ( scheduling ) Identifica a forma como recursos são alocados às tarefas Escalonador ( scheduler ) Componente do sistema responsável pela gerência dos recursos Escala de Execução ( schedule ) Descreve quando cada tarefa ocupa cada recurso Escalonamento Estático ( static scheduling ) Capaz de oferecer previsibilidade determinista Escalonamento Dinâmico ( dynamic scheduling ) Capaz de oferecer apenas previsibilidade probabilista

Conceitos Básicos Event-Triggered Evento externo gera interrupção e dispara tarefa Funciona bem com carga pequena Pode falhar no caso de carga pesada Ex: Cano estourado gera chuva de eventos

Conceitos Básicos Time-Triggered Interrupção de relógio a cada T milisegundos (tick) A cada tick alguns sensores e atuadores são acessados Não existem interrupções além das do relógio Problema é selecionar T (carga x atraso) Ex: Relação causa-efeito em trem e cancela

Propriedades Temporais das Tarefas Folga = Deadline - Liberação - Tempo de execução Atraso = MAX( 0 , Conclusão - Deadline ) Tempo de resposta = Conclusão - Chegada

Tarefas Periódicas – Tarefa é ativada a cada P unidades de tempo – Instantes de chegada podem ser calculados a partir do inicial – Exemplo: controle de processo via laço de realimentação

Tarefas Esporádicas – Instantes de chegada não são conhecidos – Existe um intervalo mínimo de tempo entre chegadas – Exemplo: atendimento a botão de alarme

Conceitos Básicos Tarefa Aperiódica Nada é sabido quanto as ativações da tarefa Exemplo: aparecimento de objeto em tela de radar Relações de exclusão mútua entre tarefas Tarefas A e B apresentam exclusão mútua quando NÃO podem executar simultaneamente Exemplos: Estrutura de dados compartilhada Arquivo Controlador de periférico

Abordagem para Escalonamento TR

Abordagens com garantia em projeto Oferece previsibilidade determinista, com análise feita em projeto Carga limitada e conhecida em projeto ( Hipótese de Carga ) Suposto um limite para faltas ( Hipótese de Faltas ) Dividida em duas partes: Análise da escalonabilidade Construção da escala de execução

Abordagens com garantia em projeto Vantagens – Determina em projeto que todos os deadlines serão cumpridos – Necessário para aplicações críticas – Teoria serve de base para abordagens sem garantia Desvantagens Necessário conhecer exatamente a carga Necessário reservar recursos para o pior caso Difícil determinar o pior caso em soluções off-the-shelf Gera enorme subutilização de recursos

Executivo Cíclico Todo o trabalho de escalonamento é feito em projeto Resultado é uma grade de execução ( time grid ) Grade determina qual tarefa executa quando Garantia obtida através de uma simples inspeção da escala Durante a execução: Pequeno programa lê a grade e dispara a tarefa aproprida Quando a grade termina ela é novamente repetida Vantagem: Comportamento completamente conhecido Desvantagem: Escalonamento muito rígido, tamanho da grade Muito usado em aplicações embutidas ( Embedded Systems )

Executivo Cíclico Restrições devem ser observada na construção da grade Período, tempo máximo de computação Precedências, exclusão Escalonamento pode ser: Preemptivo: tarefa pode ser suspensa e depois retomada Não preemtivo: depois que inicia tarefa vai até o fim

Prioridades + Teste de Escalonabilidade Cada tarefa recebe uma prioridade Prioridades podem ser fixas ou variáveis Escalonamento em geral é preemptivo Teste executado em projeto determina escalonabilidade Teste considera forma como prioridades são atribuidas Complexidade depende do modelo de tarefas Na execução: Escalonador dispara as tarefas conforme as prioridades

Prioridades + Teste de Escalonabilidade Vantagem: Suporta tarefas esporádicas, não tem grade Desvantagem: Testes limitados a alguns modelos de tarefas Usado em aplicações que exigem garantia mas são muito complexas para construir uma grade Políticas mais usadas Earliest Deadline First – EDF Rate Monotonic – RM (período menor – prioridade maior) Deadline Monotonic – DM (deadline menor – maior prioridade)

Inversão de Prioridades

Suportes para Aplicações de Tempo Real Aplicações são construídas a partir dos serviços oferecidos por um sistema operacional O atendimento dos requisitos temporais depende não somente do código da aplicação mas também da colaboração do sistema operacional No sentido de permitir previsibilidade ou pelo menos um desempenho satisfatório

Suportes para Aplicações de Tempo Real Muitas vezes os requisitos temporais da aplicação são tão rigorosos que o sistema operacional é substituído por um simples núcleo de tempo real Não inclui serviços como sistema de arquivos ou gerência sofisticada de memória Núcleos de tempo real oferecem uma funcionalidade mínima Mas são capazes de apresentar excelente comportamento temporal

Suportes para Aplicações de Tempo Real Sistemas operacionais convencionais são construídos com o objetivo de apresentar bom comportamento médio Distribuem os recursos de forma justa entre as tarefas e os usuários Não existe preocupação com a previsibilidade Mecanismos como Caches de disco, Memória virtual, Fatias de tempo do processador melhoram o desempenho médio do sistema mas tornam mais difícil fazer afirmações sobre os tempos de uma tarefa em particular

Suportes para Aplicações de Tempo Real Aplicações com restrições de tempo real menos interessadas em uma distribuição uniforme dos recursos mais interessadas em atender requisitos tais como períodos de ativação e deadlines Sistemas operacionais de tempo real atenção é dedicada ao comportamento temporal serviços são definidos não somente em termos funcionais mas também em termos temporais

Suportes para Aplicações de Tempo Real Existe uma variedade muito grande de Sistemas Operacionais de Tempo Real Não existe SO melhor ou pior para todas as aplicações A diversidade de aplicações de STR gera uma diversidade grande de SOTR