Inversão de prioridades

Documentos relacionados
Deadlocks. Sistemas Operacionais - Professor Machado

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

SISTEMAS DISTRIBUÍDOS

Aula 10: Escalonamento da CPU

Sistemas Distribuídos

Sistemas Operacionais. Sincronização: Semáforos Problema dos Leitores/Escritores

Informática I. Aula Aula 19-20/06/06 1

Subestação. Conceito:

}Escalonamento. Parte III - Sistemas Operacionais. Cap. 2 Processos. Escalonamento de Processos. Quando escalonar? Comportamento de Processos

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

Gerenciador de Ambiente Laboratorial - GAL Manual do Usuário Módulo Controle de Qualidade Analítico

Fundamentos de Teste de Software

Objetivo do Portal da Gestão Escolar

Engenharia de Software II

Auxiliar em Administração de Redes Redes de Computadores I

Organização de Computadores 1

Banco de Dados I. Prof. Edson Thizon

T.I. para o DealerSuite: Servidores Versão: 1.1

MANUAL DO INSTALADOR XD EM AMBIENTES MICROSOFT WINDOWS

Redes de Computadores

MÓDULO 2 Topologias de Redes

SISTEMA OPERACIONAL - ANDROID

CONTRATO DE LICENÇA DO UTILIZADOR PARA PRODUTOS DE SOFTWARE DA STONERIDGE ELECTRONICS LTD

3. QUAL É A FUNÇÃO DA MOEDA SOCIAL?

Conceito Básicos de Programação com Objetos Distribuídos. Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1

Manual Remessa Bancária

Sistemas Operacionais

Portal de Sistemas Integrados. Manual do Usuário. Versão: 1.0

2 Workshop processamento de artigos em serviços de saúde Recolhimento de artigos esterilizados: é possível evitar?

Introdução à Informática. Aula 05. Redes de Computadores. Prof. Fábio Nelson

Prof. José Maurício S. Pinheiro - UGB

Conceitos básicos sobre computadores

,QVWDODomR. Dê um duplo clique para abrir o Meu Computador. Dê um duplo clique para abrir o Painel de Controle. Para Adicionar ou Remover programas

Servidor de Armazenamento em Nuvem

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

Inteligência Artificial

PROCEDIMENTO INSTALAÇÃO SINAI ALUGUEL

Gerenciamento de Memória Minix 3.1.7

NOVA VERSÃO SAFE DOC MANUAL

Curso de Formação de Oficiais Conhecimentos Específicos ENGENHARIA DE COMPUTAÇÃO CADERNO DE QUESTÕES

REGULAMENTO DO AUTOCARRO E CARRINHA

PRÓ-REITORIA DE GRADUAÇÃO

Manual Recálculo de Custo Médio

Arquitetura de referência de Streaming sob demanda para desktop (ODDS) DELL

Técnico em Radiologia. Prof.: Edson Wanderley

de fevereiro de 2002

FACULDADE MULTIVIX CURSO DE ENGENHARIA DE PRODUÇÃO 2º PERÍODO MARIANA DE OLIVEIRA BERGAMIN MONIQUE MATIELLO GOMES THANIELE ALMEIDA ALVES

MANUAL e-sic GUIA DO SERVIDOR. Governo do Estado do Piauí

Revisão Diagrama de Caso de Uso. Rodolfo Adamshuk Silva 30/08/2013

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

Ciência da Computação (CC) e Sistemas de Informação (SI)

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Capítulo 6 - Threads

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR. Prof. Angelo Augusto Frozza, M.Sc.

Instalando o Microsoft Office Versão 2.1

Tempo Real 7/4/2010. Aula 10. Engenharia de Sistemas Embarcados

Sistemas Operacionais. Rodrigo Rubira Branco

MS1122 v3.0 Instalação e Considerações Importantes

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

Programação Orientada a Objetos

CONSELHO REGIONAL DE ENFERMAGEM DE SÃO PAULO. Resposta aos questionamentos efetuados pela empresa TOTVS, temos a informar conforme segue:

Módulo 8 Entradas Digitais 24 Vdc Monitorado. Os seguintes produtos devem ser adquiridos separadamente para possibilitar a utilização do produto:

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

