Você está na página 1de 30

Sistemas de Tempo-Real

Aula 2 Modelos computacionais


Modelos de tarefas com restries temporais explcitas Controlo lgico e temporal (por eventos -ET e por tempo -TT)

Adaptado dos slides desenvolvidos pelo Prof. Doutor Lus Almeida para a disciplina Sistemas de Tempo-Real
DETI - STR 12/13 1

Aula anterior (1)

Relembrando ...
Noo de tempo real e de sistema de tempo real Antagonismo tempo real vs best effort Objetivo do estudo dos STR obter garantias de comportamento temporal adequado Aspetos a considerar: tempo de execuo, de resposta, e regularidade de eventos peridicos Requisitos dos STR: funcionais, temporais e de dependabilidade Noo de base de dados de tempo real Restries soft, firm e hard, e hard real time vs soft real time Importncia de ter em conta o cenrio de pior caso

DETI - STR 12/13

Modelos computacionais
Modelo transformacional Segundo o qual um programa inicia e termina, transformando dados de entrada em resultados ou dados de sada. Modelo reativo
dados de entrada programa dados de sada

Segundo o qual um programa pode executar indefinidamente uma sequncia de interaes, por exemplo operando sobre um fluxo de dados. Modelo de tempo-real Modelo reativo em que o programa tem de se manter sincronizado com o fluxo de dados, o qual impe restries temporais execuo do programa.
programa

fluxo de dados
3

DETI - STR 12/13

Modelo de tempo-real
Definio de tarefa (processo, atividade) Sequncia de ativaes (instncias ou jobs), cada uma composta por um conjunto de instrues que, na ausncia de outras atividades, executada pelo CPU sem interrupo.

cdigo da tarefa incio

Disparo das vrias activaes (jobs) n n+1 n+2

tempo terminao C (WCET) Worst-Case Execution Time

DETI - STR 12/13

Modelo de tempo-real
Quanto periodicidade as tarefas podem ser

peridicas

instncia n ativada em an=n*T+


J0

J1 T

J2 tempo

espordicas

tempo mnimo entre ativaes consecutivas (mit)


J0

J1 mit mit

J2

J3 tempo

aperidicas

s se caracterizam de forma probabilstica


J0 0 DETI - STR 12/13 J1 J2 J3 J4 tempo

Modelo de tempo-real
Caracterizao das tarefas
0 T ou mit C a0 s0 t c0(t) f0 a1 s1 f1

C tempo mximo de execuo (WCET) T perodo (peridica) fase relativa = instante da 1 ativao mit minimum interarrival time an instante de ativao da n instncia

tempo

(peridica)

(espordica)

sn instante de incio de execuo da n instncia fn instante de terminao da n instncia cn(t) tempo mximo de execuo residual da n instncia no instante t
6

DETI - STR 12/13

Modelo de tempo-real
Os requisitos das tarefas podem ser:

Temporais limites temporais aos instantes de terminao ou de gerao de determinados eventos de sada. Precedncia estabelecem uma determinada ordem de execuo entre tarefas. Uso de recursos necessidade de utilizao de recursos partilhados (e.g. portos de comunicao, um buffer em memria partilhada, variveis globais, perifricos do sistema). Pode implicar uso de operaes atmicas (cuja sequncia no pode ser interrompida)

DETI - STR 12/13

Modelo de tempo-real
Preempo

Quando uma tarefa pode ser interrompida temporariamente para execuo de outra mais prioritria, diz-se que admite preempo. Quando um sistema utiliza a propriedade de preempo das tarefas que executa diz-se preemptivo. Um conjunto de tarefas diz-se admitir preempo total quando todas as tarefas admitem preempo em qualquer ponto da sua execuo (tarefas independentes) Nota: o acesso a recursos partilhados (tarefas com dependncias) pode impor restries sobre o grau de preempo que uma tarefa admite.

DETI - STR 12/13

Modelo de tempo-real
Com preempo

Tarefa1 Tarefa2

Maior prioridade

Sem preempo

Tarefa1 Tarefa2

Maior prioridade

DETI - STR 12/13

Modelo de tempo-real
Os requisitos temporais podem ser de vrios tipos:

Deadline Limitao ao tempo mximo para terminao da tarefa. Janela Delimitao mxima e mnima ao instante de terminao. Sincronismo Limitao diferena temporal entre a gerao de dois eventos de sada (existem outras formas). Distncia Limitao ao atraso (distncia) entre a terminao, ou ativao, de duas instncias consecutivas (e.g., a mudana do leo do motor num carro) Tipo deadline o mais comum!

DETI - STR 12/13

10

Modelo de tempo-real
Evento de ativao Execuo

Deadline

n, fn - an < D (relativa) n, fn < dn (absoluta)

an

cn(t) f xn(t) n D

