Skip to content

Repositório dedicado a implementação de projetos e aprendizado do conceito de multiprocessamento, paralelo e concorrente.

Notifications You must be signed in to change notification settings

LucasDiasJorge/Concorrencia-e-Paralelismo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Concorrência e Paralelismo

Concorrência e paralelismo são temas relacionados à execução de processos e gerenciamento de tarefas em sistemas computacionais, abordando como múltiplas operações podem ser executadas ao mesmo tempo. Ambos os conceitos são fundamentais em ciências da computação e na teoria da computação. Aqui estão algumas considerações sobre cada um deles:

Concorrência

  1. Definição: Concorrência refere-se à capacidade de um sistema executar múltiplas tarefas ou processos ao mesmo tempo, mas não necessariamente simultaneamente. Pode envolver a alternância entre diferentes tarefas que compartilham recursos, como tempo de CPU ou acesso a dados.

  2. Características:

    • Interleaving: As tarefas podem ser intercaladas, onde o sistema muda de uma tarefa para outra durante a execução.
    • Multithreading: Em ambientes multithreaded, várias threads podem ser gerenciadas, permitindo que tarefas diferentes sejam executadas de forma concorrente.
    • Problemas de Sincronização: A concorrência muitas vezes exige mecanismos de sincronização para gerenciar o acesso a recursos compartilhados, evitando condições de corrida e inconsistências de dados.
  3. Exemplo: Um servidor web que atende a várias requisições simultaneamente, utilizando threads ou processos diferentes para lidar com cada requisição enquanto continua a aceitar novas.

Paralelismo

  1. Definição: Paralelismo, por outro lado, refere-se à execução simultânea de múltiplas tarefas ou processos em múltiplos núcleos ou CPUs. Aqui, as tarefas realmente ocorrem ao mesmo tempo, não apenas alternando entre elas.

  2. Características:

    • Execução Simultânea: As tarefas são realmente executadas em paralelo, utilizando múltiplos recursos de hardware.
    • Divisão de Trabalho: O problema é frequentemente dividido em partes menores que podem ser processadas simultaneamente, como em algoritmos de divide and conquer.
    • Desempenho: O paralelismo pode oferecer ganhos de desempenho significativos para operações computacionais intensivas, como processamento de grandes volumes de dados ou cálculos científicos.
  3. Exemplo: Um programa que processa uma grande matriz em paralelo, utilizando várias threads que operam em diferentes partes da matriz ao mesmo tempo.

Relação com Ciência da Computação

  • Modelos de Computação: A concorrência e o paralelismo são conceitos fundamentais em modelos de computação, como máquinas de Turing, automatos e modelos de computação distribuída.
  • Algoritmos e Estruturas de Dados: A teoria da computação investiga algoritmos que aproveitam tanto a concorrência quanto o paralelismo para resolver problemas de forma eficiente.
  • Sistemas Operacionais: A forma como os sistemas operacionais gerenciam processos e threads, incluindo escalonamento, sincronização e comunicação entre processos, é central para entender a concorrência e o paralelismo.
  • Desenvolvimento de Software: Na prática, os desenvolvedores precisam considerar a concorrência e o paralelismo ao projetar software para garantir eficiência e desempenho, especialmente em aplicações que exigem alta disponibilidade e escalabilidade.

Resumo

Em resumo, concorrência e paralelismo são conceitos fundamentais que lidam com a execução de múltiplas tarefas em sistemas computacionais, abordando diferentes aspectos da eficiência e utilização de recursos. Esses temas são essenciais para entender o desempenho de sistemas e o desenvolvimento de aplicações em um mundo cada vez mais orientado à computação em múltiplos núcleos e ambientes distribuídos.

About

Repositório dedicado a implementação de projetos e aprendizado do conceito de multiprocessamento, paralelo e concorrente.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published