Você está na página 1de 2

1 Defina o que é uma aplicação concorrente e dê um exemplo de sua

utilização.
Uma aplicação estruturada de forma que partes diferentes do código sejam executadas
de maneira concorrente. Essa aplicação tem como base a execução cooperativa de
múltiplos
processos que trabalham na busca de um resultado comum.

2 Considere uma aplicação que utilize uma matriz na memória principal para
a comunicação entre vários processos concorrentes. Que tipo de problema
pode ocorrer quando dois ou mais processos acessam uma mesma posição
da matriz?
Pode haver inconsistência nos dados salvos na matriz, com um dado sobrescrevendo
outro.

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


Ela evita que um ou mais processos usem o mesmo recurso de maneira simultanea.
Quando um processo está usando um recurso, outros deverão esperar para poder usar
o recurso.

4 Como seria possível resolver os problemas decorrentes do compartilhamento


da matriz, apresentado anteriormente, utilizando o conceito de exclusão
mútua?
Permitir apenas um processo acessar a matriz por vez.

5 O que é starvation e como podemos solucionar esse problema?


É quando o processo não consegue executar sua região crítica, e por conseguinte,
acessar
o recurso compartilhado.
Há soluções de hardware e soluções de software, sendo desabilitação de
interrupções, que consiste
no processo desabilitando todas as interrupções antes de entrar na região crítica,
e reabilite elas
quando sair da região crítica, mas aprensenta problemas pois sistemas
multiprogramaveis podem ser
comprometidos. A solução de software apresenta a exclusão multua de dois processos,
com um mecanismo
de controle alternando a execução das regiões criticas.

6 O que é espera ocupada e qual o seu problema?


Quando o processo tenta acessar o recurso, porem o mesmo já está ocupado, e um loop
é realizado
até que o acesso seja permitido.

7 Explique o que é sincronização condicional e dê um exemplo de sua


utilização.
É a situação no qual o acesso a um recurso que esta sendo compartilhado exige a
sincronização
de processos vinculados a uma determinada condição de acesso.
Gravação e leitura de buffer.

8 Explique o que são semáforos e dê dois exemplos de sua utilização: um para


a solução da exclusão mútua e outro para a sincronização condicional.
O semaforo é uma variavel inteira e não negativa que guarda um contador para
controlar
o acesso de um determinado recurso compartilhado em um ambiente multiprogramavel.
O valor do contador representa quantos processos podem utilizar esse recurso
compartilhado.
A exclusão multua, toda vez que um processo deseja entrar em sua região critica, o
mesmo executa uma instrução
down, se o semaforo estiver com valor 1, esse valor é decrementado e o processo
pode executar as instruções
da região critica, caso contrario, permanece em espera.
A sincronização condicional, quando o processo solicita uma operação de entrada e
saída, o pedido faz com que
o processo executa a instrução down e fique no estado de espera até que a operação
de E/S esteja completa.

9 Apresente uma solução para o problema dos filósofos que permita que os
cinco pensadores sentem à mesa, porém evite a ocorrência de starvation e
deadlock.
Ter uma autoridade presente que gerencie quem esta na vez de comer.

10 Explique o que são monitores e dê dois exemplos de sua utilização: um para


a solução da exclusão mútua e outro para a sincronização condicional.
São mecanismos de sincronização de alto nivel, tornando mais simples o processo de
desenvolvimento de aplicações.

11 Qual a vantagem da forma assíncrona de comunicação entre processos e


como esta pode ser implementada?
Aumenta a eficacia das aplicações concorrentes. Para ser implementada, é necessario
buffers para armazenar as mensagens, e outros mecanismos de sincronização que
permitam
ao processo identificar se a mensagem foi enviada ou recebida.

12 O que é deadlock, quais as condições para obtê-lo e quais as soluções


possíveis?
Quando o processo fica aguardando por um recurso que nunca vai estar disponivel ou
um evento
que não vai acontecer.
Há quatro condições para que ocorra o deadlock:
Exclusão multua: cada recurso pode ser alocado apenas a um unico processo
Espera por recurso: o processo, pode estar esperando outros recursos e este já
possui recursos alocados
Não preempção: o recurso não pode ser liberado de um processo só porque outros
processos
desejam o mesmo recurso
Espera circular? o processo pode ter de esperar por um recurso alacado a outro e
viceversa
Suspender um processo, liberar seus recursos, e quando o deadlock for resolvido,
retornar o processamento, conhecido como rollback

Você também pode gostar