82
Escalonamento de Escalonamento de Sistemas de Tempo Sistemas de Tempo Real Real Sergio Cavalcante Centro de Informática – UFPE [email protected] [email protected] Assunto: [str] 88350950 34254714

Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE [email protected]@cin.ufpe.br Assunto: [str] 8835095034254714

Embed Size (px)

Citation preview

Page 1: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Escalonamento de Escalonamento de Sistemas de Tempo RealSistemas de Tempo Real

Sergio CavalcanteCentro de Informática – UFPE

[email protected] [email protected]

Assunto: [str]

88350950 34254714

Page 2: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 2

SE::P & A::Sw::STR:: Conceitos BásicosSE::P & A::Sw::STR:: Conceitos Básicos

CriticidadeCriticidadeSistema de tempo real crítico (Hard real-time system)

• Todas as tarefas têm Hard Deadline

– Perda do deadline pode ter conseqüências catastróficas

• É necessário garantir requisitos temporais ainda durante o projeto

• Exemplo: usina nuclear, industria petroquímica, mísseis

Sistema de tempo real não crítico (Soft real-time system)

• O requisito temporal descreve apenas o comportamento desejado

• Perda do deadline não tem conseqüências catastróficas

• Existe interesse em terminar a tarefa mesmo com atraso

• Exemplo: início de gravação de vídeo-cassete

Page 3: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 3

SE::P & A::Sw::STR:: Conceitos BásicosSE::P & A::Sw::STR:: Conceitos Básicos

CriticidadeCriticidade

Deadline Firm

• Perda do deadline não tem conseqüências catastróficas

• Não existe valor em terminar a tarefa após o deadline

• Exemplo: ler o valor da temperatura

Page 4: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 4

SE::P & A::Sw::STR:: Conceitos BásicosSE::P & A::Sw::STR:: Conceitos Básicos

Modelagem das TarefasModelagem das Tarefas

• Periodicidade

– Tarefas Aperiódicas

• São disparadas em intervalos imprevisíveis de tempo

• Não garantem escalonabilidade

– Tarefas Esporádicas

• É conhecido o intervalo mínimo entre execuções (inter-arrival time)

– Tarefas Periódicas

• Devem ser executadas em intervalos regulares de tempo

Page 5: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 5

SE::P & A::Sw::STR:: Conceitos BásicosSE::P & A::Sw::STR:: Conceitos Básicos

Modelagem das TarefasModelagem das Tarefas

• Deadline – Tempo máximo para término de uma tarefa

• Release-time – Tempo mínimo para início de uma tarefa

• Tempo de execução: considera o pior caso

– WCET – Worst-Case Execution Time

Page 6: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 6

SE::P & A::Sw::STR:: Conceitos BásicosSE::P & A::Sw::STR:: Conceitos Básicos

Modelagem das TarefasModelagem das Tarefas

• Folga (slack) = deadline – liberação – tempo de execução

• Atraso = MÁX( 0, conclusão – deadline)

deadlineChegada(arrival)

Liberação(release)

Início(start time)

Conclusão(end time)

tempo de execução(execution time)

atraso na liberação(release jitter)

tempo

Tempo de resposta (response time)

Page 7: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 7

SE::P & A::Sw::STR:: ConceitosSE::P & A::Sw::STR:: Conceitos::::Modelagem das Modelagem das TarefasTarefas

Tarefas PeriódicasTarefas Periódicas

A1

tempo

P

D

a1 r1 s1 e1 d1

A2

P

D

a2=r2 s2 e2 d2

J1

Page 8: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 8

SE::P & A::Sw::STR:: ConceitosSE::P & A::Sw::STR:: Conceitos::::Modelagem das Modelagem das TarefasTarefas

Tarefas EsporádicasTarefas Esporádicas

E1

tempo

minIT

D

a1 s1 e1 d1

E2

minIT

D

a2=s2 e2 d20

evento1evento2

Page 9: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 9

EscalonamentoEscalonamento

• Define a ordem ou escala de execução das tarefas, a partir de um algoritmo ou política de escalonamento.

Page 10: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 10

Características de Características de EscalonamentoEscalonamento• Justiça (fairness)

– Todos os processos têm chances iguais de uso dos processador

