Você está na página 1de 9

Sistemas de Tempo-Real

Aula 9 Outros aspectos do escalonamento de tempo-real


Escalonamento sem preempo Questes de aplicao prtica em sistemas reais

Sistemas de Tempo-Real

Lus Almeida, DETUA, Novembro de 2003

Aula anterior (8)


Execuo conjunta de tarefas peridicas e aperidicas Execuo de aperidicas em background Utilizao de servidores de tarefas aperidicas Servidores de prioridades fixas Polling Server - PS Deferrable Server - DS Sporadic Server - SS Servidores de prioridades dinmicas Total Bandwidth Server TBS Constant Bandwidth Server - CBS

Sistemas de Tempo-Real

Lus Almeida, DETUA, Novembro de 2003

Escalonamento sem preempo


O escalonamento sem preempo consiste em executar as tarefas completamente, sem permitir a sua suspenso para execuo de outras tarefas de maior prioridade Caractersticas principais (vantagens): muito simples de realizar j que no necessrio salvaguardar o estado intermdio de execuo das tarefas (estas executam sem interrupo). O tamanho total de stack necessrio para o sistema mnimo (igual aos requisitos de stack da tarefa com maiores requisitos) No necessrio nenhum protocolo especfico para controlo do acesso a recursos partilhados (as tarefas executam com excluso mtua)
Sistemas de Tempo-Real 3 Lus Almeida, DETUA, Novembro de 2003

Escalonamento sem preempo


Caractersticas principais (desvantagens): Implica uma penalizao ao nvel da escalonabilidade do sistema, principalmente quando h tarefas com tempos de execuo longos. Essa penalizao torna-se excessiva quando simultaneamente se pretende executar tarefas com elevado rtmo de activao.

A penalizao da escalonabilidade do sistema pode ser vista como um bloqueio no acesso a um recurso partilhado, o CPU. Isto permite utilizar os testes de escalonabilidade apresentados anteriormente para sistemas com preempo e acesso a recursos partilhados. Neste caso,
Sistemas de Tempo-Real

Bi = maxk lp(i)(Ck)
4 Lus Almeida, DETUA, Novembro de 2003

Escalonamento sem preempo


Para alm de se considerar o termo de bloqueio correspondente, existem ainda algumas adaptaes a efectuar nas anlises de escalonabilidade que usam o clculo do tempo de resposta. Calculo de Rwc i com prioridades fixas: i, Rwci = Ii + Ci O processo iterativo executado apenas sobre Ii uma vez que, aps iniciar, a tarefa i executar at final, e dever incluir activaes no ltimo instante Ii = Bi + k hp(i) ( Ii /Tk +1) * Ck Ii (0) = Bi + k hp(i) Ck Ii (m+1) = Bi + k hp(i) ( Ii (m)/Tk +1) * Ck
Sistemas de Tempo-Real 5

2 1

Rwc2

Lus Almeida, DETUA, Novembro de 2003

Escalonamento sem preempo


Com preempo 3 Tabela de propriedades das tarefas i 1 2 3 Ti 2 3 6 Ci 0.5 0.5 3 3 2 1 t=0
Sistemas de Tempo-Real

2 1 t=0 t=2 t=6 Sem preempo

t=6 t=2 Bloqueio e perda de deadline


6 Lus Almeida, DETUA, Novembro de 2003

Escalonamento sem preempo


Tabela de propriedades das tarefas i 1 2 3 Ti 2 3 6 Ci Oi Utilizao de offsets 3 2 1 t=0 t=2 t=6

0.5 2 0.5 3 3 4.5

A utilizao de offsets pode ser particularmente eficaz no escalonamento sem preempo, permitindo por vezes tornar escalonvel um sistema no-escalonvel.
Sistemas de Tempo-Real 7 Lus Almeida, DETUA, Novembro de 2003

Aspectos de implementao prtica


Na constru o de aplicaes reais existem alguns aspectos a ter em conta por influenciarem a exactido dos testes de escalonabilidade das tarefas: O custo dos mecanismos internos do executivo (e.g. tick handler) O custo adicional das mudanas de contexto Os tempos de execuo das tarefas Outras rotinas de atendimento de interrupes Desvios nos instantes de activao das tarefas

Sistemas de Tempo-Real

Lus Almeida, DETUA, Novembro de 2003

Aspectos de implementao prtica


Determinao do custo adicional do atendimento do tick O atendimento do relgio do sistema (tick) utiliza tempo de CPU para alm da execuo das tarefas (overhead). Trata-se da actividade de maior prioridade executada pelo sistema e pode ser modelada como uma tarefa peridica O respectico overhead () tem um impacto substancial na eficincia do sistema j que se trata de uma parte da largura de banda que subtrada disponibilidade do CPU para execuo das tarefas da aplicao. Pode ser medida quer directamente quer recorrendo a uma funo longa, executada sem e com interrupes do tick (perodo Ttick) e medindo a 0 1 diferena dos tempos de execuo (C 1 e C 1 respectivamente). 1 0 1 Neste caso, = (C 1-C 1) / C 1/Ttick
Sistemas de Tempo-Real 9 Lus Almeida, DETUA, Novembro de 2003

Aspectos de implementao prtica


