31
Introdução aos Introdução aos Sistemas de Tempo Sistemas de Tempo Real Real Sergio Cavalcante Centro de Informática – UFPE [email protected] [email protected] Assunto: [str] 88350950 34254714

Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE [email protected]@cin.ufpe.br Assunto: [str] 8835095034254714

Embed Size (px)

Citation preview

Page 1: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Introdução aos Introdução aos Sistemas de Tempo RealSistemas de Tempo Real

Sergio CavalcanteCentro de Informática – UFPE

[email protected] [email protected]

Assunto: [str]

88350950 34254714

Page 2: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 2

SE::P & A::SoftwareSE::P & A::Software

Sistemas 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

Page 3: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

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

Page 4: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

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

Page 5: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

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

Page 6: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

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

• ...

Page 7: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 7

SE::Visão Geral::Arquitetura de SoftwareSE::Visão Geral::Arquitetura de Software

Exemplo: Tempo de BootExemplo: Tempo de Boot

Page 8: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 8

SE::Visão Geral::Arquitetura de SoftwareSE::Visão Geral::Arquitetura de Software

Exemplo: 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

Page 9: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

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 Real

STR e o AmbienteSTR e o Ambiente

STR

Ambiente

EstímulosSensores

RespostasAtuadores

Page 10: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

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

Page 11: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

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 Real

STR 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

Page 12: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

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 Real

Conceitos BásicosConceitos 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

Page 13: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

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

Page 14: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

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ásicos

CriticidadeCriticidadeSistema 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

Page 15: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

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ásicos

CriticidadeCriticidade

Deadline 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

Page 16: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 16

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

Page 17: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 17

Interpretações do TempoInterpretações do Tempo

• Tempo Físico Vs. Tempo Lógico – Tempo Físico é quantificável, métrico e permite estabelecer ordens totais

de eventos

– Tempo Lógico é definido por relações de precedência, como antes de, depois de ou em paralelo.

• Tempo Denso Vs. Tempo Discreto– Tempo denso é o tempo físico, “analógico”

– Tempo Discreto, é a representação do tempo físico de forma discreta, com números naturais (inteiros positivos).

• Tempo Global Vs. Tempo Local– Global: Tempo único compartilhado entre todos os componentes

– Local: Cada componente tem o seu tempo distinto

• Tempo Absoluto Vs. Tempo Relativo– Tempo Absoluto é referente a um evento global

– Tempo Relativo é referente a um evento local

Page 18: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 18

Hipótese de CargaHipótese de Carga

• Corresponde à carga máxima de eventos em um determinado tempo que o sistema deve responder, obedecendo às restrições temporais.

Page 19: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 19

Hipótese de FalhasHipótese de Falhas

• Descreve os tipos e frequencias de falhas com as quais o sistema deve conviver em tempo de execução, continuando a atender os requisitos funcionais e temporais.

Page 20: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 20

Mecanismos que interferem na Mecanismos que interferem na previsibilidadeprevisibilidade• Hierarquia de memória

• Escolhas não determinísticas

• Loops e recursão ilimitados

• Alocação dinâmica de memória

• Criação dinâmica de objetos

• Garbage collection

Page 21: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 21

Escalonamento de ProcessosEscalonamento de Processos AbstraçãoAbstração

• Uma máquina para cada processo

• Paralelismo real

T11

T12

T0

P1

P2

P3

T22P3

Page 22: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 22

Escalonamento de ProcessosEscalonamento de Processos

RealidadeRealidade

• Compartilhamento do tempo

• Pseudoparalelismo

T11T12

T0 T22T0

1 121905141 t70

P1

Page 23: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 23

Tipos de EscalonamentoTipos de Escalonamento

PreemptivoPreemptivo• 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 T22T0

1 121905141 t70

P1

Preempção

Quantum grande: Diminui núm. de mudanças de contexto e overhead do S.O. Ruim para processos interativos

Page 24: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 24

Escalonamento de ProcessosEscalonamento de Processos

ProcessoProcesso• Estados de um processo

Pronto Rodando

Bloqueado

Criação TérminoID do Processo

Estado

Program Counter

Ponteiros da MemóriaContexto (regs.)

I/O Status

Prioridade

Informações gerais• tempo de CPU• limites, usuário, etc.

Process Control Block - PCB

Page 25: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 25

Filas de Filas de EscalonamentoEscalonamento

Long-term

queue

Short-term

queueCPU

I/Oqueue

I/Oqueue

I/Oqueue

I/O

I/O

I/O

Processrequest FIM

High-levelscheduling

Short-termscheduling

I/O scheduling

InterruptHandler

Interruptof process

Interrupt from I/O

Page 26: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 26

Tipos de EscalonamentoTipos de Escalonamento

Round-RobinRound-Robin• Uso de uma lista de processos sem

prioridade• Escalonamento preemptivo• Simples e justo• Bom para sistemas interativos

Tar. BContextoTar. BContexto

Tar. CContextoTar. CContexto

CPU:RunningCPU:Running

Tar. AContextoTar. AContexto

Tar. AContextoTar. AContexto

Tar. AContexto

Page 27: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 27

Tipos de EscalonamentoTipos de Escalonamento

First-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 … N B C D E F … NCPUCPU

A

FIM

Page 28: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 28

Tipos de EscalonamentoTipos de Escalonamento

ExemploExemplo

• Três processos

• Cada um consome 1 hora de CPU

• Calcule o tempo de resposta considerando

a) Round-robin (time-slice = 10ms)

b) FIFO

Page 29: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 29

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

Page 30: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 30

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

Page 31: Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 31

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