• Eficiência– O objetivo é manter o processador 100% ocupado

• Tempo de Resposta– Tempo entre a requisição da ação e a obtenção do resultado

• Throughput– Número de tarefas por unidade de tempo

Page 11: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 11

EscalonamentoEscalonamento

• Preemptivo ou não preemptivo– Permite ou não a preempção de tarefas

• Estático– Quando a ordem de execução toma como base

parâmetros definidos em tempo de projeto

• Dinâmico– Quando a ordem de execução toma como base

parâmetros definidos em tempo de execução

Page 12: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 12

EscalonamentoEscalonamento

• Offline– Quando a escala é definida em tempo de projeto

• Online– Quando a escala é definida em tempo de execução

Obviamente é impossível ter um algoritmo que seja offline dinâmico. As demais combinações são possíveis.

Page 13: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 13

EscalonamentoEscalonamento

• Um algoritmo de escalonamento é dito ótimo quando consegue encontrar uma solução sempre que uma exista, ou ainda, se no caso de qualquer outro algoritmo encontrar uma solução, o primeiro também consegue encontrá-la.

Page 14: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 14

Teste de EscalonabilidadeTeste de Escalonabilidade

• Permite dizer se um conjunto de tarefas conhecido é escalonável por um determinado algoritmo de escalonamento.

Page 15: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 15

Voltando à Hipótese de CargaVoltando à Hipótese de Carga

• Carga Estática ou Limitada– Conhecemos a carga a priori

– Permite obter garantia de escalonamento em tempo de projeto. O sistema é determinístico.

• Carga Dinâmica ou Ilimitada– Não permite garantias em tempo de projeto

– Implica na existência de tarefas aperiódicas

Page 16: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 16

Abordagens deMelhor Esforço

Abordagens com Garantiaem Tempo de Projeto

ExecutivoCíclico

Dirigido aPrioridades

TécnicasAdaptativas

Abordagens comGarantia Dinâmica

SE::P & A::Sw::STR SE::P & A::Sw::STR

EscalonamentoEscalonamento

Métodos de Escalonamento

Page 17: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 17

SE::P & A::Sw::STR::EscalonamentoSE::P & A::Sw::STR::EscalonamentoGarantia Dinâmica e de Melhor EsforçoGarantia Dinâmica e de Melhor Esforço• Não existe garantia que os deadlines serão cumpridos

• Sempre que uma tarefa é ativada ocorre uma análise da sua escalonabilidade

• Passível de sofrer sobrecarga

• Capaz de fornecer análise probabilística– Simulação, teoria das filas de tempo real, etc

• Algumas abordagens oferecem Garantia Dinâmica– Garante o deadline (ou não) no início da ativação

Page 18: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 18

SE::P & A::Sw::STR::EscalonamentoSE::P & A::Sw::STR::EscalonamentoGarantia Dinâmica e de Melhor EsforçoGarantia Dinâmica e de Melhor Esforço

Descarte de Tarefas na Sobrecarga • As tarefas executadas cumprem o deadline

• Mais apropriado para tarefas com deadline firm

• Pode cancelar ativações individuais ou tarefas completas

• Objetivo é maximizar o número de tarefas executadas

• Tarefas podem ter importância (peso) diferentes

– Maximiza o somatório dos pesos das tarefas executadas

• Abordagem semelhante: aumenta o período das tarefas

Page 19: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 19

SE::P & A::Sw::STR::EscalonamentoSE::P & A::Sw::STR::Escalonamento

Garantia Dinâmica e de Melhor EsforçoGarantia Dinâmica e de Melhor Esforço

Perda de deadlines na sobrecarga• Em sobrecarga ATRASA algumas tarefas

• Possui uma função que indica o valor de cada tarefa em função do seu instante de conclusão (time-value function)

• Objetivo é maximizar o valor total do sistema (somatório de todas as tarefas)

d0

valor

Tempo de Resposta

Page 20: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 20

SE::P & A::Sw::STR::EscalonamentoSE::P & A::Sw::STR::Escalonamento

Garantia Dinâmica e de Melhor EsforçoGarantia Dinâmica e de Melhor EsforçoRedução da Precisão na Sobrecarga• Em sobrecarga diminui a precisão de algumas tarefas

• Objetivo é fazer o possível dentro do tempo disponível

