relatoriotrab2
DESCRIPTION
Trabalho de threadsTRANSCRIPT
SISTEMAS OPERACIONAISRELATÓRIO DA EXECUÇÃO DE 'T' THREADS
Alunos: Árthur Pinheiro e Lucas Pagliarini
Professora: Patrícia PitthanUNIVERSIDADE FEDERAL DE SANTA MARIA – ENGENHARIA DE COMPUTAÇÃO
* Item 'A' – Tabelas/gráficos de tempo de execução
É importante ressaltar que os tempos resultantes dos testes apenas levaram em consideração a parte da execução do trabalho das threads em si, ou seja, apenas a parte do código em que as threads executam de fato - threadFunction.
➔ Utilizando 1 thread:
Teste 1 [s] Teste 2 [s] Teste 3 [s] Teste 4 [s] Teste 5 [s] Média [s]
1.96e-4 1.54e-4 1.86e-4 1.12e-4 1.15e-4 1.526e-4
➔ Utilizando 2 threads:
Teste 1 [s] Teste 2 [s] Teste 3 [s] Teste 4 [s] Teste 5 [s] Média [s]
2.65e-4 2.59e-4 2.42e-4 1.97e-4 2.88e-4 2.502e-4
➔ Utilizando 4 threads:
Teste 1 [s] Teste 2 [s] Teste 3 [s] Teste 4 [s] Teste 5 [s] Média [s]4.23e-4 5.19e-4 5.42e-4 3.62e-4 3.60e-4 4.412e-4
➔ Utilizando 5 threads:
Teste 1 [s] Teste 2 [s] Teste 3 [s] Teste 4 [s] Teste 5 [s] Média [s]4.26e-4 6.69e-4 2.74e-4 3.74e-4 5.60e-4 4.606e-4
➔ Utilizando 10 threads:
Teste 1 [s] Teste 2 [s] Teste 3 [s] Teste 4 [s] Teste 5 [s] Média [s]
9.35e-4 1.163e-3 1.446e-3 1.071e-3 6.18e-4 0.0010466
➔ Utilizando 20 threads:
Teste 1 [s] Teste 2 [s] Teste 3 [s] Teste 4 [s] Teste 5 [s] Média [s]0.002884 0.001189 0.00235 0.001692 0.003553 0.0021696
➔ Utilizando 50 threads:
Teste 1 [s] Teste 2 [s] Teste 3 [s] Teste 4 [s] Teste 5 [s] Média [s]0.005162 0.006624 0.00573 0.004399 0.00667 0.005717
➔ Utilizando 100 threads:
Teste 1 [s] Teste 2 [s] Teste 3 [s] Teste 4 [s] Teste 5 [s] Média [s]0.007502 0.00806 0.006317 0.005708 0.013971 0.0083116
* Item 'B' – Análise comparativa dos dados coletados
Após a conclusão dos testes e as medidas devidamente tomadas, observou-se que com aumento no número de threads o desempenho do programa baixava. Com isso, é possível inferir que a divisão igualitária do trabalho entre muitas threads tem desempenho mascarado pelo overhead de criação e execução das mesmas, já que esse trabalho é ínfimocomparado à tarefa de gerar tantas pthreads. Ou seja, a divisão igualitária de recursos de hardware para um número elevado de threads acaba não compensando por conta do overhead.
Portanto, não foi possível afirmar que com um aumento do número threads, e consequentemente redução do intervalo de trabalho, obteve-se um desempenho satisfatório.