-
Alguém explica?
-
Alguém?!
-
A questão fala mais sobre uma "condição de corrida ou 'concorrência'", onde processos ou threads dependem de recurso ou sincronia de outros eventos. De fato a exclusão mútua seria uma técnica eficaz para evitar essa concorrência. Também não entendi o motivo da questão ser considerada errada.
-
Monitores são mecanismos de sincronização de alto nível que tornam mais simples o desenvolvimento de aplicações concorrentes.
• O monitor é formado por procedimentos e variáveis encapsulados dentro de um módulo. ("não entra thread");
• Um monitor é definido especificando-se um nome, declarando-se variáveis locais, procedimentos e um código de inicialização;
• Um processo faz chamada a um dos procedimentos do monitor, caso outro processo já o esteja executando, o processo aguarda a sua vez na fila de entrada.
-
O erro esta em "é permitir que uma thread espere, dentro de um monitor".
A thread fica na fila de wait (espera) e não dentro de um monitor.
-
e-
Exclusao mutua é uma das condicoes para deadlock. As condicoes sao:
excusao mutua - cada recurso esta ou associado a 1 processo ou disponivel
posse e espera - processos que retêm recursos podem pedir novos recursos
nao preempção - recursos em 1 processo nao podem ser pegados à força; somente com liberação pelo processo. (pelo escalonamento preemptivo, é possivel 1 processo sair do CPU e retornar ao estado de espera se o SO encontrar 1 processo com prioridade maior.)
espera circular - encadeamento de +1 processos - cada 1 quer 1 recurso usado pelo seguinte na cadeia.
-
Exclusao mutua é um grupo de processos com áreas de operacao obstruidas devido a falta de coordenção de threads executarem ao mesmo tempo; gerando uma estrutura de dado em estado inconsistente e carente de intervenção externa para se resolver. Envolve processos ou threads concorrentes com recursos críticos que sao exigidos por outros processos/threads.