Você está na página 1de 9

UNIANCHIETA - UNIVERSIDADE PADRE ANCHIETA

CIÊNCIAS DA COMPUTAÇÃO

VICTOR HUGO MARTINS DE OLIVEIRA


RA: 2004526

RELATOS SOBRE A ITERAÇÃO DE PROGRAMAS RODADADOS DE FORMA


CONCORRENTE, E ORDENANDO PROCESSOS

JUNDIAÍ
2020
INTRODUÇÃO

Iniciamos o semestre com a matéria Programação Distribuída, Paralela e Concorrente


ministrada pelo Professor Cesar Tegani Tofanini. Neste aula ele introduziu os conceitos de
sincronização em processos diferentes e aplicou uma atividade para entrega, onde devemos
avaliar iteração de dois programas rodando de forma concorrente e relatar as dificuldades de
criar estes programas.

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.

Figura 1: programa "par.c"

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.

Figura 3: Rodando pela primeira vez "par.c" e "impar.c" de forma concorrente


Resultando neste arquivo “teste.txt”

Figura 4: Resultado 1 - "teste.txt"

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.

Figura 5: Programa "par.c" alterado


Figura 6: Programa "impar.c" alterado
Resultando no arquivo “teste.txt” resultados ordenados.

Figura 7: Resultado do arquivo "teste.txt"


rodando os porgramas de forma
concorrente e obtendo o resultado
ordenado
CONCLUSÃO

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”.

Você também pode gostar