220 likes | 312 Views
Sistemas de Tempo-Real. (Cont.) Controlo temporal Escalonamento Bibliografia H. Kopetz, Design Principles for Distributed Embedded Applications , Kluwer Academic Publishers , 1997.
E N D
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 2001
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 2001
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 2001
Controlo temporal • Sistemas disparados por tempotime-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 2001
Controlo temporal • Sistemas disparados por eventosevent-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 definida ou se utilizam argumentos probabilísticos ou se impõe uma limitação à máxima taxa de eventos Luís Almeida, EST-IPCB, 2º semestre 2001
Controlo temporal • O disparode 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 2001
Controlo temporal • Mas a utilização de interrupções: • Impõe umcusto 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 2001
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 2001
Controlo temporal • Com encademanto • Sem encademanto ISR1 ISR2 ISR1 ISR2 Luís Almeida, EST-IPCB, 2º semestre 2001
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 2001
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 Operativosou Executivos multi-tarefa (muti-tasking). cada actividade é encapsulada numa tarefa. Luís Almeida, EST-IPCB, 2º semestre 2001
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. tarefa k disparo início tempo terminação C (WCET) Luís Almeida, EST-IPCB, 2º semestre 2001
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 2001
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 2001
Executivos Multi-Tarefa interrupção T1 inicializaçãoda ISR1 while (1) { } • Processamento: • Ao nível de uma ISR • (não standard) • Ao nível de uma tarefa • (standard) ISR1 AmostragemProcessamentoActuação T1 inicialização da ISR1 while (1) { espera (sleep) amostragemprocessamento actuação} Device driver interrupção signal ISR1 Device driver Luís Almeida, EST-IPCB, 2º semestre 2001
Executivos Multi-Tarefa Classificação dos SOs e Executivos relativamente às garantias temporais Não Tempo-Real (time-sharing) e.g., Unix, Linux, Windows NT Não é possível majorar o tempo de resposta a um evento Soft Real-Time e.g. OS9, RT-Linux, pSOS, VRTx Usam soluções de escalonamento de tempo-real mas não oferecem garantias temporais Hard Real-Time e.g. HARTIK, Spring Kernel, ... Oferecem garantias temporais Luís Almeida, EST-IPCB, 2º semestre 2001
Escalonamento de Tarefas • Escalonamento (scheduling) • Determina qual a próxima tarefaa 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. T1 T2 T1 T2 Luís Almeida, EST-IPCB, 2º semestre 2001
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 2001
Escalonamento de Tarefas • Técnicas típicas em sistemas HRT e em alguns SRT • Prioridades fixas, inversas ao período Rate-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 2001
Escalonamento de Tarefas • Alguns resultados para teste de escalonamento • Rate-Monotonic (RM), com preempção e ‘n’ tarefas independentes • U(n) = Sni=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 2001
Escalonamento de Tarefas • Alguns resultados para teste de escalonamento • Earliest Deadline First (EDF), com preempção e ‘n’ tarefas independentes • U(n) = Sni=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 2001
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 Luís Almeida, EST-IPCB, 2º semestre 2001