• Exemplos:

– Ignorar bits menos significativos de cada pixel

– Trabalhar com amostras de áudio menos precisas

– Alterar resolução e tamanho de imagem na tela

– Simplificar animações

– Usar algoritmos de controle mais simples

– Interromper pesquisa em algoritmos de inteligência artificial

Page 21: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 21

Sistemas de Prioridade Dinâmica

• Earliest-Deadline-First (EDF)– Escalonamento preemptivo de prioridade dinâmica

– O deadline é calculado quando a tarefa é disparada.

– O escalonador põe para executar a tarefa com menor deadline

• Least Slack Scheduling– Escalonamento não-preemptivo de prioridade dinâmica

– A tarefa com menor sobra (slack) tem maior prioridade

SE::P & A::Sw::STR::EscalonamentoSE::P & A::Sw::STR::Escalonamento

Garantia Dinâmica e de Melhor EsforçoGarantia Dinâmica e de Melhor Esforço

Page 22: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 22

Abordagens deMelhor Esforço

Abordagens com Garantiaem Tempo de Projeto

ExecutivoCíclico

Dirigido aPrioridades

TécnicasAdaptativas

Abordagens comGarantia Dinâmica

SE::P & A::Sw::STR SE::P & A::Sw::STR

EscalonamentoEscalonamento

Métodos de Escalonamento

Page 23: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 23

Garantia em Tempo de ProjetoGarantia em Tempo de Projeto

• Para obter garantias em tempo de projeto é necessário ser possível realizar um teste de escalonabilidade em tempo de projeto.

• Para isso é necessário:

– Conhecimento completo das tarefas e do método de implementação em tempo de projeto.

– Que a carga seja estática.

Page 24: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 24

STR::EscalonamentoSTR::Escalonamento

Abordagens com Garantia em ProjetoAbordagens com Garantia em Projeto

• Vantagens

– Determina em projeto que todos os requisitos temporais serão cumpridos

– Necessário para aplicações críticas

• Desvantagens

– Necessário conhecer exatamente a carga

– Necessário reservar recursos para o pior caso

– Difícil determinar o pior caso em soluções off- the- shelf

– Gera enorme subutilização de recursos

Page 25: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 25

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Time-Driven Systems: Executor CíclicoTime-Driven Systems: Executor Cíclico

Função 1

Função 2

Função 3

Função 4

Disp. E/S

Disp. E/S

ExecutorCíclico

Interrupçãodo Timer

• Arquitetura de Software

Page 26: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 26

STR::Escalonamento::Garantia em ProjetoSTR::Escalonamento::Garantia em Projeto

Modelos de ImplementaçãoModelos de Implementação

• Time-driven systems (Executivos Cíclicos)– O teste de escalonabilidade é a própria escala que é definida

em tempo de projeto.

– O executivo cíclico simplesmente põe as tarefas em execução segundo o tempo e a ordem definidas em tempo de projeto.

– Não existe outra fonte de eventos além do timer interno.

– É um escalonamento offline estático.

Page 27: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 27

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Time-Driven SystemsTime-Driven Systems

Executor Cíclico

• Tarefas são arranjadas numa lista que define a ordem e tempo de execução de cada uma.

• A busca por esta ordem é, em geral, realizada por um algoritmo de busca em árvore.

• São utilizadas heurísticas para limitar a busca, embora possa resultar na busca de todas as combinações possíveis (NP-completo).

Page 28: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 28

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Time-Driven SystemsTime-Driven Systems

Executor Cíclico• Cada tarefa é posta em execução nos momentos definidos na

lista do escalonamento, segundo o temporizador (timer) do sistema.

• Apenas tarefas periódicas podem ser escalonadas.

• O ciclo completo é o Mínimo Múltiplo Comum dos períodos de todas as tarefas.

• A lista é executada repetidamente, caracterizando ciclos de execução.

Page 29: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 29

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Time-Driven Systems: Time-Driven Systems: Exemplo 1Exemplo 1• Considere 4 funções com as seguintes características:

– Função 1: ciclo de 50Hz (20ms)

– Função 2: ciclo de 25 Hz (40ms)

– Função 3: ciclo de 12,5 Hz (80ms)

