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

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Operacionais
Sistemas Operacionais Sincronismo e Comunicação entre processos
Algoritmos de Escalonamento
Sistemas Operacionais Gerência de Processador
INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Sistemas Operacionais Gerência de Processador WebDesign Redes de Computadores.
Técnicas para operações E/S
Profa. Priscila Facciolli
Gerência do Processador
Evolução Arquitetural e Microprogramação
Chip-Select e Controle de Interrupção
Escalonamento Linux.
Arquitetura de Sistemas Operacionais
Conceitos de Programação Paralela - 2
Sistemas Operacionais II
Sistemas Operacionais
Walfredo Cirne Threads Walfredo Cirne
Estruturas de Controle
Escalonamento Aula 7.
Sistemas de Tempo Real: Abordagens de Escalonamento
Arquitetura de Sistemas Operacionais
Threads.
Sistemas Operacionais Adriana Vettorazzo
Exclusão Mútua A solução mais simples para evitar os problemas de compartilhamento é impedir que dois ou mais processos estiver acessando determinado recurso,
Sistemas Operacionais
Sistemas Operacionais I
Sistemas Operacionais Aula 4
Monitores.
Unidade 1-1 Processos e Threads
Unidade 3 Controle de Concorrência
Sistemas Operacionais
Sistemas Operacionais
Gerência de Recursos Processador
Processo Entidade dinâmica e efêmera
Sistemas Operacionais Profª Adriana Vettorazzo
Conteúdo 1. Introdução Threads 2. Ambiente Monothread 3. Ambiente Multithread 4. Arquitetura e Implementação 5. Modelos de Programação.
Sistemas Distribuídos
Escalonamento de Tempo Real
Processos.
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Sistemas Operacionais
Conceitos em Sistemas de Tempo Real (Real Time Systems)
Escalonamento de Processos e Threads
Processos.
GERÊNCIA DE PROCESSOS Disciplina: Sistemas Operacionais II.
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
Sistemas Operacionais
S ISTEMAS OPERACIONAIS PROCESSOS Horácio Ribeiro.
Capítulo 4: Processos.
Escalonamento de Tarefas com Compartilhamento de Recursos André Luis Meneses Silva.
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Sistemas em Tempo Real Jadsonlee da Silva Sá
Engenharia de Sistemas Embarcados Aula 9: Salvo RTOS.
Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Bruno Affonso Diego Chiquito Ruan Berté.   O código de Escalonamento no Windows é implementado no Kernel.  A rotina que desempenha as tarefas do Escalonador.
Processos Concorrentes
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Implementação Distribuída Escalonamento de Tempo-Real Prof. Dr. Norian Marranghello Grupo 8 Daniela Gonçalves Strozi – Sayuri Watanabe
Deadlocks.
Escalonamento de Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE Assunto: [str]
Sistemas Operacionais
Faculdade Pernambucana - FAPE Sistemas Operacionais Prof. Flávio Gonçalves da Rocha.
Faculdade Pernambucana - FAPE Sistemas Operacionais Prof. Flávio Gonçalves da Rocha.
Sistemas Operacionais Multimídia Aula 12. Gerência de Processos Mapeamento de processos sobre recursos de acordo com política de escalonamento Possíveis.
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner.
Transcrição da apresentação:

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

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

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

Caracterização das Tarefas Conceito de processos Caracterização das Tarefas 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) 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. Jarbas Silveira

Conceito de processos 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! Jarbas Silveira

Conceito de processos Jarbas Silveira

Conceito de processos Jarbas Silveira

Conceito de processos Jarbas Silveira

Conceito de processos 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. Jarbas Silveira

Estados de Processos Jarbas Silveira

Estados de Processos Jarbas Silveira

Estados de Processos Jarbas Silveira

Estados de Processos Jarbas Silveira

Escalonamento de processos Jarbas Silveira

Escalonamento de processos Jarbas Silveira

Escalonamento de processos Jarbas Silveira

Escalonamento de processos Jarbas Silveira

Escalonamento de processos Jarbas Silveira

Escalonamento de processos 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. Jarbas Silveira

Escalonamento de processos Jarbas Silveira

Escalonamento de processos Jarbas Silveira

Escalonamento de processos Jarbas Silveira

Escalonamento de processos Jarbas Silveira

Escalonamento de processos Jarbas Silveira

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

Escalonamento de processos - Escalonamento estático cíclico 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ó) 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. 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. Jarbas Silveira

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

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

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

Escalonamento de processos - Escalonamento on-line com prioridades fixas 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. 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. Jarbas Silveira

Escalonamento de processos Escalonamento RM – exemplo 1 Jarbas Silveira

Escalonamento de processos Escalonamento RM – exemplo 2 Jarbas Silveira

Escalonamento de processos Escalonamento RM – exemplo 3 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. Jarbas Silveira

Escalonamento de processos 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. 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. 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) Jarbas Silveira

Regiões Críticas Jarbas Silveira

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

Regiões Críticas O fenômeno da inversão de prioridades 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) Jarbas Silveira

Regiões Críticas Jarbas Silveira

Regiões Críticas Jarbas Silveira

Regiões Críticas Jarbas Silveira

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- 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

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

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

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

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

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

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

- 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

Deadlocks Jarbas Silveira

Deadlocks Jarbas Silveira 99

Deadlocks Jarbas Silveira 100

Deadlocks Jarbas Silveira 101

Deadlocks Jarbas Silveira 102

Deadlocks Jarbas Silveira 103

Deadlocks Jarbas Silveira 104