-
-
-
CENAPAD-MGCO
A seguir: Respostas
Acima: Introdução à Programação Paralela
Anterior: Conclusões
Exercício 17082 (Quicksort paralelo)
Proponha uma versão paralela para o Quicksort. Mostre o grafo de precedências associado ao procedimento. Supondo que a mediana de cada partição é sempre escolhida como pivô, calcule o tempo necessário para a ordenação de n elementos por um computador com muitos processadores. Considere nulo o tempo necessário para a criação e término de processos. Observação: Classificação em paralelo constitui um campo ativo de pesquisa; um panorama da área pode ser encontrado em [Bitton et al., 1984]
Exercício 17084 (Comparação e Troca em paralelo)
(Solução ) Proponha um ``sort'' paralelo baseado no algoritmo de comparação e troca, onde fases pares e ímpares se alternam. Nas fases pares os elementos de índice par são comparados com os seus sucessores imediatos, sendo feitas trocas nas posições desordenadas. As fases ímpares são análogas. Calcule o tempo necessário para a ordenação de um vetor com n elementos.
Exercício 17086 (Transações)
(Solução ) Considere o seguinte programa:
a = 1; b = 1; cobegin T1:: a := a + 100; b := b + 100; || T2:: a := a * 2; b := b * 2; coendNa terminologia introduzida por [Eswaran et al., 1976], uma transação é uma unidade de consistência , isto é, um procedimento que, se executado isoladamente, preserva a consistência de um banco de dados. Supondo que a = b é a condição de consistência no programa acima, T1 e T2 seriam transações. O controle de concorrência de um banco de dados deve cuidar para que o efeito de transações executadas em paralelo seja equivalente à sua execução numa sequência qualquer. Acrescente ao programa acima comandos de sincronização que garantam a serializabilidade de sua execução. Procure maximizar o paralelismo, não utilizando uma única região crítica.
Exercício 17087 (Escalonamento SJF)
Uma impressora é compartilhada por diversos processos. Cada processo cliente submete seu arquivo chamando printerScheduler.submit(int fileSize) ; Seu servidor deve:
Exercício 17088 (Aging)
Arquivos muito grandes podem ser preteridos indefinidamente numa política SJF. Mude a solução do problema anterior, usando a técnica de aging (envelhecimento), onde:
Exercício 17089 (Controlando o nível de paralelismo)
Modifique a solução para o problema dos leitores e escritores de forma a permitir que no máximo 4 leitores consigam ler simultaneamente.
Exercício 17090 (Árvore-B)
(Solução ) Um sistema de controle de concorrência de uma árvore-B pode adotar a seguinte sistemática:
Exercício 17098 (Pool de Recursos Idênticos)
R recursos idênticos são compartilhados por C processos clientes. Um recurso não pode ser utilizado por mais de um processo simultaneamente. A vida de um processo cliente segue o ciclo:
Exercício 17099 (Buffer com mútiplos clientes)
Encontre uma solução equânime (livre de starvation ) para o problema do compartilhamento de um buffer limitado por um número qualquer de processos produtores e consumidores.