– Função 4: ciclo de 6,25Hz (160ms)

Ciclo Principal (160ms) Ciclo Principal (160ms)

10ms

Page 30: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 30

STR:: ConceitosSTR:: Conceitos::::Modelagem das TarefasModelagem das Tarefas

Relações entre tarefasRelações entre tarefas

• Relações entre tarefas– Precedência: XY

• A tarefa X deve terminar antes de Y começar

– Exclusão mútua: XY• As tarefas X e Y não podem executar simultaneamente

– Co-execução: X||Y• As tarefas X e Y têm que executar simultaneamente

– Preempção: XY• A tarefa X é interrompida para que Y possa executar e, após o

término de Y, a tarefa X continua a executar

Page 31: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 31

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Time-Driven Systems: Time-Driven Systems: Exemplo 2Exemplo 2

20 50

0 50

10 60 70

C ( = 20) D ( = 20)

A ( = 20)

Relations: A C B C

Processor1

Processor2

40 80

20

30

d’Ar’A

d’B d’C d’Dr’C r’B, r’D

B ( = 20)cB cCcD

cA

20 50

0

10 60 70

B ( = 20)C ( = 20) D ( = 20)

A ( = 20)

Relations: C A B C

Processor1

Processor2

40 80

30

30

d’Ar’A

d’B d’Dr’C d’Cr’,BD

cBcCcD

cA

50

r’

Page 32: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 32

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Time-Driven Systems: Time-Driven Systems: Exemplo 3Exemplo 3

Relations: A B, B C, C D

Relations: B A, B C, C D

20 60 70

1

2

9540 100

4025

d’C

d’D

r’C

r’A d’A r’D

0

r’B

5

d’Er’E

45 55

D

80

E

60

d’B

C

B

70

2

95

4525

d’C

d’D

r’C

r’,A r’D

0

r’B

5

d’Er’Ed’A

45 55 80

60

d’B

25

C

EDA B

75

A

Relations: A B, B C, C D

Relations: B A, B C, C D

20 60 70

1

2

9540 100

4025

d’C

d’D

r’C

r’A d’A r’D

0

r’B

5

d’Er’E

45 55

D

80

E

60

d’B

C

B

70

2

95

4525

d’C

d’D

r’C

r’,A r’D

0

r’B

5

d’Er’Ed’A

45 55 80

60

d’B

25

C

EDA B

75

A

Page 33: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 33

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Tarefa 1

Tarefa 2

Tarefa 3

Tarefa 4

Disp. Entrada

Interrupçãodo Timer

Recurso 1

Recurso 2

Atuador

Disp. SaídaSensor

Arquitetura de Software

Page 34: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 34

STR::Escalonamento::Garantia em ProjetoSTR::Escalonamento::Garantia em Projeto

Modelos de ImplementaçãoModelos de Implementação

• Event-driven systems– É feito um teste escalonabilidade em tempo de projeto, mas a

escala propriamente dita é feita em tempo de execução.

– A definição da escala obedece às prioridades das tarefas.

– A ordem real de execução é regida por eventos (externos ou do timer) e pelas prioridades das tarefas.

Page 35: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 35

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven SystemsEscalonamento Rate-Monotonic (RMS)

– Escalonamento preemptivo de prioridade fixa.

– Quanto menor o período maior a prioridade de uma tarefa.

– Tarefas periódicas e independentes (sem relação de precedência, exclusão, etc).

– Os deadlines coincidem com os períodos.

– Tempo de mudança de contexto é considerado nulo.

– É ótimo, ou seja, nenhum outro método é melhor que este com estas condições.

Que tipo de escalonamento é este?

É um escalonamento online estático.

Page 36: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 36

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Análise de Escalonabilidade para oEscalonamento Rate-Monotonic (RMS)

• Este é um Teste suficiente mas não necessário.

• Notação: Para uma Tarefa Ti, temos que:

Pi: Período

Mini: Intervalo Mínimo entre Requisições (tarefas esporádicas)

Ci: Tempo de Computação

Di: Deadline

• Ui = Utilização do Processador por uma tarefa Ti

– Ui = Ci/Pi, se Ti é periódica

– Ui = Ci/Mini, se Ti é esporádica

Page 37: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 37

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Análise de Escalonabilidade para o Escalonamento Rate-Monotonic (RMS)

