Escolar Documentos
Profissional Documentos
Cultura Documentos
2. Teste de Corretude
Os testes foram realizados com números diferentes de consumidores e tamanhos de blocos e
arquivos de entrada com dimensões diferentes.
Para verificar se o arquivo estava correto ou não foi criado um arquivo de verificação
(corretude.py) que verificava se cada linha do arquivo de saída está em ordem crescente. Nos
testes que realizamos, não encontramos erros.
3. Avaliação de Desempenho
P = Produtor
C = Consumidor
N = tamanho do bloco
Para o exemplo acima usamos um arquivo com 500 números com 3,6KB.
Para o exemplo abaixo temos um arquivo com 4000 números com 28,5KB.
4. Discussão
Com a tabela acima podemos ver que criar as threads e seu mecanismo podem ser
onerosos e dependendo do caso vale a pena realizar o uso da computação
concorrente. Olhando a tabela que tem 500 caracteres, pode-se ver que quanto mais
threads consumidoras se tem, maior o tempo de sincronização delas e por isso
acaba não valendo muito a pena. Mas em arquivos maiores, ainda se vê uma
melhora no desempenho, principalmente com quantidade de threads menores.
Acreditamos que além do tempo de criação das threads (que é de certa forma,
comum a todas a todos os casos da tabela), existe o tempo de sincronização entre
elas. Ter mais consumidores e um único produtor pode ter uma espera prolongada
pois a thread consumidoras disputam enquanto apenas uma produz.
5. Referências Bibliográficas
http://www.cmaismais.com.br/referencia/cstdio/fgets/ - Funções de escrita de arquivo