dn

an+1 fn+1 D

dn+1 an+2

fn+2 Ln+2 D

dn+2

cn(t) = majorante do tempo de execuo residual no instante t

xn(t) = minorante do relaxamento (slack da tarefa) xn(t) = dn t cn(t)

Ln = fn dn = atraso da n ativao Ln <= 0 terminao a tempo Ln > 0 terminao atrasada

DETI - STR 12/13

11

Modelo de tempo-real
Evento de ativao

Janela

n, D min < f n - a n < D max

an

fn

an+1

fn+1

an+2

fn+2

Dmin

Dmax

Dmin

Dmax

Dmin

Dmax

DETI - STR 12/13

12

Modelo de tempo-real
Evento de ativao Gerao de eventos de sada

Sincronismo

n, t2n t1n < Dsinc

t 1 n t2 n

t1n+1 t2n+1

t1n+2 t2n+2

an

Dsinc

an+1

Dsinc

an+2

Dsinc

DETI - STR 12/13

13

Modelo de tempo-real
Eventos de ativao

Distncia n, dist n = fn+1 - fn < distmax

an

fn

an+1

fn+1

an+2

fn+2 an+3

fn+3

an+4

distn distmax

distn+1

distn+2

distmax distmax

DETI - STR 12/13

14

Modelo de tempo-real
Exemplo de caracterizao de tarefas:

Peridicas: i = i (Ci,i,Ti,Di) 1 = 1 (2,5,10,10) 2 = 2 (3,10,20,20)

Espordicas: Semelhante s peridicas mas com miti em vez de Ti e i no habitualmente usado (poderia significar um tempo mnimo at primeira ativao). i = i (Ci,miti,Di) 1 = 1 (2,5,5) 2 = 2 (3,10,7)

DETI - STR 12/13

15

Implementao de aplicaes de tempo-real


A programao de aplicaes de tempo real quando envolve apenas:

um ciclo principal e, eventualmente, um nmero muito reduzido de atividades assncronas (que podem ser encapsuladas em rotinas de interrupo)

normalmente efetuada de forma direta sobre o CPU, i.e., sem recurso a estruturas de SW intermdias tipo Sistema Operativo ou Executivo (Kernel).

DETI - STR 12/13

16

Implementao de aplicaes de tempo-real


No caso de programao direta sobre o CPU, o disparo de atividades normalmente feito por interrupes Interrupes peridicas (atravs de timers) para atividades peridicas. Estas interrupes so usadas para contar tempo.

Interrupes assncronas (comunicaes, externas, etc.) para atividades disparadas por eventos (alteraes do estado do sistema, e.g., disparo de um alarme, receo de dados por um meio de comunicao, ao do operador)

DETI - STR 12/13

17

Implementao de aplicaes de tempo-real


Mas a utilizao de interrupes:

Impe um custo computacional adicional necessrio para a salvaguarda do estado do CPU no momento de cada interrupo (i.e., salvaguarda dos registos na stack). Retira capacidade computacional execuo do programa interrompido. Quanto mais interrupes surgirem mais devagar o programa executa pois est constantemente a ser interrompido. No limite, a execuo do programa fica completamente bloqueada.

DETI - STR 12/13

18

Implementao de aplicaes de tempo-real


A utilizao de interrupes pode ser feita com ou sem encadeamento (nesting)

Com encadeamento permitida a interrupo de rotinas de atendimento a interrupo (ISRs) por interrupes de maior prioridade.

Maior dificuldade de dimensionamento do stack Melhor resposta temporal das ISRs de maior prioridade

Sem encadeamento cada ISR executa at final sem interrupo. Outras interrupes pendentes so atrasadas.

Caractersticas opostas do caso anterior Notar o bloqueio das ISRs de maior prioridade pelas de menor.

DETI - STR 12/13

19

Implementao de aplicaes de tempo-real


Por outro lado, quando a aplicao envolve mltiplas atividades, assncronas ou no:

a respetiva programao facilitada pela utilizao de Sistemas Operativos ou Executivos multi-tarefa (muti-tasking) os quais suportam diretamente mltiplas tarefas que podem executar de forma independente, ou partilhando recursos do sistema. Cada atividade encapsulada numa tarefa.

DETI - STR 12/13

20

Executivos Multi-Tarefa
A programao de aplicaes com recurso a estruturas de SW tipo Sistema Operativo ou Executivo permite:

Maior nvel de abstrao Menor dependncia relativamente ao HW Maior facilidade de manuteno do SW

Notas:

Mesmo nestes casos, o disparo das tarefas feito por interrupes, via interrupo peridica que fornece uma medida de tempo ao SO ou Executivo (tick). tambm possvel usar interrupes assncronas embora, normalmente, estejam encapsuladas em device drivers.
21

DETI - STR 12/13

