Sistemas de Tempo-Real. Acesso exclusivo a recursos partilhados

Documentos relacionados
Sistemas de Tempo-Real. Acesso exclusivo a recursos partilhados

Sistemas de Tempo-Real

Especificação, Modelação e Projecto de Sistemas Embutidos

Sistemas de Tempo-Real

Aula 8. Escalonamento de tarefas aperiódicas. Sistemas de Tempo-Real

Aula 9 Outros aspetos do escalonamento de tempo-real

Sistemas de Tempo-Real

SISTEMAS EMBARCADOS. Escalonamento e Tempo Real. Prof. André Schneider de Oliveira

Inversão de prioridades

Alocação de Recursos. Introdução. Sistemas de Tempo Real: Introdução. Modelo de Recursos. Modelo de Recursos. Modelo de Recursos

Alocação de Recursos. Introdução. Sistemas de Tempo Real: Introdução. Modelo de Recursos. Modelo de Recursos. Modelo de Recursos

Sistemas de Tempo-Real

Escalonamento (Scheduling)

Escalonamento (Exclusão Mútua)

Sistemas de Tempo-Real

Seções Críticas em Sistemas de Tempo Real

Algoritmos de Escalonamento II

Multiprocessadores: Exclusão Mútua em Sistemas Particionados

Conceitos básicos de Tempo Real

Escalonamento de Tarefas

Aula 3. Executivos (kernels) de tempo-real. Sistemas de Tempo-Real

Escalonamento em Sistemas de Tempo Real

Alocação de Recursos. Referências. Sistemas de Tempo Real: Introdução. Introdução. Modelo de Recursos. Modelo de Recursos

Sistemas Operacionais: Sincronização entre processos

Fundamentos de Sistemas Operacionais

Escalonamento de Tarefas em sistemas monoprocessados

RELÓGIOS. (d) Entre 101 e 99 milisegundos. (e) Entre 102 e 98 milisegundos.

Sistemas de Tempo-Real

Trincos Lógicos: Implementações. Trincos lógicos: Propriedades

Sistemas de Tempo-Real

Sistemas Operacionais

Comunicação entre Processos

Sistemas Operacionais II

Aula 5 Escalonamento usando prioridades fixas

Sistemas de Tempo-Real

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais. Escalonamento de processos

SOP - TADS Escalonamento de Processos

Aspectos Construtivos dos Sistemas Operacionais de Tempo Real

Arquitetura de Sistemas Operativos

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 3. Escalonamento

FTL066 Programação em Tempo Real Segunda Lista de Exercícios

LabSO Gerência de Processos. Retrospectiva da aula passada... Na aula passada... Na aula passada...

Aula 3. Executivos (kernels) de tempo-real. Sistemas de Tempo-Real

Execução Concorrente

Escalonamento de Processos. Estratégia de atribuição do Processador aos Processos

Aula 2 Modelos computacionais

Comunicação entre processos

RTKPIC18. Breve Manual. (Real-Time Kernel PIC18FXX8) 1. Introdução. Pedro Leite nº21526 Ricardo Marau nº Janeiro 2004

Sistemas de Tempo-Real

Algoritmos de escalonamento

3) Considerando a tabela abaixo, usando a política de atribuição de prioridades Deadline Monotonic:

Fundamentos de Sistemas Operacionais

Escalonamento da CPU

Escalonamento da CPU

Definição. ? Algoritmo de Escalonamento de CPU. ? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU

Sistemas Operacionais Aula 7

SISTEMAS OPERACIONAIS

Sistemas Operacionais

Recursos. Exemplos de recursos:

THE MARS PATHFINDER INCIDENT HOW THINGS CAN GO WRONG IN REAL TIME SYSTEMS

Gestor de Processos. Gestor de Processos

Aula 10. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Sistemas de Tempo Real

Capítulo 2 Processos e Threads

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads

Processos. Aula Passada. Aula Passada (2) Ciclos de CPU e de I/O (1)

LEIC/LERC 2008/09 Primeiro Teste de Sistemas Operativos

Sistemas Distribuídos Aula 5

Introdução aos Sistemas Operacionais. Threads

SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU

Sistemas Distribuídos Aula 7

Execução Concorrente

Sistemas Operacionais

ENADE 2011 SISTEMAS OPERACIONAIS

Escalonamento. Decidindo qual processo vai executar. Infra-estrutura de Software

Concorrência. Condições de Corrida. 5a. Tentativa. Dificuldades: Sincronização de Processos (2) Aula 11 Profa. Patrícia Dockhorn Costa

Paradigmas de Computação Paralela (UCE Computação Paralela Distribuída)

