<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Matheus Bratfisch &#187; Programação Concorrente</title>
	<atom:link href="http://www.matbra.com/category/programacao-concorrente/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.matbra.com</link>
	<description>&#34;Cogito ergo sum&#34;</description>
	<lastBuildDate>Tue, 20 Dec 2011 00:03:21 +0000</lastBuildDate>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>MD5 &#8220;Decrypter&#8221;, Java</title>
		<link>http://www.matbra.com/2009/06/23/md5-decrypter-java/</link>
		<comments>http://www.matbra.com/2009/06/23/md5-decrypter-java/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 01:00:57 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[Programação Concorrente]]></category>
		<category><![CDATA[brute force]]></category>
		<category><![CDATA[computação distribuida]]></category>
		<category><![CDATA[exercicios]]></category>
		<category><![CDATA[força bruta]]></category>
		<category><![CDATA[md5]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=331</guid>
		<description><![CDATA[Boa noite, Nas aulas de programação concorrente o professor passou uma introdução de Programação Distribuida e pediu que nós criassemos algo que utilizasse ela. Então eu sugeri ao meu colega Olav para implementarmos um &#8220;quebrador&#8221; de senha por força bruta. O mesmo funciona da seguinte maneira, existe um master onde os slaves se conectam, o [...]]]></description>
			<content:encoded><![CDATA[<p>Boa noite, </p>
<p>Nas aulas de programação concorrente o professor passou uma introdução de Programação Distribuida e pediu que nós criassemos algo que utilizasse ela. Então eu sugeri ao meu colega Olav para implementarmos um &#8220;quebrador&#8221; de senha por força bruta. O mesmo funciona da seguinte maneira, existe um master onde os slaves se conectam, o master informa a string a ser quebrada e qual faixa de caracteres o slave deve tentar. Após terminar aquela faixa caso ele não obtenha sucesso o slave recebe uma nova faixa, caso ele encontre, ele informa o master qual a string utilizada para gerar tal MD5. </p>
<p><a href="http://www.matbra.com/?attachment_id=330">Implementação do &#8220;MD5 Decrypter&#8221;<br />
</a></p>
<p>Existem muitas coisas que ainda podem ser aperfeiçoadas nesse programa como:<br />
- Não precisar um número fixo de Slaves. Aceitar todos que forem se conectando em tempo real.<br />
- Melhor distribuição de faixas. </p>
<p>Ele pode ser praticamente o inicio de um programa de Força Bruta Distribuida, que já devem existir vários por ai.</p>
<p>Espero que goste,<br />
Matheus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2009/06/23/md5-decrypter-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício Estacionamento, Java, Programação Concorrente.</title>
		<link>http://www.matbra.com/2009/06/22/exercicio-estacionamento-java-programacao-concorrente/</link>
		<comments>http://www.matbra.com/2009/06/22/exercicio-estacionamento-java-programacao-concorrente/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 21:12:28 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[Programação Concorrente]]></category>
		<category><![CDATA[exercicios]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=325</guid>
		<description><![CDATA[Boa tarde, Semana passada fiz a última prova de Programação Concorrente deste semestre. O problema que devia se solucionar era o seguinte: O estacionamento de uma universidade possui 30 vagas. Enquanto o mesmo possue vagas, não existe prioridade para quem estaciona. Quando o mesmo está cheio, forma-se uma fila, onde professores possuem a mais alta [...]]]></description>
			<content:encoded><![CDATA[<p>Boa tarde, </p>
<p>Semana passada fiz a última prova de Programação Concorrente deste semestre. O problema que devia se solucionar era o seguinte: </p>
<blockquote><p> O estacionamento de uma universidade possui 30 vagas. Enquanto o mesmo possue vagas, não existe prioridade para quem estaciona. Quando o mesmo está cheio, forma-se uma fila, onde professores possuem a mais alta prioridade, seguido pelos funcionarios e após os alunos. Utilize java com Threads para &#8220;simular&#8221; este problema. Utilize 10 professores, 15 funcionários, 30 alunos.</p></blockquote>
<p>O Professor Mazzucco, disponibilizou uma implementação do mesmo que vou disponibilizar para vocês. </p>
<p><a href="http://www.matbra.com/?attachment_id=326">Implementação problema estacionamento em Java</a></p>
<p>Matheus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2009/06/22/exercicio-estacionamento-java-programacao-concorrente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercícios, Programação Concorrente.</title>
		<link>http://www.matbra.com/2009/05/28/exercicios-programacao-concorrente/</link>
		<comments>http://www.matbra.com/2009/05/28/exercicios-programacao-concorrente/#comments</comments>
		<pubDate>Thu, 28 May 2009 03:29:48 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Aprendendo]]></category>
		<category><![CDATA[Programação Concorrente]]></category>
		<category><![CDATA[Concorrencia]]></category>
		<category><![CDATA[exercicios]]></category>
		<category><![CDATA[fc]]></category>
		<category><![CDATA[Pascal]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[resolução]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=280</guid>
		<description><![CDATA[Boa noite, Amanhã tenho uma prova de Programação com o conteúdo, &#8220;monitores&#8221; e &#8220;redes de petri&#8221;. O professor passou uns exercícios para que fossem resolvidos e entregues, dos 5 resolvi apenas 3 até o momento. A linguagem utilizada para implementação dos mesmos foi Pascal FC (uma linguagem para ensinar &#8220;programação concorrente&#8221;). Bom, vamos a resolução [...]]]></description>
			<content:encoded><![CDATA[<p>Boa noite, </p>
<p>Amanhã tenho uma prova de Programação com o conteúdo, &#8220;monitores&#8221; e &#8220;redes de petri&#8221;. O professor passou uns exercícios para que fossem resolvidos e entregues, dos 5 resolvi apenas 3 até o momento. A linguagem utilizada para implementação dos mesmos foi <a href="http://www-users.cs.york.ac.uk/~burns/pf.html" target="_blank">Pascal FC</a> (uma linguagem para ensinar &#8220;programação concorrente&#8221;). Bom, vamos a resolução e enunciados dos mesmos. </p>
<blockquote><p>1) Pombos correio foram treinados para transportar cartas da cidade<br />
A para a cidade B. Na cidade A existe uma Caixa Postal onde as<br />
pessoas depositam suas cartas para que sejam entregues na cidade<br />
B. Os pombos consultam a Cxpostal e retiram sempre 5 cartas para<br />
transportar na sua viagem. Caso não existam ainda 5 cartas na<br />
caixa, o pombo espera até que esse número seja atingido. Na cidade<br />
B existe uma gaiola onde os pombos depositam suas cartas e ficam<br />
presos até que um processo tratador libere-os. O tratador verifica a<br />
gaiola a cada 20 clocks e libera todos os pombos somente se o<br />
número de pombos for maior ou igual a 2. Os pombos somente<br />
transportam cartas de A para B, na sua volta eles voam vazios.<br />
Construa um monitor para controlar a utilização da Caixa Postal<br />
pelas pessoas (13), pombos (6) e o tratador (1).
</p></blockquote>
<p><a href="http://www.matbra.com/?attachment_id=282">Resolução do exercício sobre pombos.</a></p>
<blockquote><p>2) Implemente o problema dos fumantes utilizando monitor. Três<br />
fumantes e um agente sentados em uma mesa. Cada fumante<br />
possui dois dos três ingredientes para se fazer um cigarro: fósforo,<br />
fumo e palha. O agente possui os três e aleatoriamente sorteia um<br />
dos ingredientes. O fumante contemplado faz o seu cigarro, fuma e<br />
libera o agente para fazer novo sorteio.</p></blockquote>
<p><a href="http://www.matbra.com/?attachment_id=283">Resolução do exercício sobre mesa de fumantes.</a></p>
<blockquote><p>3) Processos produtores e consumidores se sincronizam através de<br />
um buffer circular com 5 posições (um array de 5 posições). Um<br />
produtor gera um número aleatório e coloca no buffer caso exista<br />
uma vaga. Um consumidor retira um número do buffer se houver.<br />
Implemente utilizando monitor.</p></blockquote>
<p><a href="http://www.matbra.com/?attachment_id=281">Resolução do exercício sobre sincronização através de array circular.</a></p>
<blockquote><p>4) Suponha um ambiente em que processos compartilham<br />
impressoras. Existem dois tipos de impressora: tipo A e Tipo B.<br />
Existem 3 classes de processos: classe PA que somente utilizam<br />
impressoras do tipo A, classe PB que somente utilizam impressoras<br />
do tipo B e classe PAB que utilizam impressoras de qualquer tipo.<br />
Esses processos, do tipo PAB, têm prioridade sobre os demais<br />
quando não houver impressoras disponíveis. Implemente utilizando<br />
monitor.</p></blockquote>
<p><a href="http://www.matbra.com/?attachment_id=287">Resolução do exercício sobre impressoras.</a></p>
<blockquote><p>5) Implemente o problema da ponte utilizando monitor. Uma ponte,<br />
que separa duas cidades A e B, somente permite tráfego em um<br />
sentido de A para B ou de B para A. Se a ponte estiver vazia pode<br />
ser utilizada por carros de A ou de B. Se um carro de A acessou a<br />
ponte, ela é trancada para os carros de B e todos os carros de A que<br />
desejarem podem também acessar. Quando o último carro que sai<br />
de A para B deixar a ponte, ela deve ser liberada.</p></blockquote>
<p><a href="http://www.matbra.com/?attachment_id=288">Resolução do exercício sobre Ponte.</a></p>
<p><a href="http://www.matbra.com/?attachment_id=290">Lista dos 5 exercícios e sua resolução.</a></p>
<p>UPDATE 1: Exercícios que não estavam resolvidos foram resolvidos e adicionados. Lembro que o professor ainda não entrou uma correção do mesmo, mas testei eles e parece-me tudo ok.Lembrando também que estes exercícios foram disponibilizados aos alunos pelo Professor José Mazzucco Júnior. </p>
<p>Espero que isso seja util a todos,<br />
Matheus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2009/05/28/exercicios-programacao-concorrente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rank Sort, Programação Concorrente.</title>
		<link>http://www.matbra.com/2009/05/07/rank-sort-programacao-concorrente/</link>
		<comments>http://www.matbra.com/2009/05/07/rank-sort-programacao-concorrente/#comments</comments>
		<pubDate>Fri, 08 May 2009 01:28:19 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Pascal]]></category>
		<category><![CDATA[Programação Concorrente]]></category>
		<category><![CDATA[Concorrencia]]></category>
		<category><![CDATA[Pascal FC]]></category>
		<category><![CDATA[Processos]]></category>
		<category><![CDATA[Prova]]></category>
		<category><![CDATA[RankSort]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=202</guid>
		<description><![CDATA[Olá, A umas duas semanas atrás tive que fazer uma prova de Programação Concorrente (INE5410), onde eu devia implementar um RankSort com Pascal FC. Nesse problema existe um Vetor que deve ser ordenado por N processos. Bom a implementação do mesmo não é muito complexa para as pessoas que tem noção de semáforos. Após o [...]]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>A umas duas semanas atrás tive que fazer uma prova de Programação Concorrente (INE5410), onde eu devia implementar um RankSort com Pascal FC. Nesse problema existe um Vetor que deve ser ordenado por N processos. Bom a implementação do mesmo não é muito complexa para as pessoas que tem noção de semáforos. Após o professor Mazzuco corrigir a prova ele nos disponibilizou uma resolução. Irei disponibilizar a mesma pois não tenho a minha solução em mãos, mas ambas as soluções são MUITO parecidas. Adicionei na solução do professor umas mensagens que os processos enviam para o console para termos uma noção melhor do que está acontecendo. </p>
<p>- <a href="http://www.matbra.com/?attachment_id=204">Solução para RankSort em Pascal FC com processos concorrentes</a>.<br />
- <a href="http://www.matbra.com/?attachment_id=203">Editor para Pascal Fc</a> (Infelizmente não achei o mesmo para linux que funcione decentemente, caso você tenha alguma recomendação não hesite em me informar.) </p>
<p>Qualquer duvida ou problema comente,<br />
Matheus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2009/05/07/rank-sort-programacao-concorrente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