Contratar um plano de saúde é uma decisão que vai além da pesquisa de preços. Antes de

Métricas de Software

ÁREA DO PROFESSOR (TUTOR)

Sistemas Operacionais. Rodrigo Rubira Branco

Os salários de 15 áreas de TI nas cinco regiões do Brasil

Copyright - IS Intelligent Software

Modelagem De Sistemas

Experiência 04: Comandos para testes e identificação do computador na rede.

Eleição de Líder. Alysson Neves Bessani Departamento de Informática Faculdade de Ciências da Universidade de Lisboa

Dicas de Segurança sobre Virus

Deswik.Sched. Sequenciamento por Gráfico de Gantt

EDUCAÇÃO INFANTIL E ENSINO FUNDAMENTAL 1 (1º AO 5º ANO)

SUPERVISÃO Supervisão Comportamental

COMO ELABORAR UM CURRÍCULO

II Semana de Ciência e Tecnologia do IFMG campus Bambuí II Jornada Científica 19 a 23 de Outubro de 2009

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)

Rede Local - Administração Políticas de Backup, Redundância e Fiabilidade

Arquitecturas de Software Enunciado de Projecto

Barramentos de campo. Modelo OSI para sistemas comunicantes

Processamento de Dados aplicado à Geociências. AULA 1: Introdução à Arquitetura de Computadores

Tutorial de utilização do Sistema de Abertura de Chamado Sumário

Programação Orientada a Objetos SANTOS, Rafael

Fundamentos de Programação. Diagrama de blocos

Redes de Computadores

Treinamento de e-commerce

MANUAL DE INSTALAÇÃO SAT DIMEP PDV CAKE

COMISSÃO DE DESENVOLVIMENTO ECONÔMICO, INDÚSTRIA E COMÉRCIO

Transcrição:

Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2017 1 / 46

Sumário 1 Dependência 2 Dependência Deadlocks 3 Classicação dos recursos 2 / 46

1 Dependência 2 Dependência Deadlocks 3 Classicação dos recursos 3 / 46

Estados dos processos Figura 1.1: Estados dos processos [Chagas, 2016] 4 / 46

Escalonamento Figura 1.2: Descrição do modelo de escalonamento [Chagas, 2016] 5 / 46

Denição Escalonar: Ordenar as tarefas na la de pronto. 6 / 46

Denição Escalonar: Ordenar as tarefas na la de pronto. Os algoritmos de escalonamento podem ser [FARINES and MELO, 2000]: Preemptivos Tarefas podem ser interrompidas em tempo de execução; Não preemptivos Tarefas não podem ser interrompidas por outras mais prioritárias; Estáticos Escalonamento calculado com base em parâmetros xos atribuídos às tarefas; Dinâmicos Baseados em parâmetros que mudam em tempo de execução. 7 / 46

Classicação Em relação aos parâmetros enviados para as tarefas, os algoritmos podem ser: on-line A escala é produzida em tempo de execução; o-line A escala é produzida em tempo de projeto. Os problemas de escalonamento de tempo real podem ser reduzidos a uma solução polinomial (NP-Completos) 8 / 46

Carga computacional [Chagas, 2016] Denição: Somatório dos tempos de computação na la de pronto. Carga Estática (Limitada) Carga Dinâmica (Ilimitada) Todas as tarefas são bem conhecidas em tempo de projeto; Modeladas através de tarefas periódicas e esporádicas. Características de chegada da tarefa não pode ser antecipada; Modeladas através de tarefas aperiódicas. 9 / 46

Abordagens Figura 1.3: Abordagens de escalonamento em tempo real [FARINES and MELO, 2000] 10 / 46

Abordagens de escalonamento [Chagas, 2016] Garantia em tempo de projeto I Garantia em tempo de execução II Abordagens de melhor esforço III Carga computacional dinâmica; Teste de escalonabilidade em tempo de projeto. Carga computacional dinâmica; Sistemas críticos que operam em ambientes não determinísticos. Teste de escalonabilidade em tempo de execução; Não existe previsão de pior caso e não consegue prever recursos para todas as situações de carga. 11 / 46