Testes de Escalonabilidade. Sérgio Campos

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 11 - Threads e Concorrência

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

Capítulo 3. Deadlocks. Recursos

Escalonamento do CPU

Unidade III Gerência de Processos

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Processos. Escalonamento de Processos

Infra-estrutura de Software. Escalonamento. Decidindo qual processo vai executar

Temporização (Scheduling) de Processos

Sistemas Operacionais

MAC422/5753 Sistemas Operacionais

Sistemas Operacionais

Conceitos Básicos dos Sistemas de Tempo Real

Sistemas de Tempo-Real

Sistemas Operativos. Objetivo. Entrega do Questionário. Exercício 1. Exercício 2. Exercício 3. Exercício 4. Grupo 1 Introdução

Processos. Escalonamento de Processos

Processos. Objetivos do Escalonamento. Políticas de Escalonamento. Algoritmos de Escalonamento. Maximizar a taxa de utilização da UCP.

Variância dos Tempos de Resposta

Transcrição:

Sistemas de Tempo-Real Aula 7 Acesso exclusivo a recursos partilhados O acesso exclusivo a recursos partilhados A inversão de prioridades como consequência do bloqueio Técnicas básicas para acesso exclusivo a recursos partilhados Herança de prioridades (Priority Inheritance Protocol PIP) Protocolo de teto de prioridades (Priority Ceiling Protocol PCP) Protocolo de pilha de recursos (Stack Resource Protocol- SRP) Adaptado dos slides desenvolvidos pelo Prof. Doutor Luís Almeida para a disciplina Sistemas de Tempo-Real Revisto em Nov/2013 por Paulo Pedreiras DETI * STR 2013/2014 1

Aula anterior (6) Escalonamento on-line com prioridades dinâmicas O critério EDF - Earliest Deadline First: limite de utilização de CPU Optimalidade de EDF e comparação com RM: nível de escalonabilidade, número de preempções, jitter de disparo e tempo de resposta Outros critérios de prioridades dinâmicas: LLF (LST) - Least Laxity (Slack) First FCFS - First Come First Served DETI * STR 2013/2014 2

Tarefas: o estado de Bloqueio Recursos partilhados com acesso exclusivo Quando uma tarefa em execução tenta aceder a um recurso partilhado (e.g. uma porta de comunicação, um buffer em memória) que está ocupado em modo exclusivo por uma tarefa pronta, a primeira diz-se que fica bloqueada. Quando o recurso é libertado, a tarefa bloqueada fica novamente pronta para execução. Recurso liberto ativação Pronta despacho Bloqueada criação Dormente preempção Execução Recurso ocupado terminação DETI * STR 2013/2014 3

O fenómeno da inversão de prioridades Num sistema de tempo real com preempção e com tarefas independentes, quando uma tarefa executa é porque detém a maior prioridade nesse instante. Contudo, quando as tarefas podem aceder em modo exclusivo a recursos partilhados, a situação pode ser diferente. Quando uma tarefa em execução fica bloqueada, a tarefa bloqueante tem menor prioridade. Quando a tarefa bloqueante (e eventualmente quaisquer outras tarefas de prioridade intermédia) executa(m) existe uma inversão de prioridades. - Prioridade + Inversão de prioridade (B 1 ) DETI * STR 2013/2014 4

O fenómeno da inversão de prioridades A inversão de prioridades é um fenómeno inevitável na presença de recursos partilhados de acesso exclusivo (intrínseco ao bloqueio) Contudo, é fundamental limitar e quantificar o seu impacto no pior caso, para que se possa raciocinar sobre a escalonabilidade do conjunto de tarefas. Assim, as técnicas usadas para garantir o acesso exclusivo a cada recurso (primitivas de sincronização) deverão permitir limitar a zona de inversão de prioridades e ser analisáveis, i.e. permitir quantificar o máximo bloqueio que cada tarefa poderá sofrer. DETI * STR 2013/2014 5

Técnicas para acesso exclusivo a recursos Primitivas de sincronização Inibição de interrupções disable / enable ou cli / sti Inibição de preempção no_preemp / preempt Utilização de locks ou flags atómicas (mutexes se bem que este termo por vezes também é usado para designar semáforos lock / unlock) Utilização de semáforos contador+lista de processos P / V ou wait / signal DETI * STR 2013/2014 6

Técnicas para acesso exclusivo a recursos Inibição de interrupções Todas as restantes atividades do sistema ficam bloqueadas! (não apenas outras tarefas mas também o atendimento a interrupções externas e, principalmente, o atendimento do tick). Esta técnica é muito fácil de implementar mas só deve ser usada com regiões críticas muito curtas (e.g. acesso a uma variável) Cada tarefa só pode ser bloqueada uma vez e pela duração da maior região crítica das tarefas de menor prioridade (ou menor deadline relativa para EDF) mesmo quando não usa recursos!! - Prioridade + Bloqueio por inibição de interrupções (B 1 ) DETI * STR 2013/2014 7

