A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sistemas em Tempo Real Módulo 2: Concorrência: Conceito de processos; estados de processos; algoritmos para escalonamento de processos; Regiões Críticas;

Apresentações semelhantes


Apresentação em tema: "Sistemas em Tempo Real Módulo 2: Concorrência: Conceito de processos; estados de processos; algoritmos para escalonamento de processos; Regiões Críticas;"— Transcrição da apresentação:

1 Sistemas em Tempo Real Módulo 2: Concorrência: Conceito de processos; estados de processos; algoritmos para escalonamento de processos; Regiões Críticas; Exclusão Mútua; Comunicação e sincronização de processos (semáforos, monitores, passagem de mensagens); Deadlocks. Jarbas Silveira

2 Definição de tarefa (processo, actividade)
Conceito de processos Definição de tarefa (processo, actividade) Seqüência de ativações (instâncias ou jobs), cada uma composta por um conjunto de instruções que, na ausência de outras atividades, é executada pelo CPU sem interrupção. Jarbas Silveira

3 Quanto à periodicidade as tarefas podem ser
Conceito de processos Quanto à periodicidade as tarefas podem ser Jarbas Silveira

4 Caracterização das Tarefas
Conceito de processos Caracterização das Tarefas Jarbas Silveira

5 Conceito de processos Os requisitos das tarefas podem ser:
• Temporais – limites temporais aos instantes de terminação ou de geração de determinados eventos de saída. • Precedência – estabelecem uma determinada ordem de execução entre tarefas. • Uso de recursos – necessidade de utilização de recursos partilhados (e.g. portos de comunicação, um buffer em memória partilhada, variáveis globais, periféricos do sistema). Pode implicar uso de operações atômicas (cuja seqüência não pode ser interrompida) Jarbas Silveira

6 Conceito de processos Preempção
• Quando uma tarefa pode ser interrompida temporariamente para execução de outra mais prioritária, diz-se que admite preempção. • Quando um sistema utiliza a propriedade de preempção das tarefas que executa diz-se preemptivo. • Um conjunto de tarefas diz-se admitir preempção total quando todas as tarefas admitem preempção em qualquer ponto da sua execução (tarefas independentes) Nota: o acesso a recursos partilhados (tarefas com dependências) pode impor restrições sobre o grau de preempção que uma tarefa admite. Jarbas Silveira

7 Conceito de processos Jarbas Silveira

8 Conceito de processos Os requisitos temporais podem ser de vários tipos: • Deadline – Limitação ao tempo máximo para terminação da tarefa. • Janela – Delimitação máxima e mínima ao instante de terminação. • Sincronismo – Limitação à diferença temporal entre a geração de dois eventos de saídas (existem outras formas). • Distância – Limitação ao atraso (distância) entre a terminação, ou activação, de duas instâncias consecutivas (e.g., a mudança do óleo do motor num carro) Tipo deadline é o mais comum! Jarbas Silveira

9 Conceito de processos Jarbas Silveira

10 Conceito de processos Jarbas Silveira

11 Conceito de processos Jarbas Silveira

12 Conceito de processos Jarbas Silveira

13 Estados de Processos Criação de uma tarefa
associação do código (e.g. C function) a um espaço de variáveis privado (private stack) e a uma estrutura de gestão (task control block – TCB); Execução de uma tarefa Execução concorrente do código da tarefa, usando o respectivo espaço privado de variáveis, sob controlo do kernel, com reactivação de cada instância periodicamente ou como resposta a um evento externo. Jarbas Silveira

14 Estados de Processos Jarbas Silveira

15 Estados de Processos Jarbas Silveira

16 Estados de Processos Jarbas Silveira

17 Estados de Processos Jarbas Silveira

18 Escalonamento de processos
Jarbas Silveira

19 Escalonamento de processos
Jarbas Silveira

20 Escalonamento de processos
Jarbas Silveira

21 Escalonamento de processos
Jarbas Silveira

22 Escalonamento de processos
Jarbas Silveira

23 Escalonamento de processos
Jarbas Silveira

24 Escalonamento de processos
•Um escalonamento diz-se praticável (feasible schedule) se cumpre as restrições associadas ao conjunto de tarefas (temporais, não preempção, recursos partilhados, precedências) •Um conjunto de tarefas diz-se escalonável (schedulable task set) se existe pelo menos um escalonamento praticável para esse conjunto. Jarbas Silveira

25 Escalonamento de processos
Jarbas Silveira

26 Escalonamento de processos
Jarbas Silveira

27 Escalonamento de processos
Jarbas Silveira

28 Escalonamento de processos
Jarbas Silveira

29 Escalonamento de processos
Jarbas Silveira

30 Escalonamento de processos
- Escalonamento de tarefas periódicas Jarbas Silveira