• Um conjunto de n tarefas periódicas independentes escalonadas pelo RMS sempre obedecerá o seu deadline se:

ou

onde, U(n) é o limite de utilização para n processos.

Para n U(n) 0,6993147... 69,93147%

12...1

1

1 n

n

n nnU PC

PC

121

1

nnPCnU

n

ii

Page 38: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 38

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Análise de Escalonabilidade para o Escalonamento Rate-Monotonic (RMS)

• Exemplo:

• As tarefas são escalonáveis pelo RMS.

Tarefas Pi Ci Prii Ui

TA 100 20 1 0,200

TB 150 40 2 0,267

TC 350 100 3 0,286

779,012312753,0286,0267,0200,0 311

nn

Page 39: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 39

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Análise de Escalonabilidade para o Escalonamento Rate-Monotonic (RMS)

• Exemplo:Tarefas Pi Ci Prii Ui

TA 100 20 1 0,200

TB 150 40 2 0,267

TC 350 100 3 0,286

Page 40: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 40

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Análise de Escalonabilidade para oEscalonamento Rate-Monotonic (RMS)

• U(n) = 1,0 se o conjunto de tarefas é harmônico– Um conjunto de tarefas é harmônico se os períodos de todas as

tarefas são múltiplos ou sub-múltiplos entre si

• U(n) = 0,88 na média de tarefas randômicas

Page 41: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 41

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven SystemsEscalonamento Earliest-Deadline First (EDF)

– Escalonamento preemptivo de prioridade dinâmica.

– Quanto mais próximo o deadline maior a prioridade de uma tarefa.

– Tarefas periódicas e independentes (sem relação de precedência, exclusão, etc).

– Os deadlines coincidem com os períodos (Di = Pi).

– Tempo de mudança de contexto é considerado nulo.

– É ótimo, ou seja, nenhum outro método é melhor que este com estas condições.

Que tipo de escalonamento é este?

É um escalonamento online dinâmico.

Page 42: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 42

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Análise de Escalonabilidade para o EDF

• Este é um Teste suficiente e necessário.

11

n

iiP

CnU

Page 43: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 43

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

1150252010 U

Análise de Escalonabilidade para o EDF

Page 44: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 44

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Problemas do EDF

1. Quando o sistema está com sobrecarga (overloaded) o conjunto de processos que perde seu deadline é altamente imprevisível: é uma função dos deadlines no momento em que ocorre a sobrecarga.

2. É muito difícil de implementar em hardware.

3. É difícil representar deadlines em poucos bytes para calcular deadlines relativos ao instante atual. Se for usada aritmética modular, as variáveis que armazenam os deadlines futuros devem acomodar um valor no mínimo do ((maior tempo esperado para o término} * 2) + “agora").

4. Assim, EDF não é muito usado em sistemas industriais.http://en.wikipedia.org/wiki/

Earliest_deadline_first_scheduling

Page 45: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 45

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven SystemsEscalonamento Deadline-Monotonic (DMS)

– Semelhante ao RMS, mas os deadlines podem ser menores ou iguais aos períodos

– Quanto menor o deadline da tarefa maior sua prioridade

– Os deadlines são fixos e relativos aos começos dos períodos.

Que tipo de escalonamento é este?

É um escalonamento online estático.

Page 46: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 46

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Análise de Escalonabilidade para oEscalonamento Deadline-Monotonic (DMS)

• Este é um Teste Exato.

• Notação: Para uma Tarefa Ti, temos que:

Pi: Período

Ci: Tempo de Computação

Di: Deadline

Prii: Prioridade

Ri: Tempo de Resposta

Ii: Interferência

• Calcula o tempo de resposta no pior caso e compara ao deadline

• Se Ri < Di Ti, o teste é válido.

Page 47: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 47

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Análise de Escalonabilidade para oEscalonamento Deadline-Monotonic (DMS)

• Para a tarefa T1, a mais prioritária:

R1 = C1

• As demais sofrem interferência das que tem prioridade maior

Neste caso, Ri = Ci + Ii

• Interferência é máxima a partir do Instante Crítico– Instante onde todas as tarefas são liberadas simultaneamente

Page 48: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 48