Escalonamento estático [Chagas, 2016] Escalonamento estático ou executivo cíclico; A escala é denida durante a fase do projeto (escalonamento oine); Tempo de processador atribuído a cada tarefa; Garantia de escalonabilidade fornecida pela inspeção da lista de escalonamento (deadline da tarefa). 12 / 46

Dirigido a prioridades Dirigidos de acordo com suas prioridades em tempo de execução; Prioridades xas: RM ou DM; Prioridades dinâmicas: EDF; Preemptivos ou não preemptivos. 13 / 46

Teste de escalonabilidade Figura 1.4: Teste de escalabilidade real [FARINES and MELO, 2000] 14 / 46

1 Dependência 2 Dependência Deadlocks 3 Classicação dos recursos 15 / 46

Denições Até o momento consideramos somente tarefas independentes; Isso não constitui a realidade da programação em tempo real; Em um ambiente multitarefas o compartilhamento de recursos é implícito; Técnicas de compartilhamento de recursos; Bloqueio em tarefas mais prioritárias: inversão de prioridades; 16 / 46

Deadlocks 1 Dependência 2 Dependência Deadlocks 3 Classicação dos recursos 17 / 46

Deadlocks Introdução Os sistemas de computadores têm inúmeros recursos adequados ao uso de somente um processo a cada vez; Em ambiente de multiprogramação diversos processos podem competir por um número nito de recursos; Um processo em espera não poderá mudar de estado enquanto estiver aguardando algum recurso alocado por outro processo também em espera. 18 / 46

Deadlocks Denição [Favacho, 2009] Um conjunto de processos estará em situação de deadlock se todos os processos pertencentes ao conjunto estiverem esperando por um evento que somente um outro processo desse mesmo conjunto poderá fazer acontecer; O número de processos, bem como, o número e tipo dos recursos não são importantes; Isso é válido para qualquer tipo de recurso, tanto para hardware como para software. 19 / 46

Deadlocks Condições para deadlock O deadlock acontece em quatro situações [Tanenbaum and Machado Filho, 1995]: 1 Exclusão mútua: apenas um processo de cada vez pode utilizar o recurso; 2 Prende e espera: um processo bloqueia os recursos que precisa, e aguarda pelos que estão sendo utilizados por outros processos; 3 Não preempção: um recurso pode ser liberado apenas voluntariamente pelo processo, após o mesmo ter completado sua tarefa; 4 Espera circular: cada um dos processos espera um recurso que está sendo usado por outro processo em uma la. 20 / 46

Deadlocks Deadlock (grafo) Exemplo da Figura 20: (a) Processo de posse de um recurso (b) Processo requisitando um recurso; (c) Impasse (deadlock). Figura 2.1: Grafo de alocação de recursos [Tanenbaum and Machado Filho, 1995] 21 / 46

Deadlocks Exemplo de deadlock I Figura 2.2: Exemplo de como ocorre um impasse e como ele pode ser evitado [Tanenbaum and Machado Filho, 1995] 22 / 46

Deadlocks Exemplo de deadlock II Figura 2.3: Exemplo de como ocorre um impasse e como ele pode ser evitado (cont.) [Tanenbaum and Machado Filho, 1995] 23 / 46

Deadlocks Exemplo de deadlock III Figura 2.4: Exemplo de como ocorre um impasse e como ele pode ser evitado (cont.) [Tanenbaum and Machado Filho, 1995] 24 / 46

1 Dependência 2 Dependência Deadlocks 3 Classicação dos recursos 25 / 46

Conceitos As tarefas devem ser denidas seguindo uma prioridade nominal ou estática; Utilização de algum algoritmo de prioridade xa: RM; Prioridades estáticas versus prioridades ativas. 26 / 46

Figura 2.5: Técnica de inversão de prioridades [FARINES and MELO, 2000] 27 / 46