Executivos Multi-Tarefa
O processamento associado a uma dada atividade pode ser efetuado:

Ao nvel de uma ISR (Interrupt Service Routine)

No se tira partido de algumas vantagens do SO ou Executivo (programao de baixo nvel muito dependente do HW) Elevada reatividade a eventos externos (micro-segundos...) Grande interferncia ao nvel das tarefas N limitado de ISRs

Ao nvel de uma tarefa

Tira partido das vantagens do SO ou Executivo (programao de alto nvel, menor dependncia do HW, melhor manuteno) Menor reatividade a eventos externos (maior overhead) ISRs reduzidas para menor perturbao sobre as tarefas

DETI - STR 12/13

22

Executivos Multi-Tarefa
Tarefa1
Processamento: Ao nvel de uma ISR (no standard) inicializao da ISR1 while (1) { } interrupo

ISR1
Amostragem Processamento Atuao

Ao nvel de uma tarefa (standard)

Tarefa1
inicializao da ISR1 while (1) {
amostragem processamento actuao sleep ( )

Device driver
interrupo signal

ISR1 Device driver


23

DETI - STR 12/13

Executivos Multi-Tarefa
Classificao dos SOs e Executivos relativamente s garantias temporais No Tempo-Real (time-sharing) (e.g., Unix, Linux, Windows NT, seguem modelo transformacional)

No possvel majorar o tempo de resposta a um evento (e.g., devido a swapping, bloqueio no acesso a perifricos, escalonamento que favorece a distribuio equitativa do CPU)

Soft Real-Time (e.g. OS9, alguns servios do Linux/Windows)

Usam tcnicas de tempo-real (excluso de memria virtual, mecanismos de IPC rpidos e com bloqueios reduzidos, chamadas ao sistema curtas) mas no oferecem garantias temporais (tipo best-effort)

Hard Real-Time (e.g. SHaRK, RTLinux, QNX, VxWorks, ...)

Oferecem garantias temporais


24

DETI - STR 12/13

Controlo lgico e controlo temporal

Controlo lgico

Controlo do fluxo de programa, i.e., sequncia efetiva das operaes a ser executadas (e.g., descrito atravs de um fluxograma) fundamental para se determinar C (WCET)

Controlo temporal

Controlo dos instantes de execuo das operaes do programa (e.g., disparo de atividades, verificao do cumprimento de restries temporais,...)

DETI - STR 12/13

25

Controlo temporal
Disparo de atividades (funes)

Por tempo (time-triggered)

A execuo de atividades (funes) disparada por intermdio de um sinal de controlo baseado na progresso do tempo (e.g., atravs de uma interrupo peridica).

Por eventos (event-triggered)

A execuo de atividades (funes) disparada por intermdio de um sinal de controlo assncrono baseado na alterao do estado do sistema (e.g., atravs de uma interrupo externa).

DETI - STR 12/13

26

Controlo temporal
Sistemas disparados por tempo time-triggered (TT) systems

Tpicos em aplicaes de controlo (amostragem de variveis contnuas). Existe uma referncia temporal comum (permite estabelecer uma relao de fase) Taxa de utilizao do CPU constante mesmo quando no h variaes no estado do sistema.

Situao de pior caso bem definida

DETI - STR 12/13

27

Controlo temporal
Sistemas disparados por eventos event-triggered (ET) systems

Tpicos na monitorizao de condies espordicas no estado do sistema (e.g., verificao de alarmes ou de solicitaes assncronas). Taxa de utilizao do sistema computacional (e.g. CPU) varivel consoante a frequncia de ocorrncia de eventos.

Situao de pior caso mal definida


ou se utilizam argumentos probabilsticos ou se impe uma limitao mxima taxa de eventos

DETI - STR 12/13

28

Controlo temporal

Exemplo

Considere os seguintes conjuntos de tarefas e calcule o atraso mximo que cada tarefa pode sofrer:

TT {i = i (Ci=1, i=i, Ti=5, Di=Ti i=1..5)} ET {i = i (Ci=1, (i=0), miti=5, Di=miti i=1..5)}

Determine tambm a taxa mdia e mxima de utilizao de CPU para ambos os casos, considerando no caso mdio que as tarefas ET so ativadas em mdia de 100 em 100 unidades de tempo. Nota: a taxa de utilizao de CPU dada por:
N

U =
i=1

Ci Ti

DETI - STR 12/13

29

Resumo da Aula 2

Modelos computacionais (modelo de tempo-real) Tarefas de tempo-real: peridicas, espordicas e aperidicas Restries temporais do tipo deadline, janela, sincronismo e distncia Implementao de tarefas e utilizao de um kernel multitasking Controlo lgico e controlo temporal Tarefas event-triggered e time-triggered

DETI - STR 12/13

30

Você também pode gostar