Informática – Sistemas Operacionais Trabalho de Gerência de Tarefa Cálculo de Pi – Utilizando Threads Gil Eduardo de Andrade EXPERIMENTO – GERÊNCIA DE TAREFAS 1. Objetivo Trabalho Visualizar de forma prática os conceitos vistos em sala de aula sobre gerência de tarefas, com intuito de compreender o comportamento do sistema operacional linux quando executando sobre processadores mono e multi-núcleos. 2. Especificações do trabalho Utilizar o executável disponibilizado pelo professor, que efetua o cálculo Pi utilizando múltiplas threads, para execução em máquinas com processador de apenas um núcleo e com processador de vários núcleos, guardando 5 tempos obtidos em experimentação para 1, 2, 4, 8, 16 e 32 threads. Após obtido os tempos tabelá-los e gerarando um gráfico que permitirá visualizar o comportamento tempo de execução x número de threads. Ao final explanar sobre os resultados obtidos, bem como sobre os gráficos plotados. 3. Exemplificando (Relatório Exemplo) Como executar e obter os tempos (em um terminal) # time ./pi [n_threads], onde n_threads será igual a 1, 2, 4, 8, 16 e 32 Desenvolvimento O código foi compilado e executado no sistema operacional linux Ubuntu. O experimento foi feito em uma máquina monoprocessada AMD Sempron 3200, clock de 1.8 Ghz e 256 Kb de Cache e em outra máquina multiprocessada Intel Core 2 Duo T8100, clock de 2.1 Ghz e 3 Mb de Cache para 1, 2, 4, 8, 16 e 32 threads. Tabelas com os Tempos Obtidos (Monoprocessado) Tabelas com os Tempos Obtidos (Multiprocessado) Gráfico com os Tempos Médios Obtidos (Monoprocessado) Gráfico com os Tempos Médios Obtidos (Multiprocessado) Questionário Porque os tempos no sistema monoprocessado (um núcleo) são muito próximos mesmo quando aumentamos o número de trarefas (threads) utilizadas para o cálculo de Pi? __________________________________________________________________ __________________________________________________________________ Porque os tempos no sistema multiprocessado (mais de um núcelo) tem uma queda brusca quando aumentamos o número de trarefas (threads) uma (1) para duas (2)? __________________________________________________________________ __________________________________________________________________ Por que os tempos nos sistemas mono e multi-processados são tão próximos quando utilizamos apenas uma tarefa (thread)? Se tivermos um software projetado para uma plataforma mono-processada, como por exemlpo, uma versão antiga do auto-cad, quais os benefícios de executarmos este produto em um sistema multiprocessado? __________________________________________________________________ __________________________________________________________________ __________________________________________________________________ __________________________________________________________________ Você trabalha em uma empresa na área de suporte, seu superior lhe chama e avisa que a máquina que possui, mono-processada não está conseguindo montar imagens 3D como devia devido ao peso do processamento. Nesse momento quais seriam seus procedimentos com relação a avaliação do software utilizado e com relação a comprar uma nova máquina multi-processada? __________________________________________________________________ __________________________________________________________________ __________________________________________________________________ __________________________________________________________________