Você está na página 1de 7

ATIVIDADES PRTICAS SUPERVISIONADAS

6 Srie Programao Concorrente

Cincia da Computao

A atividade prtica supervisionada (ATPS) um mtodo de ensinoaprendizagem desenvolvido por meio de um conjunto de atividades programadas e supervisionadas e que tem por objetivos: Favorecer a aprendizagem. Estimular a corresponsabilidade do aluno pelo aprendizado eficiente e eficaz. Promover o estudo, a convivncia e o trabalho em grupo. Desenvolver os estudos independentes, sistemticos e o autoaprendizado. Oferecer diferenciados ambientes de aprendizagem. Auxiliar no desenvolvimento das competncias requeridas pelas Diretrizes Curriculares Nacionais dos Cursos de Graduao. Promover a aplicao da teoria e conceitos para a soluo de problemas relativos profisso. Direcionar o estudante para a emancipao intelectual. Para atingir estes objetivos as atividades foram organizadas na forma de um desafio, que ser solucionado por etapas ao longo do semestre letivo. Participar ativamente deste desafio essencial para o desenvolvimento das competncias e habilidades requeridas na sua atuao no mercado de trabalho. Aproveite esta oportunidade de estudar e aprender com desafios da vida profissional.

AUTORIA: Maurcio Rodrigues de Morais


Faculdade Anhanguera de Valinhos

Cincia da Computao 6 Srie Programao Concorrente

Pg. 2 de 7

COMPETNCIAS E HABILIDADES
Ao concluir as etapas propostas neste desafio voc ter desenvolvido as competncias e habilidades descritas a seguir. Capacidade de, com base nos conceitos adquiridos, iniciar, projetar, desenvolver, validar e gerenciar qualquer projeto de software. Competncia para identificar, analisar, documentar e solucionar problemas e necessidades passveis de soluo via computao. Assimilar criticamente conceitos que permitam a apreenso de prticas e teorias; Saber conciliar teoria e prtica.

DESAFIO
Um dos maiores desafios no mercado altamente competitivo de hoje o que se denomina Desafio do Fornecimento. As empresas competem de maneira inovadora e agressiva para que seus produtos e servios sejam entregues aos clientes no menor tempo e com o menor custo possvel. Nesse cenrio, o uso de solues e ferramentas computacionais tem se mostrado um diferencial estratgico significativo. Mais e mais empresas esto investindo na modernizao de seus softwares de apoio para que se destaquem em relao aos seus rivais de mercado. Uma das empresas diretamente envolvidas nessa disputa a Tanngrsnir Logstica. Essa empresa de transportes responsvel pela entrega dos produtos de uma srie de grandes fornecedores e, historicamente, muito conceituada em seu segmento de mercado. Porm, com o advento das vendas pela Internet, a empresa tem percebido que sua capacidade de processamento de pedidos est, gradativamente, se mostrando aqum do necessrio. Se continuar nesse ritmo de queda, em pouco tempo a Tanngrsnir deixar de ser a empresa de destaque que tem sido no ltimo sculo. Ao perceber a necessidade de mudana, a empresa decidiu que era hora de rever o processo de atendimento a pedidos. Atualmente, feita a recepo por telefone e/ou por seu site dos pedidos para entrega de produtos. Apesar de permitir a entrada de vrios pedidos ao mesmo tempo (so 50 atendentes por telefone e uma capacidade de 300 solicitaes simultneas pela Internet) o processamento interno dos pedidos feito por um software que os analisa um de cada vez. Foi essa a restrio no fluxo identificada pela equipe interna de Tecnologia da Informao (TI). Como todos os recursos humanos de TI da empresa esto alocados em outros projetos e dispem de pouco ou nenhum tempo para a realizao dessa modernizao, o diretor de TI da Tanngrsnir decidiu abrir uma concorrncia no mercado para que diversas empresas apresentem uma soluo para melhorar a capacidade de processamento de pedidos. A ideia geral que seja implementada uma soluo concorrente assncrona para processamento dos pedidos, seguindo o clssico problema Produtor-Consumidor. Para essa concorrncia, no ser necessria a implementao de um software completo, mas apenas um prottipo que torne possvel evidenciar os resultados de uma futura implementao formal. Os pedidos sero enviados em um formato de dados que consiste de um identificador numrico com 20 dgitos e um pacote de dados em formato de texto de 1000 caracteres. Os clientes faro uso da nova ferramenta para alimentar um buffer interno com capacidade para 5000 pedidos. Um processo interno assncrono (ou seja, os
Maurcio Rodrigues de Morais

Cincia da Computao 6 Srie Programao Concorrente

Pg. 3 de 7

clientes no esperaro online pela confirmao, mas recebero uma resposta posterior) consumir os pedidos e os processar individualmente. Este desafio dever ser realizado em quatro etapas por um grupo de at quatro alunos. Em cada uma das etapas uma parte do prottipo ser desenvolvida e/ou melhorada at que, ao final, seja possvel reconhecer a validade da proposta representada pela nova tecnologia. Com este desafio voc poder aplicar vrios conceitos importantes em desenvolvimento de aplicativos concorrentes e perceber o potencial de mercado desse tipo de soluo. Para este desafio ser utilizado o seguinte livro-texto: TOSCANI, Simo Sirineo; OLIVEIRA, Rmulo; CARISSIMI, Alexandre da Silva. SISTEMAS OPERACIONAIS E PROGRAMAO CONCORRENTE. 1 ed. Porto Alegre: Sagra Luzzatto, 2003.