31 Escalonamento de processos
- Escalonamento estático cíclico Jarbas Silveira

32 Escalonamento de processos
Escalonamento estático cíclico A favor •Implementação simples (timer+tabela) •Overhead de execução muito baixo (dispatcher) •Permite optimização do escalonamento (e.g. controlo de jitter, relações de precedência) Contra •Pouco escalável (alterações nas tarefas podem causar grandes alterações na tabela, em particular podem levar a tabelas enormes!) •Pouco robusto a sobrecargas (sensível ao efeito dominó) Jarbas Silveira

33 Escalonamento de processos
Escalonamento estático cíclico Construção da tabela •Calcular o micro-ciclo uC e o macro-ciclo MC •Expressar os períodos e fases iniciais em micro-ciclos •Determinar os ciclos onde as tarefas são ativadas •Utilizando um critério de escalonamento adequado, determinar a ordem de execução das tarefas ativas •Verificar se todas as tarefas ativas num micro-ciclo podem ser completamente executadas nele. Senão algumas terão que ficar para ciclos seguintes •Poderá ser necessário partir uma tarefa em várias partes de modo a cada uma poder ser executada dentro de um micro-ciclo. Jarbas Silveira

34 Escalonamento de processos
Escalonamento preemptivo com prioridade fixa Todas tarefas têm uma prioridade fixa, que não é alterada a menos que a aplicação modifique-a. Uma tarefa com prioridade mais alta interrompe uma tarefa com prioridade inferior. A maioria dos sistemas operacionais Tempo Real suportam este esquema. Jarbas Silveira

35 Escalonamento de processos
- Escalonamento on-line com prioridades fixas Jarbas Silveira

36 Escalonamento de processos
- Escalonamento on-line com prioridades fixas Jarbas Silveira

37 Escalonamento de processos
- Escalonamento on-line com prioridades fixas Jarbas Silveira

38 Escalonamento de processos
- Escalonamento on-line com prioridades fixas Jarbas Silveira

39 Escalonamento de processos
Escalonamento preemptivo com prioridade dinâmica Uma tarefa com prioridade mais alta interrompe uma tarefa com prioridade inferior. A prioridade de uma tarefa pode mudar de uma instância a outra ou durante a execução de uma instância para atender um objetivo específico de resposta temporal. Poucos sistemas operacionais comerciais de Tempo Real suportam esta política. Jarbas Silveira

40 Escalonamento de processos
Escalonamento rate-monotonic Política de escalonamento preemptivo ótimo de prioridade fixa no qual quanto mais alta a freqüência de ativação de uma tarefa periódica, maior a prioridade. Assume que o deadline de uma tarefa periódica é igual ao seu período. Pode ser implementado em qualquer sistema operacional que suporta escalonamento preemptivo com prioridade fixa ou generalizado para tarefas aperiódicas. Jarbas Silveira

41 Escalonamento de processos
Escalonamento RM – exemplo 1 Jarbas Silveira

42 Escalonamento de processos
Escalonamento RM – exemplo 2 Jarbas Silveira

43 Escalonamento de processos
Escalonamento RM – exemplo 3 Jarbas Silveira

44 Escalonamento de processos
Escalonamento deadline-monotonic Generalização da política de escalonamento rate-monotonic, no qual o deadline de uma tarefa é um ponto fixo no tempo, relativo ao início do período. Quanto mais próximo este deadline (fixo) maior a prioridade. Quando o tempo do deadline iguala o período esta política é idêntica ao esquema de escalonamento ratemonotonic. Jarbas Silveira

45 Escalonamento de processos
Jarbas Silveira

46 Escalonamento de processos
Escalonamento earliest-deadline-first Política de escalonamento preemptivo com prioridade dinâmica. O deadline da instância de uma tarefa é o ponto absoluto no tempo no qual a instância tem que concluir. O deadline é computado quando a instância é criada. O escalonador escolhe a tarefa com o deadline mais próximo para executar primeiro. Uma tarefa com um deadline mais próximo interrompe uma tarefa com um deadline posterior. Esta política minimiza o atraso máximo de um conjunto de tarefas, em relação a todas as outras políticas de escalonamento. Jarbas Silveira

47 Escalonamento de processos
Escalonamento least-laxity-first (least slack) Política de escalonamento não preemptivo com prioridade dinâmica. A folga ou relaxação da instância de uma tarefa é o deadline absoluto para conclusão menos o restante do pior caso do tempo de execução da instância da tarefa. O escalonador escolhe a tarefa com a menor relaxação para executar primeiro. Uma tarefa com um deadline mais próximo interrompe uma tarefa com um deadline posterior. Esta política maximiza o atraso mínimo de um conjunto de tarefas. Jarbas Silveira

