Escolar Documentos
Profissional Documentos
Cultura Documentos
CIÊNCIAS DA COMPUTAÇÃO
JUNDIAÍ
2020
INTRODUÇÃO
OBJETIVO
Tenho como objetivo do presente trabalho escrever dois programas que rodam de forma
concorrente, acessando e gravando informações em um arquivo .txt primeiramente sem
ordenação, e avalia-los.
Posteriormente devemos criar um algorítimo que rodando em formato concorrente gravando
informações de forma alternada no arquivo .txt, e então avalia-las e relatar as dificuldades de
criar estes programas.
METODOLOGIA
Será criado um programa chamado ‘par.c’, que é rodado dentro de um laço, atrasando o
processo propositalmente e que gravará a cada ciclo no arquivo ‘teste.txt’ em modo “append”
a palavra “PAR”.
Um segundo programa será criado, chamado ‘impar.c’, que também atrasado
propositalmente, com grandes laços, tendo um tempo de resposta diferente do programa
‘par.c.’' Este gravará em um laço infinito no arquivo ‘teste.txt’ em modo “append” a palavra
“IMPAR”.
Rodaremos os dois programas simultaneamente e analisaremos os resultados no arquivo
‘teste.txt’.
Depois de analisarmos os resultados, será modificado estes dois programas para que ao
roda-los de forma concorrente seja possível fazer alterações no arquivo “teste.txt” de forma
ordenada. Então para finalizar devemos relatar as dificuldades no meio da construção destes
programas, e as possíveis tentativas e soluções para o problema.
PROGRAMAS SEM ORDENAÇÃO
Dentro de um laço, o programa abrirá o arquivo “teste.txt” em modo ‘append’, passará pelo
grande laço que atrasa propositalmente o processo do programa, gravará um linha com a
palavra “PAR” e terá como saída no promp de comando a palavra “PAR”, para garantir que
foi feito a iteração.
Outro programa foi criado, chamado “impar.c”, fará o mesmo processo que o programa
“par.c”, porém com uma quantidade de laços maiores para atrasar ainda mais a iteração e
que gravará a palavra “IMPAR” no arquivo “teste.txt”
Figura 2: programa "impar.c"
Rodando-os de forma concorrente, é possível ver a diferença no prompt, a velocidade de
gravação de cada programa, forçada pelos grandes laços nos programas, exibidos na Figura
1 e Figura 2.
O programa para gravar a palavra “PAR” está com menos laços, e faz com que grave mais
vezes a palavra no arquivo “teste.txt”, este é possível perceber que não foram gravados de
forma alternada.
ORDENANDO PROGRAMAS
Para que os dois programas grave no arquivo “teste.txt” com ordenação, de forma
concorrente, foram feitas algumas atualizações nos códigos dos programas “par.c” e
“impar.c”.
Foi adicionado uma linha na qual o programa checa o último resultado do arquivo “teste.txt”,
caso o resultado for oposto, este gravará seu valor, rodando-os de forma concorrente, este
gravará as palavras “PAR” e “IMPAR” ordenando-as.
No primeiro teste, ao rodarmos os programas “par.c” e “impar.c” obtivemos como resultado a gravação
no arquivo “teste.txt”, sem ordenação.
No segundo teste, o resultado da gravação no arquivo “teste.txt”, tendo os programas “par.c” e
“impar.c” rodando de forma concorrente foram ordenados.
Quando esta atividade foi proposta, Imaginei um programa no qual fosse possível ler o último resultado
e fazer gravações baseado neste arquivo, então procurei a sintaxe em “C” no google que poderia
atender a minha necessidade de comparar dois vetores do tipo string e uma forma de poder ler o último
registro do arquivo “teste.txt” e fiz as alterações nos programas “par.c” e “impar.c”.
Rodando-os, de forma concorrente, funcionou como esperado, gravando as palavras “PAR” e “IMPAR”
ordenadamente no arquivo “teste.txt”.