2. 1. Crie um programa concorrente com Threads (Java ou C) no estilo Produtor-Consumidor,
onde o processo produtor cria números aleatórios de 1 a 100000, e o processo consumidor
analisa e verifica se o número criado é primo ou não. Simule uma situação onde o tem-se
apenas um produtor e N consumidores, onde N é representado pelo dobro do número de
processadores disponíveis na máquina. Limite o tamanho da lista (ligada) a armazenar 10
números. Ao final, após a geração de 10², 10³ e 10⁴ números pelo produtor, o programa
deverá exibir a quantidade total de números primos encontrados. Especifique a configuração
da máquina utilizada e o Speedup máximo encontrado.
2. Modifique o programa acima para uma configuração de Leitores e Escritores, onde a Lista
com números gerados pelos processos escritores estará limitada a 10², 10³ e 10 ⁴ números
aleatórios na mesma faixa designada acima. Crie dois processos escritores que escrevem na
lista e N processos leitores que tem o mesmo objetivo do exercício acima, ou seja, verificam
se um número é primo ou não. Crie um mecanismo externo de controle para que dois
processos leitores leiam posições diferentes para o correto cálculo da quantidade de números
primos.
3. Crie uma solução em pseudo-código com um algoritmo concorrente utilizando de semáforos
para o problema denominado popularmente como: "Problema ifesdo Barbeiro Adormecido".
Onde se tem uma barbearia com um barbeiro e N cadeiras de espera para clientes. Quando
um cliente chega e o barbeiro está trabalhando, o cliente deverá esperar a sua vez de ser
atendido sentado em uma cadeira. Caso não existam cadeiras vazias o cliente vai embora. Se
um cliente chega e encontra a barbearia vazia, com o barbeiro dormindo, ele deve acordar o
barbeiro.
4. Resolva o problema acima com monitores.
5. Resolva um Quick-Sort concorrente com Decomposição recursiva.
6. Resolva o problema de se buscar N números primos em uma lista de números aleatórios,
como no exercício 1, com mapeamento dinâmico da forma Mestre-Escravo e Self-
Scheduling, para M threads.
Em breve, no unifesp.tk a resolução da lista.