ETAPA 1
Aula-tema: Reviso sobre Sistemas Operacionais. Conceitos de Programao concorrente. Multiprogramao. Threads. Programao Concorrente. Concorrncia. Problemas de Programao Concorrente. Esta atividade importante para que voc utilize os conceitos iniciais vistos em sala de aula para definir qual a melhor linguagem de programao a utilizar e criar os primeiros componentes do prottipo. Sero utilizados conceitos de multiprogramao, Threads e Programao concorrente. Para realiz-la, importante seguir os passos descritos.

PASSOS
Passo 1 (Aluno) Releia os conceitos introdutrios sobre Programao Concorrente, Multiprogramao e Threads, existentes no livro-texto da disciplina. Alm disso, releia a reviso sobre Sistemas Operacionais apresentada pelo seu professor. Passo 2 (Equipe) Auxilie a equipe interna de TI da Tanngrsnir a escolher qual dever ser a linguagem de programao que ser utilizada, bem como estimar alguns parmetros iniciais de concorrncia, o objetivo dessa primeira etapa. Para isso, devero ser criados agentes baseados em thread nas linguagens C e Java que consumam, de um buffer de 5000 posies previamente preenchido (ou seja, ser implementado apenas o consumidor), cada um dos pedidos (um struct na implementao em C e um objeto na implementao em Java). O consumidor eliminar continuamente os pedidos do buffer e seu tempo de processamento ser simulado por uma pausa de 10000 milissegundos. Ao final de cada processamento, dever ser preenchido um log com a identificao da thread, a identificao do pedido, o horrio de incio e o horrio de trmino do processamento. Quando o buffer estiver esgotado, as threads sero bloqueadas. Por ora, no h a necessidade de se preocupar com a excluso mtua necessria entre os diversos consumidores.

Maurcio Rodrigues de Morais

Cincia da Computao 6 Srie Programao Concorrente

Pg. 4 de 7

Passo 3 (Equipe) Faa um experimento no qual sejam iniciadas quantidades distintas de threads simultneas (1, 10, 50, 100, 500, 1000). Para cada uma dessas quantidades, faa 10 execues at que o buffer esteja vazio - e armazene o tempo de execuo para uma delas. Crie uma tabela na qual conste o tempo de cada um dos testes para as duas linguagens e o tempo mdio para cada quantidade. Faa ainda um quadro de resumo comparativo no qual constem os tempos mdios de execuo para cada quantidade de threads e o tempo de desenvolvimento por linguagem. Por fim, trace um grfico dos tempos mdios e as quantidades de threads. Passo 4 (Equipe) Entregue ao professor da disciplina: a) Uma mdia contendo o cdigo fonte comentado do programa, ou seja, todos os arquivos do projeto desenvolvido no Passo 2. b) Um documento impresso, denominado Relatrio da Etapa 1, constitudo de capa, o cdigo fonte comentado e o relatrio de testes desenvolvido no Passo 3. Instruo: verifique com o professor da disciplina o tipo de mdia (CD ou e-mail, por exemplo) a ser entregue.

ETAPA 2
Aula-tema: Conceitos de Excluso Mtua e Objetos Compartilhados. Excluso Mtua e Objetos Compartilhados. Esta atividade importante para que voc aprimore seus conhecimentos sobre os principais problemas da programao concorrente e entenda os cuidados necessrios ao se trabalhar com recursos compartilhados. Para realiz-la, importante seguir os passos descritos.

PASSOS
Passo 1 (Aluno) Releia os conceitos estudados sobre Excluso Mtua e Objetos Compartilhados no livro-texto da disciplina. importante que voc esteja familiarizado com os diversos algoritmos apresentados e os conceitos subjacentes para que possa avanar no desenvolvimento do seu prottipo. Passo 2 (Equipe) Altere o projeto criado na etapa anterior, de modo que agora o buffer seja alimentado por uma thread Produtora. O buffer de pedidos o objeto compartilhado e deve- se garantir que a ao de produtores e consumidores seja feita de maneira exclusiva, ou seja, dever haver excluso mtua entre os processos para evitar colises. Os produtores devero criar as estruturas de dados referentes aos pedidos e seu tempo de processamento dever ser simulado por uma pausa de 5000 milissegundos. Cada produtor alimentar o buffer continuamente, enquanto houver espao no mesmo, e dever ser bloqueado quando estiver
Maurcio Rodrigues de Morais

Cincia da Computao 6 Srie Programao Concorrente

Pg. 5 de 7

