22
Luís Almeida, EST-IPCB, 2º semestre 2001 1 Sistemas Tolerantes a Falhas Sistemas de Tempo-Real • (Cont.) •Controlo temporal •Escalonamento • Bibliografia • H. Kopetz, Design Principles for Distributed Embedded Applications , Kluwer Academic Publishers, 1997. • G. Buttazzo, Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications . Kluwer Academic Publishers, 1997.

Sistemas de Tempo-Real

Embed Size (px)

DESCRIPTION

Sistemas de Tempo-Real. (Cont.) Controlo temporal Escalonamento Bibliografia H. Kopetz, Design Principles for Distributed Embedded Applications , Kluwer Academic Publishers , 1997. - PowerPoint PPT Presentation

Citation preview

Luís Almeida, EST-IPCB, 2º semestre 20011Sistemas Tolerantes a Falhas

Sistemas de Tempo-Real

• (Cont.)

• Controlo temporal

• Escalonamento

• Bibliografia

• H. Kopetz, Design Principles for Distributed Embedded Applications, Kluwer Academic Publishers, 1997.

• G. Buttazzo, Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications. Kluwer Academic Publishers, 1997.

Luís Almeida, EST-IPCB, 2º semestre 20012Sistemas Tolerantes a Falhas

Controlo lógico e controlo temporal

Controlo lógico

Controlo do fluxo de programa, i.e., sequência efectiva das operações a ser executadas (e.g., descrito através de um fluxograma)

Controlo temporal

Controlo dos instantes de execução das operações do programa (e.g., disparo de actividades, verificação do cumprimento de deadlines,...)

Luís Almeida, EST-IPCB, 2º semestre 20013Sistemas Tolerantes a Falhas

Controlo temporal

Disparo de funções (tarefas)

Por tempo (time-trigger)

A execução de actividades (tarefas) é disparada por intermédio de um sinal de controlo baseado na progressão do tempo (e.g., através de uma interrupção periódica).

Por eventos (event-trigger)

A execução de actividades(tarefas) é disparada por intermédio de um sinal de controlo assíncrono baseado na alteração do estado do sistema (e.g., através de uma interrupção externa).

Luís Almeida, EST-IPCB, 2º semestre 20014Sistemas Tolerantes a Falhas

Controlo temporal

Sistemas disparados por tempo

time-triggered (TT) systems

• Típicos em aplicações de controlo (amostragem de variáveis contínuas).

• Taxa de utilização do CPU constante mesmo quando não há variações no estado do sistema.

•Situação de pior caso bem definida

Luís Almeida, EST-IPCB, 2º semestre 20015Sistemas Tolerantes a Falhas

Controlo temporal

Sistemas disparados por eventos

event-triggered (ET) systems

• Típicos na monitorização de condições esporádicas no estado do sistema (e.g., verificação de alarmes ou de solicitações assíncronas).

• Taxa de utilização do sistema computacional (e.g. CPU) variável consoante a frequência de ocorrência de eventos.

•Situação de pior caso mal definidaou se utilizam argumentos probabilísticosou se impõe uma limitação à máxima taxa

de eventos

Luís Almeida, EST-IPCB, 2º semestre 20016Sistemas Tolerantes a Falhas

Controlo temporal

O disparo de actividades (tarefas) é normalmente feito por interrupções

• Interrupções periódicas (através de timers) para actividades disparadas por tempo (time-triggered).Estas interrupções são usadas para contar tempo.

• Interrupções assíncronas (comunicações, externas, etc.) para actividades disparadas por eventos (event-triggered). Estas interrupções são usadas para sinalizar a ocorrência de eventos (e.g., disparo de um alarme, recepção de dados por um meio de comunicação, acção do operador)

Luís Almeida, EST-IPCB, 2º semestre 20017Sistemas Tolerantes a Falhas

Controlo temporal

Mas a utilização de interrupções:

