Introdução aos Introdução aos Sistemas de Tempo RealSistemas de Tempo RealSergio CavalcanteCentro de Informática – UFPE
[email protected] [email protected]
Assunto: [str]
88350950 34254714
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 2
SE::P & A::SoftwareSE::P & A::SoftwareSistemas de Tempo RealSistemas 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
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 3
Sistema de Tempo RealSistema de Tempo Real
• Sistema no qual o comportamento está sujeito a restrições temporais
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 4
Tipos de usoTipos de uso• Controle
– Baixo processamento– Requer pouca memória – Altamente reativo (muito interativo)
• Processamentos de dados– Processamento digital de sinais– Alto processamento– Pouco interativo
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 5
Sistema de Controle de Tempo Sistema de Controle de Tempo RealReal• Monitoram e modificam seu ambiente• Estão associados a dispositivos de
hardware– Sensores: coletam dados do ambiente– Atuadores: Mudam o ambiente do sistema
• Tempo é crítico
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 6
SE::P & A::Sw::Sistemas de Tempo RealSE::P & A::Sw::Sistemas de Tempo RealÁreas de PesquisaÁreas de Pesquisa• Escalonamento (mais estudado)
• Modelos e linguagens de programação
• Protocolos de comunicação
• Arquitetura de computadores
• Metodologias de desenvolvimento
• ...
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 7
SE::Visão Geral::Arquitetura de SoftwareSE::Visão Geral::Arquitetura de SoftwareExemplo: Tempo de BootExemplo: Tempo de Boot
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 8
SE::Visão Geral::Arquitetura de SoftwareSE::Visão Geral::Arquitetura de SoftwareExemplo: Mudança de Exemplo: Mudança de ContextoContexto• MontaVista Linux Kernel 2.4.17• Pior caso 436us (vs. 1743us)• 99.9% < 195us (vs. 1420us)
Fonte: Bill Weinberg, “Linux and XScale for Wireless Consumer Electronics Devices”, IDF’Fall03
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 9
SE::P & A::Sw::Sistemas de Tempo RealSE::P & A::Sw::Sistemas de Tempo RealSTR e o AmbienteSTR e o Ambiente
STR
Ambiente
EstímulosSensores
RespostasAtuadores
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 10
Modelo de sistema de tempo Modelo de sistema de tempo realreal
•Sistema de con-trole de tempo real
•Atuador
•Atuador
•Atuador
•Atuador
•S•e•n•s•o•r•S•e•n•s•o•r•S•e•n•s•o•r •S•e•n•s•o•r•S•e•n•s•o•r•S•e•n•s•o•r
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 11
SE::P & A::Sw::Sistemas de Tempo RealSE::P & A::Sw::Sistemas de Tempo RealSTR e o AmbienteSTR e o Ambiente
• Fluxo de controle definido pelo ambiente– Tarefas ativadas por estímulos do ambiente– STR geralmente não tem como limitar estes
estímulos
• Tempos de resposta ao ambiente definem deadlines
• Dados com prazos de validade– Dados desatualizados podem conduzir a
respostas incorretas
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 12
SE::P & A::Sw::Sistemas de Tempo RealSE::P & A::Sw::Sistemas de Tempo RealConceitos BásicosConceitos BásicosTarefa ( 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
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 13
CriticidadeCriticidade
• Soft real-time system: sua operação é degradada se as restrições de tempo não são obedecidas
• Hard real-time system: sua operação é incorreta se as restrições de tempo não são obedecidas
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 14
SE::P & A::Sw::STR:: Conceitos BásicosSE::P & A::Sw::STR:: Conceitos BásicosCriticidadeCriticidadeSistema de tempo real crítico (Hard real-time system)
• Todas as tarefas têm Hard Deadline– Perda do deadline pode ter conseqüências catastróficas
• É necessário garantir requisitos temporais ainda durante o projeto
• Exemplo: usina nuclear, industria petroquímica, mísseis
Sistema de tempo real não crítico (Soft real-time system)
• O requisito temporal descreve apenas o comportamento desejado
• Perda do deadline não tem conseqüências catastróficas
• Existe interesse em terminar a tarefa mesmo com atraso
• Exemplo: início de gravação de vídeo-cassete
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 15
SE::P & A::Sw::STR:: Conceitos BásicosSE::P & A::Sw::STR:: Conceitos BásicosCriticidadeCriticidadeDeadline Firm
• Perda do deadline não tem conseqüências catastróficas
• Não existe valor em terminar a tarefa após o deadline
• Exemplo: ler o valor da temperatura
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 16
SE::P & A::Sw::STR:: Conceitos BásicosSE::P & A::Sw::STR:: Conceitos BásicosModelagem das TarefasModelagem das Tarefas
• Deadline – Tempo máximo para término de uma tarefa
• Release-time – Tempo mínimo para início de uma tarefa
• Tempo de execução: considera o pior caso– WCET – Worst-Case Execution Time
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 17
Sistemas reativosSistemas reativos• Dado um estímulo o sistema deve produzir uma
resposta dentro do tempo estipulado.
• Estímulo periódico: ocorre em intervalos de tempo previsíveis
• Estímulo aperiódico: ocorre em intervalos imprevisíveis
• Estímulo esporádico: não é periódico mas sabemos o intervalo mínimo entre ocorrências
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 18
Abordagens deMelhor Esforço
Abordagens com Garantiaem Tempo de Projeto
ExecutivoCíclico
Dirigido aPrioridades
TécnicasAdaptativas
Abordagens comGarantia Dinâmica
SE::P & A::Sw::STR SE::P & A::Sw::STR EscalonamentoEscalonamento
Métodos de Escalonamento
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 19
Escalonamento de ProcessosEscalonamento de Processos AbstraçãoAbstração• Uma máquina para cada processo• Paralelismo real
T11
T12
T0
P1
P2
P3
T22P3
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 20
Escalonamento de ProcessosEscalonamento de ProcessosRealidadeRealidade• Compartilhamento do tempo• Pseudoparalelismo
T11T12
T0 T22 T0
1 121905141 t70P1
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 21
Tipos de EscalonamentoTipos de EscalonamentoPreemptivoPreemptivo• Permite a suspensão temporária de processos• Quantum ou time-slice: período de tempo durante o qual
um processo usa o processador a cada vez
T11T12
T0 T22 T0
1 121905141 t70P1
Preempção
Quantum grande: Diminui núm. de mudanças de contexto e overhead do S.O. Ruim para processos interativos
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 22
Escalonamento de ProcessosEscalonamento de Processos
ProcessoProcesso• Estados de um processo
Pronto Rodando
Bloqueado
Criação TérminoID do Processo
Estado
Program CounterPonteiros da Memória
Contexto (regs.)I/O Status
Prioridade
Informações gerais• tempo de CPU• limites, usuário, etc.
Process Control Block - PCB
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 23
Filas de Filas de EscalonamentoEscalonamento
Long-term
queue
Short-term
queue CPU
I/Oqueue
I/Oqueue
I/OqueueI/O
I/O
I/O
Processrequest FIM
High-levelscheduling
Short-termscheduling
I/O scheduling
InterruptHandler
Interruptof process
Interrupt from I/O
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 24
Tipos de EscalonamentoTipos de EscalonamentoRound-RobinRound-Robin
• Uso de uma lista de processos sem prioridade• Escalonamento preemptivo• Simples e justo• Bom para sistemas interativos
Tar. BContexto
Tar. CContexto
CPU:Running
Tar. AContexto
Tar. AContexto
Tar. AContexto
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 25
Tipos de EscalonamentoTipos de EscalonamentoFirst-In First-Out (FIFO)First-In First-Out (FIFO)
• Uso de uma lista de processos sem prioridade
• Escalonamento não-preemptivo• Simples e justo• Bom para sistemas em batch
B C D E F … NCPUA
FIM
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 26
Tipos de EscalonamentoTipos de EscalonamentoExemploExemplo• Três processos• Cada um consome 1 hora de CPU• Calcule o tempo de resposta considerando
a) Round-robin (time-slice = 10ms)b) FIFO
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 27
Características de Características de EscalonamentoEscalonamento• Justiça (fairness)
– Todos os processos têm chances iguais de uso dos processador• Eficiência
– O objetivo é manter o processador 100% ocupado• Tempo de Resposta
– Tempo entre a requisição da ação e a obtenção do resultado• Throughput
– Número de tarefas por unidade de tempo
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 28
SE::P & A::Sw::STR::EscalonamentoSE::P & A::Sw::STR::EscalonamentoGarantia Dinâmica e de Melhor EsforçoGarantia Dinâmica e de Melhor Esforço• Não existe garantia que os deadlines serão cumpridos
• Sempre que uma tarefa é ativada ocorre uma análise da sua escalonabilidade
• Passível de sofrer sobrecarga
• Capaz de fornecer análise probabilística– Simulação, teoria das filas de tempo real, etc
• Algumas abordagens oferecem Garantia Dinâmica– Garante o deadline (ou não) no início da ativação
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 29
SE::P & A::Sw::STR::EscalonamentoSE::P & A::Sw::STR::EscalonamentoGarantia Dinâmica e de Melhor EsforçoGarantia Dinâmica e de Melhor EsforçoDescarte de Tarefas na Sobrecarga • As tarefas executadas cumprem o deadline
• Mais apropriado para tarefas com deadline firm
• Pode cancelar ativações individuais ou tarefas completas
• Objetivo é maximizar o número de tarefas executadas
• Tarefas podem ter importância (peso) diferentes– Maximiza o somatório dos pesos das tarefas executadas
• Abordagem semelhante: aumenta o período das tarefas
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 30
SE::P & A::Sw::STR::EscalonamentoSE::P & A::Sw::STR::EscalonamentoGarantia Dinâmica e de Melhor EsforçoGarantia Dinâmica e de Melhor EsforçoPerda de deadlines na sobrecarga• Em sobrecarga ATRASA algumas tarefas
• Possui uma função que indica o valor de cada tarefa em função do seu instante de conclusão (time-value function)
• Objetivo é maximizar o valor total do sistema (somatório de todas as tarefas)
d0
valor
Tempo de Resposta
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 31
SE::P & A::Sw::STR::EscalonamentoSE::P & A::Sw::STR::EscalonamentoGarantia Dinâmica e de Melhor EsforçoGarantia Dinâmica e de Melhor EsforçoRedução da Precisão na Sobrecarga• Em sobrecarga diminui a precisão de algumas tarefas
• Objetivo é fazer o possível dentro do tempo disponível
• Exemplos:– Ignorar bits menos significativos de cada pixel– Trabalhar com amostras de áudio menos precisas– Alterar resolução e tamanho de imagem na tela– Simplificar animações– Usar algoritmos de controle mais simples– Interromper pesquisa em algoritmos de inteligência artificial
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 32
Sistemas de Prioridade Dinâmica• Earliest-Deadline-First (EDF)
– Escalonamento preemptivo de prioridade dinâmica– O deadline é calculado quando a tarefa é disparada.– O escalonador põe para executar a tarefa com menor
deadline
• Least Slack Scheduling– Escalonamento não-preemptivo de prioridade dinâmica– A tarefa com menor sobra (slack) tem maior prioridade
SE::P & A::Sw::STR::EscalonamentoSE::P & A::Sw::STR::EscalonamentoGarantia Dinâmica e de Melhor EsforçoGarantia Dinâmica e de Melhor Esforço
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 33
ReferênciasReferências
• Livro de Sistemas de Tempo RealJean- Marie Farines, Joni da Silva Fraga, Rômulo Silva de Oliveira. Escola de Computação’2000 - IME- USPhttp:// www. lcmi. ufsc. br/ gtr/ livro/ principal. Htm
• IEEE Computer Society, Technical Committee on Real- Time Systems (IEEE- CS TC- RTS)http:// www. cs. bu. edu/ pub/ ieee- rts
• The Concise Handbook Of Real-Time Systems.TimeSys Corporation, Versão 1.1, 2000.http://www.timesys.com