Coder Social home page Coder Social logo

lelepg / implementacao_com_pthreads Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gianlucca-buzo/implementacao_com_pthreads

0.0 0.0 0.0 206 KB

Trabalho sobre Pthreads da disciplina de sistemas operacionais 2020/2

C++ 96.72% C 2.75% Makefile 0.53%
c pthreads trabalhos-academicos ufpel sistemas-operacionais pt-br ptbr

implementacao_com_pthreads's Introduction

Trabalho_Pratico-Implementacao_com_Pthreads

Membros do grupo: Darlei Matheus Schmegel, Dauan Ghisleni Zolinger, Gianlucca de Mendonça Buzô, Heitor Felipe Matozo dos Santos e Letícia Pegoraro Garcez.

Acesse o vídeo de apresentação do trabalho

O que é este projeto?

Este projeto se trata de uma biblioteca com suporte de execução de threads utilizando o modelo n x m para uma linguagem concorrente baseada na criação de tarefas utilizando a linguagem C++ e a biblioteca de threads Pthreads.

Este projeto também representa um trabalho avaliativo para a disciplina de Sistemas Operacionais cursada no semestre de 2020/2.

Como rodar este projeto?

Para testar o funcionamento do código, é necessário fazer o download do repositório, que pode ser feito através de um arquivo .zip ou clonando o repositório.

Uma vez com uma versão dos arquivos deste repositório em sua máquina, o usuário deve descompactar os arquivos, caso tenha optado pelo download em formato .zip e abrir a pasta denomindada src, onde estão os arquivos fontes do projeto.

O projeto pode ser executado através de linha de comando o comando make que fará a compilação e a execução de maneira automática, ou ainda com os seguintes comandos na linha de comando (lembrando que é necessário estar no diretório src para que os comandos funcionem):

$ g++ main.cpp pokeLib.cpp -lpthread -o main

$ ./main

Especificações do programa de exemplo desenvolvido

O algoritmo implementado no arquivo main.cpp se trata de um menu onde é possível selecionar um entre dois algoritmo para execução, sendo um deles o cálculo de um Fibonacci, e o segundo a execução de um algortimo de ordenação merge sort. Após selecionar o algoritmo que deseja executar, o usuário deve selecionar um entre dois tipos de escalonamento implementados, bem como a quantidade de threads que deseja utilizar para realizar a execução do algoritmo.

Como políticas de escalonamento foram implementadas as lógicas de FIFO (First-in-first-out) e LIFO (Last-in-first-out), sendo o escalonamento FIFO a opção padrão.

Extras incluídos no trabalho

  • Segundo método de escalonamento (LIFO);
  • Segundo algoritmo de exemplo (merge sort).

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.