Determinao do custo adicional das mudanas de contexto As mudanas de contexto tambm requerem tempo de CPU para alm da execuo do cdigo das tarefas (overhead). Uma forma simples de medir este overhead () consiste em utilizar um par de tarefas, uma longa e a outra de maior prioridade, rpida (T2) e vazia (sem cdigo). Basta medir o tempo de execuo da primeira, 0 1 sozinha (C 1) e juntamente com a segunda (C 1). Neste caso, = (C 1-C 1) / C 1/T2
1 0 1

Sistemas de Tempo-Real

10

Lus Almeida, DETUA, Novembro de 2003

Aspectos de implementao prtica


Utilizao do custo adicional das mudanas de contexto (cont.) Uma forma simples (mas pessimista) de ter em conta o overhead das mudanas de contexto () consiste em adicionar esse termo aos tempos de execuo das tarefas. Dessa forma, no apenas se toma em linha de conta a mudana de contexto relativa prpria tarefa como tambm as relativas a todas a preemp es que possam ocorrer.
pessimismo 3 2 1 t=0
Sistemas de Tempo-Real

t=2
11

t=6
Lus Almeida, DETUA, Novembro de 2003

Aspectos de implementao prtica


Determinao dos tempos de execuo das tarefas Normalmente efectuada com recurso anlise do cdigo fonte, para determinar o trajecto de execuo mais longo, de acordo com os dados de entrada. Depois analizado o cdigo objecto para contar os ciclos de relgio do CPU necessrios para executar as instrues do referido trajecto mais longo.

Notar que o tempo de execuo de uma tarefa poder variar de instncia para instncia de acordo com os dados de entrada ou com condies do sistema, por via da utilizao de condicionais e ciclos.

Sistemas de Tempo-Real

12

Lus Almeida, DETUA, Novembro de 2003

Aspectos de implementao prtica


Determinao dos tempos de execuo das tarefas (cont.) Tambm possvel executar a tarefa isoladamente e de forma controlada, fornecendo-lhe os dados de entrada adequados e medindo o tempo de execuo na plataforma destino. (este mtodo experimental requer algum cuidado para garantir que se obtm um majorante do tempo de execuo!)

Os processadores complexos actuais usam pipelines e caches (de dados e/ou de instrues) que melhoram substancialmente o tempo mdio de execuo de um programa mas apresentam um pior caso muito penalizante. Para este casos, usam-se anlises especficas para reduzir o pessimismo do pior caso (mximas ocorrncias de chace misses e pipeline flushes de acordo com a efectiva sequncia de instrues).
Sistemas de Tempo-Real 13 Lus Almeida, DETUA, Novembro de 2003

Aspectos de implementao prtica


Impacto de outras rotinas de atendimento de interrupes Regra geral as rotinas de atendimento de interrupes executam com um nvel de prioridade superior ao de todas as tarefas no sistema. Assim, num sistema de prioridades fixas, o respectivo impacto pode ser directamente tido em conta, incluindo estas rotinas como tarefas nas anlises de escalonabilidade. Em sistemas de prioridades dinmicas a situao mais complexa. Considera-se, neste caso, que as janelas de tempo em que as rotinas executam no esto disponveis para a execuo de tarefas. Isto pode ser tido em conta na anlise de carga imposta ao CPU.

Sistemas de Tempo-Real

14

Lus Almeida, DETUA, Novembro de 2003

Aspectos de implementao prtica


Impacto de desvios nos instantes de activao de tarefas Uma tarefa pode sofrer desvios nos respectivos instantes de activao, e.g. quando a tarefa activada pela terminao de outra, ou por uma interrupo externa, ou por uma mensagem recebida por um porto de comunicao, a activao pode variar relativamente ao instante previsto chama-se a este efeito variao de disparo (release jitter) A existncia de release jitter tem de ser tida em conta na anlise de escalonabilidade pois a tarefa poder executar fora dos instantes previstos.

Sistemas de Tempo-Real

15

Lus Almeida, DETUA, Novembro de 2003

Aspectos de implementao prtica


Impacto de desvios nos instantes de activao de tarefas Uma tarefa pode sofrer desvios nos respectivos instantes de activao, e.g. quando a tarefa activada pela terminao de outra, ou por uma interrupo externa, ou por uma mensagem recebida por um porto de comunicao, a activao pode variar relativamente ao instante previsto chama-se a este efeito variao de disparo (release jitter) A existncia de release jitter tem de ser tida em conta na anlise de escalonabilidade pois a tarefa poder executar fora dos instantes previstos.
3 1
Sistemas de Tempo-Real

Release jitter

16

Lus Almeida, DETUA, Novembro de 2003

Aspectos de implementao prtica


Impacto de desvios nos instantes de activao de tarefas A existncia de release jitter pode ser tida em conta como uma antecipa o dos instantes de activao das instncias seguintes.

Calculo de Rwc i usando preempo e prioridades fixas i, Rwci = Ii + Ci Rwci (0) = com Ii = k hp(i) (Rwci +Ji )/Tk * Ck

k hp(i) Ck + Ci k hp(i) (Rwci (m)+Ji )/ Tk * Ck + Ci

Rwci (m+1) =

Sistemas de Tempo-Real

17

Lus Almeida, DETUA, Novembro de 2003

Resumo da Aula 9
Outro aspectos do escalonamento de tempo-real Escalonamento sem preempo Questes de aplicao prtica em sistemas reais

Sistemas de Tempo-Real

18

Lus Almeida, DETUA, Novembro de 2003