Exercicios
1. Defina o que é uma aplicação concorrente e dê um exemplo de sua utilização.
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? 3. O que é exclusão mútua e como é implementada?
4. Como seria possível resolver os problemas decorrentes do compartilhamento da matriz, apresentado anteriormente, utilizando o conceito de exclusão mútua?
5. O que é starvation e como podemos solucionar esse problema?
6. Qual o problema com a solução que desabilita as interrupções para implementar a exclusão mútua?
7. O que é espera ocupada e qual o seu problema?
8. Explique o que é sincronização condicional e dê um exemplo de sua utilização.
9. 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.
10. 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. 11. 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.
12. Qual a vantagem da forma assíncrona de comunicação entre processos e como esta pode ser implementada?
1 3 . 0 que é deadlock, quais as condições para obtê-lo e quais as soluções possíveis?
14. Em uma aplicação concorrente que controla saldo bancário em contas-correntes, dois processos compartilham uma região de memória onde estão armazenados os saldos dos clientes A e B. Os processos executam concorrentemente os seguintes passos: Supondo que os valores dos saldos de A e B sejam, respectivamente, 500 e 900, antes de os processos executarem, pede-se:
a) Quais os valores corretos esperados para os saldos dos clientes A e B após o término da execução dos