48 Regiões Críticas Acesso exclusivo a recursos partilhados
O acesso exclusivo a recursos partilhados A inversão de prioridades como conseqüência do bloqueio Técnicas básicas para acesso exclusivo a recursos partilhados Herança de prioridades (Priority Inheritance Protocol – PIP) Protocolo de tecto de prioridades (Priority Ceiling Protocol – PCP) - Protocolo de pilha de recursos (Stack Resource Protocol- SRP) Jarbas Silveira

49 Regiões Críticas Jarbas Silveira

50 Regiões Críticas O fenômeno da inversão de prioridades Jarbas Silveira

51 Regiões Críticas O fenômeno da inversão de prioridades Jarbas Silveira

52 Regiões Críticas 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 – P / V ou wait / signal) Jarbas Silveira

53 Regiões Críticas Jarbas Silveira

54 Regiões Críticas Jarbas Silveira

55 Regiões Críticas Jarbas Silveira

56 Regiões Críticas Protocolo de Herança de Prioridades (PIP – Priority Inheritance Protocol) Jarbas Silveira

57 Regiões Críticas Protocolo de Herança de Prioridades (PIP – Priority Inheritance Protocol) Jarbas Silveira

58 Regiões Críticas Protocolo de Herança de Prioridades (PIP – Priority Inheritance Protocol) Jarbas Silveira

59 Regiões Críticas Protocolo de Teto de Prioridades (PCP – Priority Ceiling Protocol) Jarbas Silveira

60 Regiões Críticas Protocolo de Teto de Prioridades (PCP – Priority Ceiling Protocol) Jarbas Silveira

61 Regiões Críticas Protocolo de Teto de Prioridades (PCP – Priority Ceiling Protocol) Jarbas Silveira

62 Regiões Críticas Política de Pilha de Recursos (SRP – Stack Resource Policy) Jarbas Silveira

63 Regiões Críticas Política de Pilha de Recursos (SRP – Stack Resource Policy) Jarbas Silveira

64 Regiões Críticas Política de Pilha de Recursos (SRP – Stack Resource Policy) Jarbas Silveira

65 SCB (Semaphore Control Block) ID Semaphore Binário ou do tipo contador
Exclusão Mútua -Semáforos São objetos de Kernel que uma ou mais threads podem adquirir ou liberar com o propósito de sincronização ou exclusão mútua. SCB (Semaphore Control Block) ID Semaphore Binário ou do tipo contador Jarbas Silveira

66 - Semáforo e sua estrutura de dados
Exclusão Mútua - Semáforo e sua estrutura de dados Jarbas Silveira

67 Podem ter valor 0 (não disponível) ou 1(disponível);
Exclusão Mútua Semáforos binários Podem ter valor 0 (não disponível) ou 1(disponível); São utilizados como recursos globais Jarbas Silveira

68 Semáforos do tipo contadores
Exclusão Mútua Semáforos do tipo contadores Usa um contador para ser adquirido ou liberado múltiplas vezes; Semáforo é criado com 0 (não disponível) Quando adquirido contagem inicia; Uma ou mais tarefas podem adquirir fichas do semáforo; Algumas implementações permitem limitar o número de fichas. Jarbas Silveira

69 - Diagrama de estados de um semáforo contador
Exclusão Mútua - Diagrama de estados de um semáforo contador Jarbas Silveira

70 Semáforos de Mútua Exclusão (Mutex)
Exclusão Mútua Semáforos de Mútua Exclusão (Mutex) Um mutex é um semáforo binário especial que suporta um Proprietário, acesso recursivo e proteção segura de tarefas; Um proprietário de um mutex é assinalado quando o mesmo é travado na primeira vez que é adquirido; Jarbas Silveira

71 Semáforos de Mútua Exclusão (Mutex)
Exclusão Mútua Semáforos de Mútua Exclusão (Mutex) Muitos Mutex implementam recursividade, permitindo que o proprietário deste mutex possa adquiri-lo múltiplas vezes; Jarbas Silveira

72 Semáforos de Mútua Exclusão (Mutex)
Exclusão Mútua Semáforos de Mútua Exclusão (Mutex) Esta propriedade permite a proteção contra deleção da tarefa enquanto o semáforo encontra-se travado; Mudanda de prioridade: os protocolos PIP e CPP são utilizados em alguns semáforos; Jarbas Silveira

73 Aplicações típicas de semáforos
Exclusão Mútua Aplicações típicas de semáforos Wait and Signal Syncronization: tem o propósito de coordenar ações entre 2 tarefas; Jarbas Silveira

74 Multiple-task Wait and Signal Synchronization
Exclusão Mútua Multiple-task Wait and Signal Synchronization Quando uma ou mais tarefas esperam por um tarefa para iniciarem suas execuções; Jarbas Silveira