Análise de Escalonabilidade para oEscalonamento Deadline-Monotonic (DMS)

Interferência entre tarefas

Seja Tj uma tarefa com prioridade maior que Ti

– Quantas vezes Tj pode acontecer durante a execução de Ti ?

Ri/Tj

– Qual a interferência total de Tj sobre Ti ?

Ri/Tj x Cj

– Qual a interferência total sobre Ti ?

Ii = ∑ Ri/Tj x Cj, onde Prij>Prii

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Page 49: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 49

Análise de Escalonabilidade para oEscalonamento Deadline-Monotonic (DMS)

O tempo máximo de resposta de Ti é Ri = Ci + Ii

Ri = Ci + ∑ Ri/Tj x Cj

O cálculo é feito recursivamente em iterações sucessivas, até:– Tempo de resposta passar do deadline (falha)

– Resultado convergir, ou seja, iteração x+1 igual a iteração x

Wix+1 = Ci + ∑ Wi

x/Tj x Cj, onde Wi0= Ci

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Page 50: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 50

Exemplo

T1 T2 T3

P1=7 P2=12 P3=20

C1=3 C2=3 C3=5

Pri1=1 Pri2=2 Pri3=3

Resposta:

R1 = 3 R2 = 6 R3 = 20

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Page 51: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 51

Atrasos na Liberação das Tarefas:Suponha uma tarefa liberada por evento externo

– Eventos podem ser amostrados periodicamente

– Sinalização do evento pode ter atraso variável

– Release Jitter Ji: Atraso máximo na liberação da tarefa

– A fórmula do tempo de resposta se torna:

Ri = Ji + Wi, onde Wi = Ci + ∑ (Wi+Jj)/Tj x Cj

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Page 52: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 52

Deadlines Arbitrários: deadline pode ser maior que o período

– Podem ocorrer Interferências Internas:Uma ativação anterior da tarefa interfere nela mesma

– Dada uma ativação de uma tarefa, se ela pode sofrer interferência de q ativações anteriores dela mesma, a fórmula se torna:

Onde q.Ci é a interferência interna que a instância atual sofre no tempo Wi(q) e o tempo de resposta desta será:

Ri(q) = Wi(q) – q.Pi

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

j

j j

iii C

P

qWCqqW .1

Page 53: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 53

Deadlines Arbitrários: deadline pode ser maior que o período

– Para se obter o tempo de resposta máximo Ri de Ti, deve-se inspecionar todos as instâncias (q = 0, 1, 2, ...) até que:

– Considerando a ocorrência de Jitter, fica:

– O sucesso do teste de escalonabilidade continua sendo:

Di ≤ Ri, i

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

qRRePqqW i0,1,2,...q

iii

max ,.1

Page 54: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 54

Deadlines Arbitrários. Exemplo:

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Page 55: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 55

Deadlines Arbitrários. Exemplo:

• Para q = 0, fica:

e o R3(0) = 25. Como R3(0) = 25 > P3 = 20, temos que continuar o teste,

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Page 56: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 56

Deadlines Arbitrários. Exemplo:

Para q = 1, fica:

e R3(1) = W3(1) – P3 = 10

Como W3(1) = 30 < 2.P3 = 40, podemos parar o teste.

e Ri = max(25, 10) = 25 < Di = 40, o conjunto é escalonável!

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Page 57: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 57

Deadlines Arbitrários. Exemplo:

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Page 58: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 58

Compartilhamento de Recursos: Bloqueios

• Ocorrem devido às relações de exclusão mútua

• Suponha T1 e T2, sendo T1 com maior prioridade

– Se T2 fica bloqueada esperando por T1

Ok, T1 tem mesmo prioridade superior

– Se T1 fica bloqueada, esperando por T2

Cálculo do tempo de resposta deve incluir a espera máxima Bi

Ri = Ji + Wi

Wi = Ci + Bi + ∑ (Wi+Jj)/Tj x Cj

STR::Escalonamento::Garantia em Projeto STR::Escalonamento::Garantia em Projeto

Event-Driven SystemsEvent-Driven Systems

Page 59: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 59

Compartilhamento de RecursosCompartilhamento de Recursos

• Seções Críticas e Inversão de Prioridades

Executando em SC

Pedido de entrada em SC