Técnicas para acesso exclusivo a recursos Inibição de preempção Todas as restantes tarefas do sistema ficam bloqueadas! Todavia o atendimento a interrupções, incluindo o do tick, não é afetado Fácil de implementar mas pouco eficiente (causa bloqueios desnecessários) Cada tarefa só pode ser bloqueada uma vez e pela duração da maior região crítica das tarefas de menor prioridade (ou menor deadline relativa para EDF) mesmo quando não usa recursos!! - Prioridade + Bloqueio por inibição de preempção (B 1 ) DETI * STR 2013/2014 8

Técnicas para acesso exclusivo a recursos Utilização de locks ou semáforos Causa bloqueios apenas às tarefas que acedem a recursos Implementação mais custosa mas mais eficiente Contudo, a duração dos bloqueios é bastante dependente do protocolo específico utilizado para gerir os semáforos Neste caso é particularmente importante que o referido protocolo permita evitar: Bloqueios indeterminados Bloqueios em cadeia Deadlocks DETI * STR 2013/2014 9

Protocolo de Herança de Prioridades (PIP Priority Inheritance Protocol) A tarefa bloqueante (menos prioritária) herda a prioridade da tarefa bloqueada (mais prioritária). Limita a duração dos bloqueios evitando que tarefas de prioridade intermédia executem enquanto a tarefa de menor prioridade, a bloqueante, não terminar a respetiva região crítica. Sem herança de prioridade Com herança de prioridade - Prioridade + P 3 P 1 B 1 P 2 P 1 P 3 DETI * STR 2013/2014 10

Protocolo de Herança de Prioridades (PIP) Para majorar o tempo de bloqueio (B) note-se que uma tarefa pode ser bloqueada por qualquer tarefa de menor prioridade: com a qual partilhe um recurso (direto), ou que possa bloquear uma tarefa de maior prioridade (indireto - push-through) Note-se ainda que, na ausência de acessos encadeados: cada tarefa só pode bloquear outra uma vez cada tarefa só pode ficar bloqueada uma vez em cada semáforo B 1 Bloqueio direto - Prioridade + P 3 P 1 P 1 P 2 P 3 Bloqueio indireto e.g. S 1 S 2 S 3 1 2 0 0 9 3 8 7 0 4 6 5 4 DETI * STR 2013/2014 11

Protocolo de Herança de Prioridades (PIP) Análise de escalonabilidade (RM) i 1 i n k=1 n i=1 C i T i + max i=1... n C k + B 1 i i(2 i 1) T k T i B i n(2 n 1) T i i 1 R wci =C i B i R wc i C k=1 T k k 1 e.g. C i T i B i 5 30 17 15 60 13 20 80 6 4 20 100 0 e.g. S 1 S 2 S 3 1 2 0 0 9 3 8 7 0 4 6 5 4 DETI * STR 2013/2014 12

Protocolo de Herança de Prioridades (PIP) Propriedades: Relativamente fácil de concretizar Requer mais um campo no TCB, a prioridade herdada É transparente para o programador Cada tarefa só usa informação local Sofre de bloqueio em cadeia e, principalmente, não evita deadlocks - Prioridade + Deadlock por nesting de recursos DETI * STR 2013/2014 13

Protocolo de Teto de Prioridades (PCP Priority Ceiling Protocol) Extensão ao PIP mas com uma regra sobre o acesso aos semáforos livres (para garantir que todos os semáforos necessários estão livres) É definido um teto (ceiling) de prioridade para cada semáforo igual à prioridade mais elevada de entre as tarefas que o usam. Uma tarefa só pode tomar tomar um semáforo se este estiver livre e se a sua prioridade for maior do que os tetos de todos os restantes semáforos correntemente fechados. C(S1)=P1 C(S2)=P1 C(S3)=P2 - Prioridade + Bloqueio direto Bloqueio de teto Tarefa Take S2 Release S2 DETI * STR 2013/2014 Take S3 Release S3 14

Protocolo de Teto de Prioridades (PCP) O protocolo PCP apenas permite o acesso a um semáforo quando todos os restantes semáforos de que uma tarefa necessita estão livres Para majorar o tempo de bloqueio (B) note-se que uma tarefa pode ser bloqueada por qualquer tarefa de menor prioridade que use um semáforo cujo teto seja pelo menos igual à sua prioridade Note-se ainda que cada tarefa só pode ser bloqueada uma vez - Prioridade + e.g. S 1 S 2 S 3 1 2 0 0 9 3 8 7 0 4 6 5 4 DETI * STR 2013/2014 15