cheio. Quando houver um novo espao no buffer, o Produtor dever ser reativado. Deve, ainda, alimentar um log com a identificao da thread, o horrio de incio e o horrio de trmino do processamento. A partir desse ponto, o gerente do projeto (seu professor) escolher qual linguagem dever ser utilizada nesta e nas prximas etapas. Passo 3 (Equipe) Faa um experimento no qual sejam iniciadas quantidades distintas de threads simultneas (1, 10, 50, 100, 500, 1000), tanto consumidoras quanto produtoras. Para cada uma dessas quantidades, faa 10 execues com tempo fixo de 3 minutos e contabilize a quantidade de pedidos que foram processadas. Crie uma tabela na qual conste a quantidade de pedidos para cada um dos testes, a mdia de pedidos processados e a quantidade de pedidos por segundo. Faa ainda um grfico das quantidades mdias de pedidos e os nmeros de threads. Passo 4 (Equipe) Entregue ao professor da disciplina: a) Uma mdia contendo o cdigo fonte comentado do programa, ou seja, todos os arquivos do projeto desenvolvido no Passo 2. b) Um documento impresso, denominado Relatrio da Etapa 2, constitudo de capa, o cdigo fonte comentado e o relatrio de testes desenvolvido no Passo 3. Instruo: verifique com o professor da disciplina o tipo de mdia (CD ou e-mail, por exemplo) a ser entregue.

ETAPA 3
Aula-tema: Semforos. Esta atividade importante para que voc aplique os novos conhecimentos vistos em sala de aula sobre excluso mtua com semforos para tornar seu prottipo mais robusto e compreensvel. Para realiz-la, importante seguir os passos descritos.

PASSOS
Passo 1 (Aluno) Releia os conceitos estudados sobre Semforos no livro-texto da disciplina. importante que voc esteja familiarizado com o uso dessa tcnica para que possa aprimorar a excluso mtua do seu prottipo. Passo 2 (Equipe) Altere o prottipo atual de modo que todo o processo de excluso mtua seja feito por semforos. Certifique-se de que o conceito de semforo esteja sendo empregado corretamente e no haja falhas conceituais.

Maurcio Rodrigues de Morais

Cincia da Computao 6 Srie Programao Concorrente

Pg. 6 de 7

Passo 3 (Equipe) Faa novamente o experimento feito no Passo 3 da etapa anterior, agora com a nova verso baseada em semforos. Compare os resultados obtidos agora com os obtidos anteriormente. Documente o novo teste e escreva uma anlise comparativa do impacto (se houver) apresentado pela utilizao dessa nova tcnica, no s em termos de desempenho, mas tambm em termos de simplificao do cdigo e facilidade de manuteno futura. Passo 4 (Equipe) Entregue ao professor da disciplina: a) Uma mdia contendo o cdigo fonte comentado do programa, ou seja, todos os arquivos do projeto desenvolvido no Passo 2. b) Um documento impresso, denominado Relatrio da Etapa 3, constitudo de capa, o cdigo fonte comentado e o relatrio de testes desenvolvido no Passo 3. Instruo: verifique com o professor da disciplina o tipo de mdia (CD ou e-mail, por exemplo) a ser entregue.

ETAPA 4
Aula-tema: Sincronizao. Esta atividade importante para que voc compreenda e aplique mais um dos conceitos fundamentais de programao concorrente, a sincronizao, e conhea os desafios de sua implementao. Para realiz-la, importante seguir os passos descritos.

PASSOS
Passo 1 (Aluno) Releia os conceitos estudados sobre criao de sincronizao no livro-texto da disciplina. importante que voc esteja familiarizado com o conceito para que possa criar aplicativos concorrentes com maior controle da execuo. Passo 2 (Equipe) Atenda a um novo requisito que surgiu para a apresentao do seu prottipo. Agora, a Tanngrsnir deseja garantir que cada um dos pedidos ser processado na ordem em que foi solicitado, sem que haja furos na fila. Voc deve aprimorar sua implementao da thread consumidora de modo a garantir essa especificao. Porm, pode ser que tal requisito tenha impacto significativo na quantidade de pedidos atendidos por unidade de tempo. Por isso, mantenha o cdigo da etapa anterior intacto (faa uma cpia e guarde-a) para que possa comparar o resultado das implementaes depois.

Maurcio Rodrigues de Morais

Cincia da Computao 6 Srie Programao Concorrente

Pg. 7 de 7

Passo 3 (Equipe) Faa novamente o experimento feito no passo 3 da etapa anterior, agora com a nova verso. Compare os resultados obtidos agora com os obtidos anteriormente. Documente o novo teste e escreva uma anlise comparativa do impacto (se houver) apresentado pela incluso desse novo requisito. Apresente, por fim, um parecer sobre os custos de se implementar tal alterao. Passo 4 (Equipe) Entregue ao professor da disciplina: a) Uma mdia contendo o cdigo fonte comentado do programa, ou seja, todos os arquivos do projeto desenvolvido no Passo 2. b) Um documento impresso, denominado Relatrio da Etapa 4, constitudo de capa, o cdigo fonte comentado e o relatrio de testes desenvolvido no Passo 3. Instruo: verifique com o professor da disciplina o tipo de mdia (CD ou e-mail, por exemplo) a ser entregue.

Maurcio Rodrigues de Morais

Você também pode gostar