9

Click here to load reader

Rtai sched

Embed Size (px)

DESCRIPTION

POLÍTICAS DE ESCALONAMENTO

Citation preview

Page 1: Rtai sched

RTAIPolíticas de Escalonamento

Walter Fetter [email protected]

Universidade Federal do Rio Grande do Sul

Escola de Engenharia

Departamento de Engenharia Elétrica

ENG04008 Sistemas de Tempo Real

Copyright (c) Walter Fetter Lages – p.1

Page 2: Rtai sched

Políticas de Escalonamento

• Independentemente da política, o escalonamentodo RTAI é preemptivo e baseado em prioridades• A tarefa de maior prioridade executa• As tarefas de menor prioridade são

bloqueadas• Tarefas de menor prioridade são

"preemptadas"caso uma tarefa de prioridademaior seja liberada

• A política de escalonamento pode ser selecionadapor tarefa

Copyright (c) Walter Fetter Lages – p.2

Page 3: Rtai sched

Políticas Suportadas

• First-in first-out (FIFO)• Round robin(RR)• Rate monotonic(RMS)• Deadline monotonic(DMS)• Earliest deadline first(EDF)

Copyright (c) Walter Fetter Lages – p.3

Page 4: Rtai sched

First-in Fitst-out

• É a políticadefault• As tarefas apenas são "preemptadas"por tarefas

de maior prioridade• As demais tarefas com a mesma prioridade da

tarefa executando, só executam quando estaliberar a CPU

Copyright (c) Walter Fetter Lages – p.4

Page 5: Rtai sched

Round Robin

• Só está disponível se for habilitada naconfiguração do RTAI

• As tarefas podem ser "preemptadas"por tarefas demaior prioridade ou por tarefas de mesmaprioridade quando oquantumexpirar

• Pode ser atribuída a cada tarefa através da funçãort_set_sched_policy(RT_TASK *task,int policy,

int rr_quantum_ns)

• A política pode serRT_SCHED_FIFO ouRT_SCHED_RR

• rr_quantum_ns=0 utiliza o tick do Linux

Copyright (c) Walter Fetter Lages – p.5

Page 6: Rtai sched

Rate Monotonic

• Pode ser vista como um caso particular dapolítica FIFO• Apenas uma tarefa em cada nível de

prioridade• Prioridade maior atribuída a tarefas com o

menor período• Quando se utiliza criação dinâmicas de tarefas

pode ser complicado garantir que existe apenasuma tarefa em cada nível de prioridade• Pode-se utilizar a funçãort_spv_RMS(cpu) para forçar que asprioridades estejam corretamente atribuídas

Copyright (c) Walter Fetter Lages – p.6

Page 7: Rtai sched

Deadline Monotonic

• Também pode ser vista como um caso particularda política FIFO• Apenas uma tarefa em cada nível de

prioridade• Prioridade maior atribuída a tarefas com o

menordeadline• Ao contrário darate monotonicnão existe

função do RTAI para auxiliar• O deadlinedas tarefas não é informado ao

sistema na criação das tarefas

Copyright (c) Walter Fetter Lages – p.7

Page 8: Rtai sched

Earliest Deadline First

• É escalonada a tarefa que tem odeadlinemaispróximo

• O escalonador precisa saber quando a tarefadeverá ser liberada novamente e odeadline

• Para tanto, ao invés dert_task_wait_period(), utiliza-se afunçãovoid rt_task_set_resume_end(RTIME resume_time,

RTIME end_time);

• Seresume_time eend_time foremnegativos, são interpretados como relativos aosvalores anteriores

Copyright (c) Walter Fetter Lages – p.8

Page 9: Rtai sched

Tarefas com Políticas Diferentes

• É possível misturar tarefas com políticasdiferentes no mesmo sistema

• FIFO, RR, RMS e DMS podem ser misturadassem problemas desde que o usuário garanta queas prioridades serão atribuídas de forma coerentecom o efeito desejado.

• EDF não é baseada em prioridade, portanto ainteração com tarefas com as outras políticas nãoé tão uniforme• O RTAI escalona tarefas EDF com maior

prioridade que as demais• Tarefas EDF executam antes das demais

quando o instante de liberação expiraCopyright (c) Walter Fetter Lages – p.9