• Impõe um custo computacional adicional necessário para a salvaguarda do estado do CPU no momento de cada interrupção (i.e., salvaguarda dos resgistos no stack).

• Retira capacidade computacional à execução do programa interrompido. Quanto mais interrupções surgirem mais devagar o programa executa pois está constatemente a ser interrompido. No limite, a execução do programa fica completamente bloqueada.

Luís Almeida, EST-IPCB, 2º semestre 20018Sistemas Tolerantes a Falhas

Controlo temporal

A utilização de interrupções pode ser feita com ou sem encadeamento (nesting)

• Com encademanto – é permitida a interrupção de rotinas de atendimento a interrupção (ISRs) por interrupções de maior prioridade.

•Maior dificuldade de dimensionamento do stack

•Melhor resposta temporal das ISRs de maior prioridade

• Sem encademanto – cada ISR executa até final sem interrupção. Outras interrupções pendentes são atrasadas.

•Características opostas do caso anterior

•Notar o bloqueio das ISRs de maior prioridade pelas de menor.

Luís Almeida, EST-IPCB, 2º semestre 20019Sistemas Tolerantes a Falhas

Controlo temporal

• Com encademanto

• Sem encademanto

ISR2

ISR1

ISR2

ISR1

Luís Almeida, EST-IPCB, 2º semestre 200110Sistemas Tolerantes a Falhas

Executivos Multi-Tarefa

A programação de aplicações de controlo integrado quando:

envolve apenas um ciclo principal e, eventualmente,

um número muito reduzido de actividades assíncronas

é normalmente efectuada de forma directa sobre o CPU, i.e., sem recurso a estruturas de SW intermédias tipo Sistema Operativo ou Executivo (Kernel).

Luís Almeida, EST-IPCB, 2º semestre 200111Sistemas Tolerantes a Falhas

Executivos Multi-Tarefa

Por outro lado, quando a aplicação envolve múltiplas actividades, assíncronas ou não:

a respectiva programação é facilitada pela utilização de Sistemas Operativos ou Executivos multi-tarefa (muti-tasking).

cada actividade é encapsulada numa tarefa.

Luís Almeida, EST-IPCB, 2º semestre 200112Sistemas Tolerantes a Falhas

Executivos Multi-Tarefa

Definição de tarefa (processo)

Sequência de instruções que, na ausência de outras actividades, é continuamente executada pelo CPU até estar terminada.

disparoinício

terminação

tarefa k

C (WCET)

tempo

Luís Almeida, EST-IPCB, 2º semestre 200113Sistemas Tolerantes a Falhas

Executivos Multi-Tarefa

A programação de aplicações com recurso a estruturas de SW tipo Sistema Operativo ou Executivo permite:

• Maior nível de abstracção

• Menor dependência relativamente ao HW

• Maior facilidade de manutenção do SW

Nota: Mas mesmo nestes casos, o disparo das tarefas é feito por interrupções. Há uma interrupção periódica que fornece uma medida de tempo ao SO ou Executivo e é possível usar interrupções assíncronas embora, normalmente, estejam encapsuladas em device drivers.

Luís Almeida, EST-IPCB, 2º semestre 200114Sistemas Tolerantes a Falhas

Executivos Multi-Tarefa

O processamento associado a uma dada actividade assíncrona pode ser efectuado:

• Ao nível de uma ISR

•Não se tira partido de algumas vantagens do SO ou Executivo(programação de baixo nível – muito dependente do HW)

•Elevada reactividade a eventos externos (micro-segundos...)

• Ao nível de uma tarefa

•Tira partido das vantagens do SO ou Executivo (programação de alto nível, menor dependência do HW, melhor manutenção)

•Menor reactividade a eventos externos (maior overhead)

•As ISRs são reduzidas para menor perturbação das tarefas

Luís Almeida, EST-IPCB, 2º semestre 200115Sistemas Tolerantes a Falhas

Executivos Multi-Tarefa

Processamento:

• Ao nível de uma ISR