Tarefas menos prioritárias impedem a execução de T1

3

Page 60: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 60

Compartilhamento de RecursosCompartilhamento de Recursos

• Este comportamento é denominado de inversão de prioridade.– Tarefas menos prioritárias bloqueiam as mais

prioritárias por estarem utilizando um recurso compartilhado.

Page 61: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 61

Compartilhamento de RecursosCompartilhamento de Recursos

• Este comportamento é denominado de inversão de prioridade.– Tarefas menos prioritárias bloqueiam as mais

prioritárias por estarem utilizando um recurso compartilhado.

– Problemas

• Tarefas mais prioritárias podem ficar um longo período de tempo bloqueadas.

– Tarefas intermediárias vão provocar sucessivas preempções na tarefa em sessão crítica.

• Como resolver isso?

Page 62: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 62

Compartilhamento de RecursosCompartilhamento de Recursos

• Algoritmos mais comuns:– Protocolo Herança de Prioridade

– Protocolo de Prioridade Teto

Page 63: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 63

Protocolo Herança de Prioridade Protocolo Herança de Prioridade (PHP)(PHP)

Tarefas possuem duas prioridades:

• Prioridade nominal ou estática– Definidas no RMS, DMS, etc.

• Prioridade dinâmica ou ativa– Derivadas das ações de bloqueio que ocorrem no sistema.

Page 64: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 64

Protocolo Herança de Prioridade Protocolo Herança de Prioridade (PHP)(PHP)

Funcionamento:

• Tarefas são escalonadas pela sua prioridade estática enquanto não existir recurso bloqueado.

• Quando existe recurso bloqueado, a tarefa em sessão crítica herda a maior prioridade entre as tarefas mais prioritárias bloqueadas na seção.

Page 65: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 65

Protocolo Herança de Prioridade Protocolo Herança de Prioridade (PHP)(PHP)

Executando em SC

Pedido de entrada em SC

Herda Prioridade P1Fim de Execução da Sessão Crítica

Entrada em SC

3

BloqueioBloqueio

Page 66: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 66

Protocolo Herança de Prioridade Protocolo Herança de Prioridade (PHP)(PHP)

No PHP um tarefa pode sofrer três tipos de bloqueios

• Bloqueio direto– (Pri1 > Pri2) e compartilham recursos.

– T2 bloqueia T1.

• Bloqueio por herança– (Pri1 > Pri2 > Pri3) e compartilham recursos.

– T3 bloqueia T1 e conseqüentemente T3 bloqueia T2.

• Bloqueio transitivo– T1 bloqueia T2. T2 bloqueia T3. T1 bloqueia T3.

Page 67: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 67

Identifique os BloqueiosIdentifique os Bloqueios

Bloqueio DiretoBloqueio Direto

Bloqueio HerançaBloqueio Herança

Bloqueio HerançaBloqueio Herança

3

Page 68: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 68

Identifique os BloqueiosIdentifique os Bloqueios

Bloqueio TransitivoBloqueio Transitivo

Bloqueio DiretoBloqueio Direto

Bloqueio TransitivoBloqueio Transitivo

2

Page 69: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 69

Protocolo Herança de Prioridade Protocolo Herança de Prioridade (PHP)(PHP)

Teste de Escalonabilidade.– Similar aos anteriores, mas leva em consideração

o bloqueio máximo (Bi) de cada tarefa.

– Bi = maior sessão crítica que bloqueia Ti.

Page 70: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 70

Protocolo Herança de Prioridade Protocolo Herança de Prioridade (PHP)(PHP)

Tar. Periódicas

Período T. de Computação

Bi Prioridade RM

Tarefa A 18 6 2 1Tarefa B 20 4 4 2Tarefa C 50 10 0 3

Verificar Escalonabilidade:– Usar algoritmo Rate Monotonic.

– Bi = Blocking Time

– Use

Page 71: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 71

Protocolo Herança de Prioridade Protocolo Herança de Prioridade (PHP)(PHP)

Tar. Periódicas

Período T. de Computação

Bi Prioridade RM

Tarefa A 18 6 2 1Tarefa B 20 4 4 2Tarefa C 50 10 0 3

Page 72: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 72

Protocolo Herança de Prioridade Protocolo Herança de Prioridade (PHP)(PHP)

