Escolar Documentos
Profissional Documentos
Cultura Documentos
Adaptado dos slides desenvolvidos pelo Prof. Doutor Lus Almeida para a disciplina Sistemas de Tempo-Real
DETI - STR 12/13 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
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
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.
Modelo de tempo-real
Quanto periodicidade as tarefas podem ser
peridicas
J1 T
J2 tempo
espordicas
J1 mit mit
J2
J3 tempo
aperidicas
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
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)
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.
Modelo de tempo-real
Com preempo
Tarefa1 Tarefa2
Maior prioridade
Sem preempo
Tarefa1 Tarefa2
Maior prioridade
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!
10
Modelo de tempo-real
Evento de ativao Execuo
Deadline
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
11
Modelo de tempo-real
Evento de ativao
Janela
an
fn
an+1
fn+1
an+2
fn+2
Dmin
Dmax
Dmin
Dmax
Dmin
Dmax
12
Modelo de tempo-real
Evento de ativao Gerao de eventos de sada
Sincronismo
t 1 n t2 n
t1n+1 t2n+1
t1n+2 t2n+2
an
Dsinc
an+1
Dsinc
an+2
Dsinc
13
Modelo de tempo-real
Eventos de ativao
an
fn
an+1
fn+1
an+2
fn+2 an+3
fn+3
an+4
distn distmax
distn+1
distn+2
distmax distmax
14
Modelo de tempo-real
Exemplo de caracterizao de tarefas:
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)
15
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).
16
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)
17
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.
18
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.
19
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.
20
Executivos Multi-Tarefa
A programao de aplicaes com recurso a estruturas de SW tipo Sistema Operativo ou Executivo permite:
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
Executivos Multi-Tarefa
O processamento associado a uma dada atividade pode ser efetuado:
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
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
22
Executivos Multi-Tarefa
Tarefa1
Processamento: Ao nvel de uma ISR (no standard) inicializao da ISR1 while (1) { } interrupo
ISR1
Amostragem Processamento Atuao
Tarefa1
inicializao da ISR1 while (1) {
amostragem processamento actuao sleep ( )
Device driver
interrupo signal
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)
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)
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,...)
25
Controlo temporal
Disparo de atividades (funes)
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).
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).
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.
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.
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
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
30