(não standard)

• Ao nível de uma tarefa

(standard)

T1

inicializaçãoda ISR1

while (1) { }

ISR1

AmostragemProcessamentoActuação

T1

inicialização da ISR1

while (1) { espera (sleep) amostragem processamento actuação}

ISR1

interrupção

interrupção

signal

Device driver

Device driver

Luís Almeida, EST-IPCB, 2º semestre 200116Sistemas Tolerantes a Falhas

Executivos Multi-Tarefa

Classificação dos SOs e Executivos relativamente às garantias temporais

Não Tempo-Real (time-sharing)e.g., Unix, Linux, Windows NTNão é possível majorar o tempo de resposta a um evento

Soft Real-Timee.g. OS9, RT-Linux, pSOS, VRTxUsam soluções de escalonamento de tempo-real mas não

oferecem garantias temporais

Hard Real-Timee.g. HARTIK, Spring Kernel, ...Oferecem garantias temporais

Luís Almeida, EST-IPCB, 2º semestre 200117Sistemas Tolerantes a Falhas

Escalonamento de Tarefas

Escalonamento (scheduling)

Determina qual a próxima tarefa a ser executada (de entre as que estão activas – ready)

Pode ser efectuado

• Com preempçãouma tarefa pode ser temporariamente suspensa para a execução de outra mais prioritária.

• Sem preempçãoUma tarefa, uma vez iniciada a sua execução, não pode ser interrompida até terminar.

T2

T1

T2T1

Luís Almeida, EST-IPCB, 2º semestre 200118Sistemas Tolerantes a Falhas

Escalonamento de Tarefas

Técnicas típicas em sistemas NRT ou mesmo em alguns SRT

• FCFS (First Come First Served) – má resposta temporal (m variável)

• Round Robin (implica noção de time-slice) – executa as tarefas em sequência independentemente da importâcia

• Prioridades – a tarefa mais prioritária executa primeiro – starvation das tarefas de menor prioridade (atenuado com aging, a prioridade aumenta com o tempo de espera)

Luís Almeida, EST-IPCB, 2º semestre 200119Sistemas Tolerantes a Falhas

Escalonamento de Tarefas

Técnicas típicas em sistemas HRT e em alguns SRT

• Prioridades fixas, inversas ao períodoRate-Monotonic (RM)

• Prioridades fixas, inversas à deadline

Deadline-Monotonic (DM)

• Prioridades dinâmicas inversas à distância à deadline

Earliest Deadline First (EDF)

• Prioridades dinâmicas inversas ao tempo de folga (laxity)

Least Laxity First (LLF)

Luís Almeida, EST-IPCB, 2º semestre 200120Sistemas Tolerantes a Falhas

Escalonamento de Tarefas

Alguns resultados para teste de escalonamento

• Rate-Monotonic (RM), com preempção e ‘n’ tarefas independentes

U(n) = ni=1(Ci/Pi) n(21/n-1) =>

=> Uma activação por período garantida

U(1) 1

U(2) 0.83...U() 0.69

Luís Almeida, EST-IPCB, 2º semestre 200121Sistemas Tolerantes a Falhas

Escalonamento de Tarefas

Alguns resultados para teste de escalonamento

• Earliest Deadline First (EDF), com preempção e ‘n’ tarefas independentes

U(n) = ni=1(Ci/Pi) 1 =>

=> Uma activação por período garantida

Permite usar 100% do CPU mantendo asgarantias temporais

Luís Almeida, EST-IPCB, 2º semestre 200122Sistemas Tolerantes a Falhas

Escalonamento de Tarefas

Os resultados anteriores têm de ser modificados no caso de:

•Não-preempção

•Não independência:

• Recursos partilhados

• Precedências

• E é necessário ter em conta o overhead do SO ou do Executivo(e.g., nas mudanças de contexto, no antendimento da interrupção de contagem do tempo)

• Bem como o tempo gasto no atendimento de interrupções assíncronas