Вы находитесь на странице: 1из 8

ATIVIDADES PRTICAS SUPERVISIONADAS

7 Srie Programao Concorrente

Sistemas de Informao

A atividade prtica supervisionada (ATPS) um procedimento metodolgico de ensino-aprendizagem desenvolvido por meio de um conjunto de etapas 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 diferentes 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 prticos relativos profisso. Direcionar o estudante para a busca do raciocnio crtico e a emancipao intelectual. Para atingir estes objetivos a ATPS prope um desafio e indica os passos a serem percorridos ao longo do semestre para a sua soluo. A sua participao nesta proposta essencial para que adquira as competncias e habilidades requeridas na sua atuao profissional. Aproveite esta oportunidade de estudar e aprender com desafios da vida profissional.

AUTORIA: Maurcio Rodrigues de Morais


Faculdade Anhanguera de Valinhos

Sistemas de Informao 7 Srie Programao Concorrente

Pg. 2 de 8

COMPETNCIAS E HABILIDADES
Ao concluir as etapas propostas neste desafio, voc ter desenvolvido as competncias e habilidades que constam, nas Diretrizes Curriculares Nacionais, descritas a seguir. Iniciar, projetar, desenvolver, validar e gerenciar qualquer projeto de software. 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.

Produo Acadmica
Relatrios parciais, com os resultados das pesquisas realizadas nas Etapas 1 at 4:

Participao
Para a elaborao dessa atividade, os alunos devero previamente organizar-se em equipes com o nmero de participantes definido pelo professor e entregar seus nomes, RAs e e-mails ao professor da disciplina. Essas equipes sero mantidas durante todas as etapas.

Padronizao
O material escrito solicitado nessa atividade deve ser produzido de acordo com as normas da ABNT1, com o seguinte padro: em papel branco, formato A4; com margens esquerda e superior de 3cm, direita e inferior de 2cm; fonte Times New Roman tamanho 12, cor preta; espaamento de 1,5 entre linhas; se houver citaes com mais de trs linhas, devem ser em fonte tamanho 10, com um recuo de 4cm da margem esquerda e espaamento simples entre linhas; com capa, contendo: nome de sua Unidade de Ensino, Curso e Disciplina; nome e RA de cada participante; ttulo da atividade; nome do professor da disciplina; cidade e data da entrega, apresentao ou publicao.

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.

Consultar o Manual para Elaborao de Trabalhos Acadmicos. Unianhanguera. Disponvel em: <http://www.unianhanguera.edu.br/anhanguera/bibliotecas/normas_bibliograficas/index.html>.

Maurcio Rodrigues de Morais

Sistemas de Informao 7 Srie Programao Concorrente

Pg. 3 de 8

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

Objetivo do Desafio
Elaborar um conjunto de relatrios com resultados de uma implementao de um prottipo de software que torne possvel evidenciar os resultados de uma futura implementao formal.

Maurcio Rodrigues de Morais

Sistemas de Informao 7 Srie Programao Concorrente

Pg. 4 de 8

ETAPA 1 (tempo para realizao: 5 horas)


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) Ler 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) Auxiliar 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. Passo 3 (Equipe) Fazer 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 armazenem o tempo de execuo para uma delas. Criar uma tabela na qual conste o tempo de cada um dos testes para as duas linguagens e o tempo mdio para cada quantidade. Fazer 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, traar um grfico dos tempos mdios e as quantidades de threads.

Maurcio Rodrigues de Morais

Sistemas de Informao 7 Srie Programao Concorrente

Pg. 5 de 8

Passo 4 (Equipe) Entregar ao professor da disciplina: 1. Uma mdia contendo o cdigo fonte comentado do programa, ou seja, todos os arquivos do projeto desenvolvido no Passo 2. 2. 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: verificar com o professor da disciplina o tipo de mdia (CD ou e-mail, por exemplo) a ser entregue.

ETAPA 2 (tempo para realizao: 5 horas)


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) Ler 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) Alterar 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 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) Fazer 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, fazer 10 execues com tempo fixo de 3 minutos e contabilizar a quantidade de
Maurcio Rodrigues de Morais

Sistemas de Informao 7 Srie Programao Concorrente

Pg. 6 de 8

pedidos que foram processadas. Criar 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. Fazer ainda um grfico das quantidades mdias de pedidos e os nmeros de threads. Passo 4 (Equipe) Entregar 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: verificar com o professor da disciplina o tipo de mdia (CD ou e-mail, por exemplo) a ser entregue.

ETAPA 3 (tempo para realizao: 5 horas)


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) Ler 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) Alterar o prottipo atual de modo que todo o processo de excluso mtua seja feito por semforos. Certificar-se de que o conceito de semforo esteja sendo empregado corretamente e no haja falhas conceituais. Passo 3 (Equipe) Fazer novamente o experimento feito no Passo 3 da etapa anterior, agora com a nova verso baseada em semforos. Comparar os resultados obtidos agora com os obtidos anteriormente. Documentar o novo teste e escrever 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.

Maurcio Rodrigues de Morais

Sistemas de Informao 7 Srie Programao Concorrente

Pg. 7 de 8

Passo 4 (Equipe) Entregar ao professor da disciplina: 1. Uma mdia contendo o cdigo fonte comentado do programa, ou seja, todos os arquivos do projeto desenvolvido no Passo 2. 2. 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: verificar com o professor da disciplina o tipo de mdia (CD ou e-mail, por exemplo) a ser entregue.

ETAPA 4 (tempo para realizao: 5 horas)


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) Ler 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) Atender 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. Vocs devem 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, mantenham o cdigo da etapa anterior intacto (fazer uma cpia e guardem-na) para que possa comparar o resultado das implementaes depois. Passo 3 (Equipe) Fazer novamente o experimento feito no passo 3 da etapa anterior, agora com a nova verso. Comparem os resultados obtidos agora com os obtidos anteriormente. Documentar o novo teste e escrevam uma anlise comparativa do impacto (se houver) apresentado pela incluso desse novo requisito. Apresentar, por fim, um parecer sobre os custos de se implementar tal alterao. Passo 4 (Equipe) Entregar ao professor da disciplina:

Maurcio Rodrigues de Morais

Sistemas de Informao 7 Srie Programao Concorrente

Pg. 8 de 8

1. Uma mdia contendo o cdigo fonte comentado do programa, ou seja, todos os arquivos do projeto desenvolvido no Passo 2. 2. 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: verificar com o professor da disciplina o tipo de mdia (CD ou e-mail, por exemplo) a ser entregue.

Livro Texto da Disciplina


TOSCANI, Simo Sirineo; OLIVEIRA, Rmulo Silva de; CARISSIMI, Alexandre da Silva. Sistemas operacionais e programao concorrente. 1 ed. Porto Alegre: Sagra Luzzatto, 2003.

Maurcio Rodrigues de Morais

Вам также может понравиться