Mudanças entre as edições de "ADS29009-2019-1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 14: Linha 14:
 
==ATIVIDADE 1==
 
==ATIVIDADE 1==
  
O código abaixo permite estimar o tempo de execução do programa (processo) para executar um determinado loop indicado.
+
O código abaixo permite estimar o tempo de execução do programa (processo) para executar um determinado loop.
 
Modificar o programa e gerar um gráfico mostrando a média do tempo de execução para uma faixa de 1 até 100 processos.
 
Modificar o programa e gerar um gráfico mostrando a média do tempo de execução para uma faixa de 1 até 100 processos.
 
Discutir o resultado. Postar no SIGAA um mini-relatório com dados do PC utilizado (número de cores), código, gráfico e discussão do resultado.
 
Discutir o resultado. Postar no SIGAA um mini-relatório com dados do PC utilizado (número de cores), código, gráfico e discussão do resultado.

Edição das 15h56min de 12 de fevereiro de 2019

AULA 1 - Dia 26/07/2018

  • Apresentar e Discutir Plano de Ensino
  • Conceitos em ADS

Plano de Ensino

SLIDES DA AULA

ATIVIDADE 1

O código abaixo permite estimar o tempo de execução do programa (processo) para executar um determinado loop. Modificar o programa e gerar um gráfico mostrando a média do tempo de execução para uma faixa de 1 até 100 processos. Discutir o resultado. Postar no SIGAA um mini-relatório com dados do PC utilizado (número de cores), código, gráfico e discussão do resultado.

//Modificado de https://www.geeksforgeeks.org/measure-execution-time-with-high-precision-in-c-c/

  1. include <sys/time.h>
  2. include <sys/types.h>
  3. include <unistd.h>
  4. include <stdio.h>


int main() {

   long int i;
   double tempo_bloco; 
   for (i=0;i<23;i++) {
   	if (fork()==0) {
   		struct timeval start, end; 
   
   		gettimeofday(&start, NULL); 
  
               for (i=0; i<10000000000L; i++)  {  // loop de interesse
               } 
   		gettimeofday(&end, NULL);   
   		tempo_bloco = (end.tv_sec - start.tv_sec) * 1e6; 
   		tempo_bloco = (tempo_bloco + (end.tv_usec -  
                             start.tv_usec)) * 1e-6; 
   		printf("Tempo = %lf\n", tempo_bloco);
   		return 0; 
   	}
   }

} </syntaxhighlight>