SóProvas


ID
1780243
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Sistemas Operacionais
Assuntos

Julgue o item subsequente, a respeito dos conceitos de sistema operacional.

Uma maneira eficiente de garantir exclusão mútua é permitir que uma thread espere, dentro de um monitor, pelo recurso desejado e alocado para outra thread.

Alternativas
Comentários
  • 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.