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

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

DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 2: Concorrência: Conceito de processos; estados de processos; algoritmos.

Apresentações semelhantes


Apresentação em tema: "DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 2: Concorrência: Conceito de processos; estados de processos; algoritmos."— Transcrição da apresentação:

1 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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.

2 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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.

3 DETI - UFC Sistema em Tempo Real Jarbas Silveira Conceito de processos Quanto à periodicidade as tarefas podem ser

4 DETI - UFC Sistema em Tempo Real Jarbas Silveira Conceito de processos Caracterização das Tarefas

5 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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)

6 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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.

7 DETI - UFC Sistema em Tempo Real Jarbas Silveira Conceito de processos

8 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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!

9 DETI - UFC Sistema em Tempo Real Jarbas Silveira Conceito de processos

10 DETI - UFC Sistema em Tempo Real Jarbas Silveira Conceito de processos

11 DETI - UFC Sistema em Tempo Real Jarbas Silveira Conceito de processos

12 DETI - UFC Sistema em Tempo Real Jarbas Silveira Conceito de processos

13 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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.

14 DETI - UFC Sistema em Tempo Real Jarbas Silveira Estados de Processos

15 DETI - UFC Sistema em Tempo Real Jarbas Silveira Estados de Processos

16 DETI - UFC Sistema em Tempo Real Jarbas Silveira Estados de Processos

17 DETI - UFC Sistema em Tempo Real Jarbas Silveira Estados de Processos

18 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos

19 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos

20 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos

21 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos

22 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos

23 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos

24 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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.

25 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos

26 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos

27 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos

28 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos

29 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos

30 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos - Escalonamento de tarefas periódicas

31 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos - Escalonamento estático cíclico

32 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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ó)

33 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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.

34 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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.

35 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos - Escalonamento on-line com prioridades fixas

36 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos - Escalonamento on-line com prioridades fixas

37 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos - Escalonamento on-line com prioridades fixas

38 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos - Escalonamento on-line com prioridades fixas

39 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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.

40 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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.

41 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos Escalonamento RM – exemplo 1

42 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos Escalonamento RM – exemplo 2

43 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos Escalonamento RM – exemplo 3

44 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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.

45 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento de processos

46 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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.

47 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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.

48 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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)

49 DETI - UFC Sistema em Tempo Real Jarbas Silveira Regiões Críticas

50 DETI - UFC Sistema em Tempo Real Jarbas Silveira Regiões Críticas O fenômeno da inversão de prioridades

51 DETI - UFC Sistema em Tempo Real Jarbas Silveira Regiões Críticas O fenômeno da inversão de prioridades

52 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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)

53 DETI - UFC Sistema em Tempo Real Jarbas Silveira Regiões Críticas

54 DETI - UFC Sistema em Tempo Real Jarbas Silveira Regiões Críticas

55 DETI - UFC Sistema em Tempo Real Jarbas Silveira Regiões Críticas

56 DETI - UFC Sistema em Tempo Real Jarbas Silveira Regiões Críticas Protocolo de Herança de Prioridades (PIP – Priority Inheritance Protocol)

57 DETI - UFC Sistema em Tempo Real Jarbas Silveira Regiões Críticas Protocolo de Herança de Prioridades (PIP – Priority Inheritance Protocol)

58 DETI - UFC Sistema em Tempo Real Jarbas Silveira Regiões Críticas Protocolo de Herança de Prioridades (PIP – Priority Inheritance Protocol)

59 DETI - UFC Sistema em Tempo Real Jarbas Silveira Regiões Críticas Protocolo de Teto de Prioridades (PCP – Priority Ceiling Protocol)

60 DETI - UFC Sistema em Tempo Real Jarbas Silveira Regiões Críticas Protocolo de Teto de Prioridades (PCP – Priority Ceiling Protocol)

61 DETI - UFC Sistema em Tempo Real Jarbas Silveira Regiões Críticas Protocolo de Teto de Prioridades (PCP – Priority Ceiling Protocol)

62 DETI - UFC Sistema em Tempo Real Jarbas Silveira Regiões Críticas Política de Pilha de Recursos (SRP – Stack Resource Policy)

63 DETI - UFC Sistema em Tempo Real Jarbas Silveira Regiões Críticas Política de Pilha de Recursos (SRP – Stack Resource Policy)

64 DETI - UFC Sistema em Tempo Real Jarbas Silveira Regiões Críticas Política de Pilha de Recursos (SRP – Stack Resource Policy)

65 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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

66 DETI - UFC Sistema em Tempo Real Jarbas Silveira Exclusão Mútua - Semáforo e sua estrutura de dados

67 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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

68 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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.

69 DETI - UFC Sistema em Tempo Real Jarbas Silveira Exclusão Mútua - Diagrama de estados de um semáforo contador

70 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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;

71 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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;

72 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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;

73 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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;

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

75 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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;

76 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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;

77 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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;

78 DETI - UFC Sistema em Tempo Real Jarbas Silveira 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;

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

80 DETI - UFC Sistema em Tempo Real Jarbas Silveira Comunicação e sincronização de processos -Estados de Fila de Mensagens

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

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

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

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

85 DETI - UFC Sistema em Tempo Real Jarbas Silveira Comunicação e sincronização de processos -Operações típicas de Filas de mensagens (RX) -Recepção de mensagens com prioridade

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

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

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

89 DETI - UFC Sistema em Tempo Real Jarbas Silveira Comunicação e sincronização de processos -Uso típico de fila de mensagens -Comunicação em broadcast

90 DETI - UFC Sistema em Tempo Real Jarbas Silveira Comunicação e sincronização de processos - Outros objetos de Kernel: PIPES - Não estruturados - Não permite prioridade - Stream de bytes

91 DETI - UFC Sistema em Tempo Real Jarbas Silveira Comunicação e sincronização de processos -Outros objetos de Kernel: PIPES - Pipe Control Blocks

92 DETI - UFC Sistema em Tempo Real Jarbas Silveira Comunicação e sincronização de processos -Outros objetos de Kernel: PIPES - Estados de um PIPE

93 DETI - UFC Sistema em Tempo Real Jarbas Silveira Comunicação e sincronização de processos -Uso típico de PIPES:

94 DETI - UFC Sistema em Tempo Real Jarbas Silveira Comunicação e sincronização de processos -Outros objetos de Kernel: -Registradores de Eventos

95 DETI - UFC Sistema em Tempo Real Jarbas Silveira Comunicação e sincronização de processos -Uso típico de registradores de eventos: -Sincronização unidirecional de tarefas

96 DETI - UFC Sistema em Tempo Real Jarbas Silveira Comunicação e sincronização de processos -Signals: -São interrupções de software que são gerados quando um determinado evento ocorre.

97 DETI - UFC Sistema em Tempo Real Jarbas Silveira Comunicação e sincronização de processos - Uso típico de Sinais: capturador de eventos

98 DETI - UFC Sistema em Tempo Real Jarbas Silveira Deadlocks

99 DETI - UFC Sistema em Tempo Real Jarbas Silveira Deadlocks

100 DETI - UFC Sistema em Tempo Real Jarbas Silveira Deadlocks

101 DETI - UFC Sistema em Tempo Real Jarbas Silveira Deadlocks

102 DETI - UFC Sistema em Tempo Real Jarbas Silveira Deadlocks

103 DETI - UFC Sistema em Tempo Real Jarbas Silveira Deadlocks

104 DETI - UFC Sistema em Tempo Real Jarbas Silveira Deadlocks


Carregar ppt "DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 2: Concorrência: Conceito de processos; estados de processos; algoritmos."

Apresentações semelhantes


Anúncios Google