O que é uma exclusão mútua e como é implementada?

Perguntado por: Vasco Leal  |  Última atualização: 2. März 2022
Pontuação: 4.1/5 (38 avaliações)

Exclusão mútua (também conhecida pelo acrônimo mutex para mutual exclusion, o termo em inglês) é uma técnica usada em programação concorrente para evitar que dois processos ou threads tenham acesso simultaneamente a um recurso compartilhado, acesso esse denominado por seção crítica.

Como acontece a exclusão mútua?

Exclusão mútua é a propriedade de um programa que garante que somente um processo tem acesso a determinada variável compartilhada em cada momento quando isso for necessário à correção do programa. É a solução mais simples para se obter a semântica não-determinística de um programa paralelo.

Quais as condições para se garantir a exclusão mútua?

Desabilitando interrupções: A forma mais simples de garantir a exclusão mútua, é fazer com que cada processo, ao entrar na região crítica, desabilite interrupções, e as reabilite antes de sair, impedindo que a UCP seja chaveada para outro processo.

Qual a importância da exclusão mútua?

Exclusão mútua

A execução de dois ou mais processos concorrentes pode ser feita com ou sem interação entre eles. ... Um deles é a obtenção de exclusão mútua, que é necessária quando dois ou mais processos têm que acessar um dado recurso que não pode ser compartilhado.

O que é uma aplicação concorrente?

É uma aplicação estruturada de maneira que partes diferentes do código do programa possam executar concorrentemente. Este tipo de aplicação tem como base a execução cooperativa de múltiplos processos ou threads, que trabalham em uma mesma tarefa na busca de um resultado comum.

Exclusão mútua

42 questões relacionadas encontradas

Quais as vantagens da programação concorrente?

A principal vantagem do uso da programação concorrente é o aumento do desempenho dos programas, pois é possível aumentar a quantidade de tarefas executadas em um determinado período de tempo.

Qual é a motivação para a programação concorrente?

2 Motivação

Um programa concorrente pode apresentar todos os tipos de erros que aparecem nos programas seqüenciais e, adicionalmente, os erros associados com as interações entre os processos. Muitos erros dependem do exato instante de tempo em que o escalonador do sistema operacional realiza um chaveamento de contexto.

O que é região crítica e exclusão mútua?

Uma região crítica é geralmente usada quando um programa multitarefa deve atualizar diversas variáveis relacionadas sem que outra linha de execução faça modificações conflitantes nos dados. ... A definição da região crítica é importante para a implementação de exclusão mútua, usada para evitar condições de corrida.

Porque a exclusão mútua Evita a ocorrência de condições de corrida?

A exclusão mútua, que é a certeza de que, caso exista um processo executando sua região crítica, nenhum outro processo vai poder executar a sua até que o primeiro termine sua execução. ... Que nenhum fluxo deve ser impedido de entrar na região crítica, caso outro fluxo não esteja utilizando a sua.

Por que é importante sincronizar processos em um sistema?

A sincronia de processos permite gerenciar o acesso concorrente a recursos do sistema operacional de forma controlada por parte dos processos, de maneira que um recurso não seja modificado em simultâneo, ou que os processos não fiquem em espera que o recurso seja libertado.

Como implementar exclusão mútua?

Um meio simples para exclusão mútua é a utilização de um semáforo binário, isto é, que só pode assumir dois valores distintos, 0 e 1. O travamento por semáforo deve ser feito antes de utilizar o recurso, e após o uso o recurso deve ser liberado.

Quais são técnicas de exclusão mútua baseada em hardware?

5 Exclusão Mútua Soluções de Hardware Podem ser implementadas através de mecanismos de hardware, desabilitação interrupções e test-and-set.

Como funcionam os monitores para tratar a exclusão mútua?

A forma de implementação do monitor já garante a exclusão mútua na manipulação dos seus dados internos. Apenas um processo pode “estar executando” em um monitor. Qualquer outro processo que tenha invocado o monitor é bloqueado (esperando pela disponibilidade do monitor).

O que causa um deadlock?

O deadlock ocorre com um conjunto de processos e recursos não-preemptíveis, onde um ou mais processos desse conjunto está aguardando a liberação de um recurso por um outro processo, o qual, por sua vez, aguarda a liberação de outro recurso alocado ou dependente do primeiro processo.

Como pode ocorrer a comunicação entre processos?

A troca de mensagens entre dois processos é feita através de duas operações de comunicação: send e receive. Assim para que um processo se comunique com o outro, o processo origem envia ( send ) uma mensagem para um destino , onde um outro processo recebe a mensagem ( receive ).

O que é espera ocupada e qual o seu problema?

Espera ocupada é um modelo de programação paralela caracterizado por testes repetidos de um condição que impedem o progresso de um processo e que só pode ser alterada por outro processo.

O que é como evitar uma condição de corrida?

Para impedir que as condições de corrida ocorram, você pode bloquear variáveis compartilhadas, para que apenas um thread por vez tenha acesso à variável compartilhada.

O que é uma situação de corrida?

Uma condição de corrida é uma falha num sistema ou processo em que o resultado do processo é inesperadamente dependente da sequência ou sincronia doutros eventos.

Por que a inibição das interrupções não é recomendada para implementação da exclusão mútua?

Não assegura exclusão mútua, pois cada processo pode chegar à conclusão de que o outro não quer entrar e, assim, entrarem simultaneamente nas R.C. Isso acontece porque existe a possibilidade de cada processo testar se o outro não quer entrar (comando while) antes de um deles marcar a sua intenção de entrar.

O que é o problema da região crítica?

Região Crítica é a área de um código ou recurso compartilhado que depende expressivamente que o acesso à mesma seja realizado de maneira sequencial. Porém, sabido da possibilidade de condição de corrida, essa região deverá ser tratada de maneira especial de maneira a evitar/tratar condições de corrida entre processos.

O que é o problema da seção crítica?

O problema da Seção Critica está em garantir que, quando um processo está executando sua seção crítica, nenhum outro processo entre na sua respectiva Seção crítica. No exemplo, enquanto o processo Escritor estiver inserindo um nome na fila, o processo Leitor não poderá retirar nomes da fila, e vice-versa.

Quais os três requisitos que uma solução para o problema da seção crítica deve satisfazer?

Uma solução para a seção critica deve satisfazer aos três requisitos a seguir. - exclusão mutua: se Pi esta na seção critica, nenhum outro processo pode entrar nela. - Progresso garantido: se nenhum outro processo está na seção critica, um progresso que tente faze-lo não pode ser detido indefinidamente.

Quais as principais regras para a programação concorrente?

Como sistemas concorrentes necessitam a utilização de recursos compartilhados, a programação concorrente geralmente requer o uso de algum método de árbitro, um elemento neutro, para coordenar o acesso a tais recursos.

Qual é a diferença entre programação paralela e programação concorrente?

Muita gente confunde programação paralela com programação concorrente. Concorrência é quando um servidor atende a vários clientes escalando um determinado tempo para atender cada um, já o Paralelismo é quando vários servidores atendem vários clientes ao mesmo tempo, reduzindo o tempo de resposta para os clientes.

O que são processos concorrentes Direito Empresarial?

Conceito. Concorrência consiste na disputa entre agentes econômicos na busca pelo mercado e pelo desenvolvimento de suas atividades, valendo-se do direito ao livre exercício da atividade econômica.

Artigo anterior
Como pegar o documento de licenciamento 2020?
Artigo seguinte
Qual o impacto da globalização na vida das pessoas?