Protocolo de Teto de Prioridades (PCP) Análise de escalonabilidade (RM) 1 1 n n 1=1 i k=1 C i T i max i=1...n C k B 1 i i 2 i 1 T k T i B i n 2 n 1 T i i 1 R wci =C i B i R wc i C k=1 T k k 1 Mesmas fórmulas! Apenas varia o cálculo de B i e.g. C i T i B i 5 30 9 15 60 8 20 80 6 4 20 100 0 e.g. S 1 S 2 S 3 1 2 0 0 9 3 8 7 0 4 6 5 4 DETI * STR 2013/2014 16

Protocolo de Teto de Prioridades (PCP) Propriedades: Bloqueios menores do que o PIP, livre de bloqueios em cadeia, livre de deadlocks, Mais difícil de concretizar (no TCB requer um campo para a prioridade herdada e outro para o semáforo onde a tarefa está bloqueada para facilitar a transitividade da herança, requer ainda uma estrutura para os semáforos com os respetivos tetos e identificação das tarefas que os estão a usar para facilitar a herança) Não é transparente para o programador (tetos dos semáforos não são locais às tarefas) Existe uma versão para EDF em que as tarefas bloqueantes herdam a deadline das bloqueadas e os tetos dos semáforos usam as deadlines relativas (nível de preempção preemption level) DETI * STR 2013/2014 17

Política de Pilha de Recursos (SRP Stack Resource Policy) Semelhante ao PCP mas com uma regra sobre o início de execução, para garantir que todos os semáforos necessários estão livres Usa igualmente o conceito de teto (ceiling) de prioridade Define o nível de preempção ( preemption level) como a capacidade de uma tarefa causar preempção sobre outra (parâmetro estático). Uma tarefa só pode iniciar execução se o seu nível de preempção for maior do que o da tarefa em execução e do que os tetos de todos os semáforos correntemente fechados (teto do sistema). C(S1)= 1 C(S2)= 1 C(S3)= 2 - Nível de + preempção Bloqueio de preempção Teto do sistema DETI * STR 2013/2014 18

Política de Pilha de Recursos (SRP) O protocolo SRP apenas permite o início de execução de uma tarefa quando todos os recursos de que necessita estão livres O majorante do tempo de bloqueio (B) é igual ao do protocolo PCP, apenas ocorre num momento diferente (início de execução) Cada tarefa pode ser bloqueada apenas uma vez por qualquer tarefa de menor nível de preempção que use um semáforo cujo teto seja pelo menos igual ao seu nível de preempção - Nível de + preempção Bloqueio de preempção Teto do sistema e.g. S 1 S 2 S 3 1 2 0 0 9 3 8 7 0 4 6 5 4 DETI * STR 2013/2014 19

Política de Pilha de Recursos (SRP) Análise de escalonabilidade (RM) Análise de escalonabilidade (EDF) i 1 1 n k=1 n 1=1 C i C k T k B i B i 1 i 2 T i 1 i 1 max n 2 n 1 T i i=1...n T i i 1 R wci =C i B i R wc i C k=1 T k k Apenas varia cálculo de B i i 1 1 n k=1 n 1=1 C i T i max i=1...n C k T k B i T i 1 B i T i 1 e.g. C i T i B i 5 30 9 15 60 8 20 80 6 4 20 100 0 e.g. S 1 S 2 S 3 1 2 0 0 9 3 8 7 0 4 6 5 4 DETI * STR 2013/2014 20

Política de Pilha de Recursos (SRP) Propriedades: Bloqueios menores do que o PIP, livre de bloqueios em cadeia, livre de deadlocks Menor número de preempções do que com o PCP, adequação intrínseca a prioridades fixas ou a dinâmicas, e a recursos com múltiplas unidades (e.g. array de buffers) Mais difícil de concretizar (teste de preempção mais complicado, requer o cálculo do teto do sistema, mais complexo ainda se se usam recursos com múltiplas unidades) Não é transparente para o programador (tetos dos semáforos...) DETI * STR 2013/2014 21

Resumo da Aula 7 Acesso exclusivo a recursos partilhados: bloqueio A inversão de prioridades: necessidade de a limitar e analisar Técnicas básicas para acesso exclusivo a recursos partilhados Herança de prioridades (Priority Inheritance Protocol PIP) Protocolo de teto de prioridades (Priority Ceiling Protocol PCP) Política de pilha de recursos (Stack Resource Protocol- SRP) DETI * STR 2013/2014 22