(uxo) Considere que as tarefas T 1, T 2, T 3 et 4 estão em ordem crescente de seus períodos; Utilização da escala RM para organizar as prioridades; T 1 e T 4 compartilham um recurso guardado por um mecanismo de exclusão mútua; O bloqueio que T 1 sofre pelo acesso anterior de T 4 ao recurso compartilhado é chamado de inversão de prioridade; Mesmo liberada, a tarefa T 1 não consegue evoluir por conta do bloqueio; T 1 sofre interferência de T 2 e T 3 durante o bloqueio As preempções de T 2 e T 3 sobre T 4 dicultam o cálculo do tempo de bloqueio para T 1. 28 / 46

Necessidades Quando as tarefas são dependentes, a inversão de prioridade é inevitável; Limitar a possibilidade de inversão de prioridades é importante; Regras de compartilhamento de recursos no tempo de pior caso; O tempo de pior caso sempre deve ser conhecido. 29 / 46

Protocolo de herança de prioridade PHP Determina que as tarefas sejam denidas possuindo prioridade nominal ou estática; Utilização de política de atribuição de prioridade xa em conjunto com uma prioridade dinâmica ou ativa; Inicialmente todas as tarefas possuem prioridades estáticas coincidindo com as prioridades ativas. 30 / 46

Algoritmo do PHP Quando uma tarefa T i é bloqueada sua prioridade é transferida a uma tarefa T j ; Quando T j reassume executa com a prioridade herdada de T i (p j = p i ); Ao executar, a tarefa herdada sempre mantém a prioridade mais alta de bloqueio; Ao liberar a região crítica, T j novamente passa a ter a prioridade ativa igual à prioridade nominal, ou; Assume a prioridade mas alta das tarefas que ainda estejam sob seu bloqueio. 31 / 46

Protocolo PHP Figura 2.6: Aplicação do protocolo PHP [FARINES and MELO, 2000] 32 / 46

Protocolo PHP (uxo) T 4 não sofre mais preempção de T 2 e T 3 ; Herda a prioridade de T 1 quando t = 5; Ao sair da região crítica (t = 7), T 4 volta ao nível de sua prioridade original. 33 / 46

Tipos de bloqueio [FARINES and MELO, 2000] Bloqueio direto Ocorre quando a tarefa mais prioritária tenta acessar o recurso compartilhado já bloqueado pela tarefa menos prioritária. Bloqueio por herança Ocorre quando uma tarefa de prioridade intermediária é impedida de continuar sua execução por uma tarefa que tenha herdado a prioridade de uma tarefa mais prioritária. O Protocolo de Herança de Prioridade dene um limite superior para o número de bloqueios que uma tarefa pode sofrer de outras menos prioritárias. 34 / 46

Protocolo de prioridade de teto PCP Ideia: limitar o número de bloqueios ou inversões de prioridades para evitar a formação de cadeias de bloqueios; Cadeias de bloqueio podem levar à formação de deadlocks; Dirigido para escalonamentos de prioridade xa, como o RM; Extensão do PHP adicionando uma regra de controle sobre os pedidos de entrada em exclusão mútua. 35 / 46

Descrição do PCP Incorpora o mecanismo de herança do PHP, ou seja, a tarefa T i transfere sua prioridade à tarefa T j no momento do bloqueio; Todos os recursos acessados em exclusão mútua possuem um valor de prioridade teto (ceiling) C(S k ): prioridade da tarefa mais prioritária que acessa o recurso; Regra para entrada em região crítica [FARINES and MELO, 2000]: Uma tarefa só acessa um recurso compartilhado se sua prioridade ativa for maior que a prioridade teto (ceiling) de qualquer recurso já previamente bloqueado. São excluídos da comparação recursos bloqueados pela tarefa requerente 36 / 46

Algoritmo do PHP Quando uma tarefa T i é bloqueada sua prioridade é transferida a uma tarefa T j ; Quando T j reassume executa com a prioridade herdada de T i (p j = p i ); Ao executar, a tarefa herdada sempre mantém a prioridade mais alta de bloqueio; Ao liberar a região crítica, T j novamente passa a ter a prioridade ativa igual à prioridade nominal, ou; Assume a prioridade mas alta das tarefas que ainda estejam sob seu bloqueio. 37 / 46