75 Credit-Tracking Synchronization
Exclusão Mútua Credit-Tracking Synchronization Quando a taxa de produção e consumo são diferentes, podemos utilizar semáforos contadores para sincronizar estas tarefas; Jarbas Silveira

76 Acesso exclusivo a uma região compartilhada
Exclusão Mútua Acesso exclusivo a uma região compartilhada Um dos usos mais comuns de semáforos; Um semáforo binário controla o acesso a região compartilhada; Jarbas Silveira

77 Exclusão Mútua Acesso exclusivo recursivo a uma região compartilhada
Necessário quando uma tarefa deseja acessar uma região crítica e uma das tarefas desta atividade também necessita acessar esta mesma região crítica; Jarbas Silveira

78 Exclusão Mútua Sincronização de múltiplas recursos compartilhados
Nesta situação, onde múltiplos recursos precisam ser compartilhados é recomendado o uso de um semáforo do tipo contador; Jarbas Silveira

79 Sincronização de Processos
Mensagens entre processos - Um fila de mensagens é um buffer onde processos podem transmitir e receber mensagens. Jarbas Silveira

80 Estados de Fila de Mensagens
Comunicação e sincronização de processos Estados de Fila de Mensagens Jarbas Silveira 80

81 Comunicação e sincronização de processos
- Algumas implementações de Kernel permitem mover blocos de mensagens para listas de espera em memória; Jarbas Silveira

82 Armazenamento de Filas de Mensagens
Comunicação e sincronização de processos Armazenamento de Filas de Mensagens Systems Pools: Área única de memória Private Buffers: Áreas separadas de memória Jarbas Silveira

83 Operações típicas de Filas de mensagens (TX)
Comunicação e sincronização de processos Operações típicas de Filas de mensagens (TX) First-in, First-out (FIFO) Jarbas Silveira

84 Operações típicas de Filas de mensagens (TX)
Comunicação e sincronização de processos Operações típicas de Filas de mensagens (TX) First-in, First-out (LIFO) Jarbas Silveira

85 Operações típicas de Filas de mensagens (RX)
Comunicação e sincronização de processos Operações típicas de Filas de mensagens (RX) Recepção de mensagens com prioridade Jarbas Silveira

86 Uso típico de fila de mensagens
Comunicação e sincronização de processos Uso típico de fila de mensagens Sem inter-travamento, em um sentido de comunicação Jarbas Silveira

87 Uso típico de fila de mensagens
Comunicação e sincronização de processos Uso típico de fila de mensagens Com inter-travamento, em um sentido de comunicação Jarbas Silveira 87

88 Uso típico de fila de mensagens
Comunicação e sincronização de processos Uso típico de fila de mensagens Sem inter-travamento, em duplo sentido de comunicação Jarbas Silveira

89 Uso típico de fila de mensagens Comunicação em broadcast
Comunicação e sincronização de processos Uso típico de fila de mensagens Comunicação em broadcast Jarbas Silveira

90 - Outros objetos de Kernel: PIPES - Não estruturados
Comunicação e sincronização de processos - Outros objetos de Kernel: PIPES - Não estruturados - Não permite prioridade - Stream de bytes Jarbas Silveira

91 Outros objetos de Kernel: PIPES - Pipe Control Blocks
Comunicação e sincronização de processos Outros objetos de Kernel: PIPES - Pipe Control Blocks Jarbas Silveira

92 Outros objetos de Kernel: PIPES - Estados de um PIPE
Comunicação e sincronização de processos Outros objetos de Kernel: PIPES - Estados de um PIPE Jarbas Silveira

93 Uso típico de PIPES: Comunicação e sincronização de processos
Jarbas Silveira

94 Outros objetos de Kernel: Registradores de Eventos
Comunicação e sincronização de processos Outros objetos de Kernel: Registradores de Eventos Jarbas Silveira

95 Uso típico de registradores de eventos:
Comunicação e sincronização de processos Uso típico de registradores de eventos: Sincronização unidirecional de tarefas Jarbas Silveira

96 Comunicação e sincronização de processos
Signals: São interrupções de software que são gerados quando um determinado evento ocorre. Jarbas Silveira

97 - Uso típico de Sinais: capturador de eventos
Comunicação e sincronização de processos - Uso típico de Sinais: capturador de eventos Jarbas Silveira

98 Deadlocks Jarbas Silveira

99 Deadlocks Jarbas Silveira 99

100 Deadlocks Jarbas Silveira 100

101 Deadlocks Jarbas Silveira 101

102 Deadlocks Jarbas Silveira 102

103 Deadlocks Jarbas Silveira 103

104 Deadlocks Jarbas Silveira 104


Carregar ppt "Sistemas em Tempo Real Módulo 2: Concorrência: Conceito de processos; estados de processos; algoritmos para escalonamento de processos; Regiões Críticas;"

Apresentações semelhantes


Anúncios Google