• Ou ainda poderíamos utilizar:

• Faça o teste usando a equação acima.

Page 73: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 73

Protocolo Herança de Prioridade Protocolo Herança de Prioridade (PHP)(PHP)

• Qual o problema do PHP?– PHP é sujeito a deadlock.

– Alguém consegue dar um exemplo?

Page 74: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 74

Protocolo Herança de Prioridade Protocolo Herança de Prioridade (PHP)(PHP)

Inicia a ExecuçãoInicia a Execução

Entra em SC1Entra em SC1

Sofre PreempçãoSofre Preempção Entra em SC2Entra em SC2 Pede para

entrar em SC1Pede para entrar em SC1

Volta a executarVolta a executar Pede para entrar em SC2Pede para entrar em SC2

Deadlock

Deadlock

Como resolver isso? Idéias?Como resolver isso? Idéias?

Page 75: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 75

Protocolo de Prioridade TetoProtocolo de Prioridade Teto

• Limita o número de bloqueios ou inversões de prioridade para evitar deadlocks.

• Dirigido para escalonamento de prioridade fixa.

• Similar ao PHP, porém corrige suas falhas.– Também trabalha com herança de prioridades.

Page 76: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 76

Protocolo de Prioridade TetoProtocolo de Prioridade Teto

Tarefas possuem duas prioridades:

• Prioridade nominal ou estática– Definidas no RMS, DMS, etc.

• Prioridade dinâmica ou ativa– Igual ao PHP.

Recursos têm uma Prioridade Teto

• Prioridade da tarefa mais prioritária que acessa o recurso

Page 77: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 77

Protocolo de Prioridade TetoProtocolo de Prioridade Teto

Funcionamento:

• Cada recurso possui uma prioridade teto (prioridade igual a da tarefa mais prioritária que pode alocar o recurso).

• Se nenhum recurso compartilhado está bloqueado, quem requisita é atendido.

• Se alguma tarefa bloqueia outra mais prioritária, a menos prioritária herda sua prioridade.

• No caso de haver recurso em uso:– Uma tarefa só acessa um recurso se sua prioridade ativa for maior

que que a prioridade teto de qualquer recurso já bloqueado.

Page 78: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 78

Protocolo de Prioridade TetoProtocolo de Prioridade Teto

Legenda para os recursosRC1 (Prioridade Teto = P1) RC2 (Prioridade Teto = P1)RC3 (Prioridade Teto = P2)

Seja P1 > P2 > P3Seja P1 > P2 > P3

P3

P2

P1

P2 P32

Page 79: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 79

Teste de Escalonabilidade no Teste de Escalonabilidade no PCP.PCP.• Mesmas fórmulas do PHP

• Só muda o conceito de bloqueio máximo (Bi).

– Duração da maior sessão crítica que pode bloquear pelo algoritmo de Teto.

Page 80: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 80

Teste de Escalonabilidade no Teste de Escalonabilidade no PCPPCP

P3

P2

P1

P2 P3

Page 81: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 81

Sistemas Operacionais de Tempo Sistemas Operacionais de Tempo RealReal

• Escalonamento preemptivo

• Escalona processos com base em prioridades (não é justo, pode provocar starvation)

• Todas as chamadas ao S.O. tem tempo máximo de execução definido e otimizado

• A mudança de contexto tem tempo limitado, conhecido (fixed overhead) e otimizado

• Tratamento de inversão de prioridade

Page 82: Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE str-l@cin.ufpe.brsvc@cin.ufpe.br Assunto: [str] 8835095034254714

Sérgio Cavalcante - CIn/UFPE Sistemas de Tempo Real 82

ReferênciasReferências

• Livro de Sistemas de Tempo RealJean- Marie Farines, Joni da Silva Fraga, Rômulo Silva de Oliveira. Escola de Computação’2000 - IME- USPhttp:// www. lcmi. ufsc. br/ gtr/ livro/ principal. Htm

• IEEE Computer Society, Technical Committee on Real- Time Systems (IEEE- CS TC- RTS)http:// www. cs. bu. edu/ pub/ ieee- rts

• The Concise Handbook Of Real-Time Systems.TimeSys Corporation, Versão 1.1, 2000.http://www.timesys.com