Algoritmo do PCP Quando uma tarefa T i é bloqueada sua prioridade é transferida a uma tarefa T j ; Quando T j reassume executa com a prioridade herdada de T i (p j = p i ); Considere S 1 o semáforo de maior prioridade entre todos os bloqueados: T i só entrará na região crítica se sua prioridade dinâmica for maior que que o ceiling C (S 1 ); Se p i S 1 o acesso é negado a T i ; Ao executar, a tarefa herdada sempre mantém a prioridade mais alta de bloqueio; Ao liberar a região crítica, T j novamente passa a ter a prioridade ativa igual à prioridade nominal, ou; Assume a prioridade mas alta das tarefas que ainda estejam sob seu bloqueio. 38 / 46

Exemplo do PCP Considere as tarefas T 1, T 2 e T 3 ; Acessa os respectivos recursos em exclusão mútua R 1, R 2 e R 3 ; A prioridade teto de cada semáforo é denida da seguinte forma, seguindo esquema de compartilhamento de recursos: C(S 1 ) = 1; C(S 2 ) = 1; C(S 3 ) = 2; Novo tipo de bloqueio: ceiling. A tarefa não possui possui prioridade dinâmica superior à maior prioridade teto entre os recursos ocupados. 39 / 46

Exemplo do PCP (gráco) Figura 2.7: Aplicação do protocolo PCP [FARINES and MELO, 2000] 40 / 46

Sequência de eventos [Tanenbaum and Machado Filho, 1995] 1 T 3 começa sua execução; 2 T 3 entra na região crítica (fecha o Semáforo S 3 ); 3 T 2 inicia seu processamento interrompendo T 3 (preempção de T 3 ); 4 T 2 sofre bloqueio direto: S 3 fechado por T 3 que reassume e herda prioridade de T 2 ; 5 T 3 entra na região crítica aninhada ao fechar semáforo S 2 ; 6 T 1 inicia e interrompe T 3. T 1 é mais prioritária que T 3 com a prioridade herdada de T 2 ; 7 T 1 tenta fechar semáforo S 1, é bloqueado por ceiling; possui prioridade igual ao maior ceiling de semáforo já fechado pelas outras tarefas (C(S 2 ) = 1); 41 / 46

Sequência de eventos (cont.) [Tanenbaum and Machado Filho, 1995] 8 T 3 libera semáforo S 2. T 1 é reativado e interrompe T 3. T 1 entra em S 1 ; 9 T 1 libera S 1 ; 10 T 1 fecha Semáforo S 2 ; 11 T 1 libera S 2 ; 12 T 1 termina e T 3 reassume na prioridade herdada de T 2 ; 13 T 3 libera S 3 retornando a sua prioridade estática. T 2 interrompe T 3 e fecha S 3 ; 14 T 2 libera S 3 ; 15 T 2 fecha e libera S 1 ; 16 T 2 completa e T 3 reassume; 17 T 3 completa. 42 / 46

Classicação dos recursos 1 Dependência 2 Dependência Deadlocks 3 Classicação dos recursos 43 / 46

Classicação dos recursos Sistemas operacionais de tempo real STOR Necessidade de controle do tempo; Limitações dos sistemas operacionais de propósito geral: Memória virtual; Mecanismos de acesso ao sistema de arquivos; Algoritmo de escalonamento, etc. Tipos de suporte de tempo real: NTR Núcleo de tempo real: kernel reduzido para aumentar a previsibilidade temporal. STOR Sistema operacional de tempo real: reescrita completa ou otimização de mecanismos de controle do tempo. Ex.: trocar algoritmo de escalonamento. 44 / 46

Classicação dos recursos Chagas, F. (2016). Notas de aula do Prof. Fernando Chagas. FARINES, J. M. and MELO, R. (2000). Sistemas de Tempo Real, volume 1. IME-USP. Favacho, A. (2009). Notas de aula da Profa. Aletéia Favacho. Tanenbaum, A. S. and Machado Filho, N. (1995). Sistemas operacionais modernos, volume 3. Prentice-Hall. 45 / 46

Classicação dos recursos OBRIGADO!!! PERGUNTAS??? 46 / 46