GithubHelp home page GithubHelp logo

rafaelbcastilhos / lamp-factory Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 129 KB

Simulação que realiza o controle de concorrência, sincronização de threads e condição de corrida na produção, testagem e armazenamento de lâmpadas.

Makefile 7.37% C 92.63%
thread mutex semaphore

lamp-factory's Introduction

lamp-factory

Passos para fabricação da lâmpada:

As lâmpadas fabricadas pela empresa chagam em uma esteira e são colocadas por um braço robótico em um buffer circular com capacidade para capacidade_buffer lâmpadas. Outro robô retira as lâmpadas do buffer e as coloca em uma bancada de teste, na qual são medidos vários parâmetros relacionados ao funcionamento da lâmpada. Esta bancada de teste permite que sejam testadas até capacidade_bancada lâmpadas simultaneamente. Para que isso seja possível, cada slot da bancada de teste deverá funcionar de forma independente dos demais, realizando o teste da lâmpada que for inserida nele. Existem 4 parâmetros avaliados durante o teste: (1) se o vidro do bulbo da lâmpada está em perfeito estado; (2) se a lâmpada acende; (3) se a rosca da lâmpada está em perfeito estado; e (4) e se a marca e informações da lâmpada estão impressas no bulbo. Caso a lâmpada apresente defeito em um ou mais parâmetros ela será reprovada no teste.

Finalizado o teste, um terceiro robô retira as lâmpadas da bancada de teste e as coloca no compartimento de carga de dois veículos autoguiados (AGVs) com capacidade para capacidade_agv lâmpadas cada. Em um deles são colocadas as lâmpadas que estão com defeito e serão recicladas, e no outro são colocadas as lâmpadas aprovadas no teste, que serão embaladas para serem comercializadas. Sempre que seu compartimento de carga estiver cheio, o AGV o transporta a carga para o depósito e outro AGV vazio toma o seu lugar. O total de AGVs em operação na fábrica é dado por quantidade_agvs. Passos para fabricação da lâmpada

Compilação e Execução

Para compilar o projeto, execute:

make

Para limpar completamente o projeto, execute:

make clean

O programa aceita as seguintes opções na linha de comando:

Opção Campo correspondente Descrição
-l config.total_lampadas total de lâmpadas que serão testadas durante a simulação
-v config.velocidade_esteira velocidade da esteira
-b config.capacidade_buffer tamanho do buffer
-t config.capacidade_bancada número de lâmpadas que podem ser testadas simultaneamente na bancada de teste
-a config.quantidade_agvs número de AGVs em operação na fábrica
-c config.capacidade_agv número de lâmpadas que podem ser colocadas no compartimento de carga do AGV
-h -x-x-x- imprime uma mensagem de ajuda descrevendo todas as opções

Para executar o programa de modo que 200 lâmpadas sejam testadas, com velocidade da esteira igual a 5, usando um buffer de tamanho 10, uma bancada de teste para 4 lâmpadas e 6 AGVs com capacidade para 12 lâmpadas cada, execute:

./program -l 200 -v 5 -b 10 -t 4 -a 6 -c 12

lamp-factory's People

Contributors

rafaelbcastilhos avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.