SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Universidade Metodista Unida de
MoçambiqueCampus Universitário de
CambineEngenharia Informática e
Tecnologias
Discentes:
Chelton Lazaro
Dercio Cumbane
Gil Alexandre
Lidson Olinda Pave
Nildo jaciinto
UnidadeCurricular:ParadigmadeProgramação
Docente: Eng. Iolanda
1
Paradigmade Programação Concorrente
 Definição
 Caracteristicas da Programação Concorrente
 Programação Paralela
 Vantagens da Programação Concorrente
 Desvantagens da programação concorrente
 Desafios da Programação Concorrente
 Comunicação e Interação entre programas concorrentes
 Conflitos e Compartilhamento de Recursos
 Diferença entre concorrência e paralelismo
 Sintaxe e semântica das linguagens Concorrentes
 Principais linguagens da programação concorrente
Definição
O termo "programação concorrente" vem do inglês concurrent programming, onde
concurrent significa "acontecendo ao mesmo tempo".
A programação concorrente é um paradigma de programação usado na construção de
programas que fazem uso da execução simultânea de diversas tarefas que podem ser
implementadas como programas separados ou como um único programa que dispara várias
linhas de execução em paralelo. As linhas de execução também são conhecidas como
threads.
A programação concorrente foi usada inicialmente na construção de sistemas
operacionais. Atualmente, ela é usada para desenvolver aplicações em todas as áreas da
Características da Programação
Concorrente
 Execução simultânea de tarefas
 Comunicação e coordenação entre tarefas
 Sincronização e exclusão mútua
 Independência de tarefas
 Concorrência e paralelismo
 Tratamento de exceções
 Escalabilidade e desempenho
Programação Paralela
Programação paralela é uma forma de computação em que vários cálculos
são realizados ao mesmo tempo, operando sob o princípio de que grandes
problemas geralmente podem ser divididos em problemas menores, que
então são resolvidos concorrentemente (em paralelo).
Existem diferentes formas de computação paralela: em bit, instrução, de
dado ou de tarefa.
A técnica de paralelismo já é empregada há vários anos, principalmente na
computação de alto desempenho
Vantagens da Programação
Concorrente
 Melhoria de desempenho
 Responsividade
 Modularidade
 Escalabilidade
 Tolerância a falhas
 Compartilhamento de recursos
 Simplificação do código
Cont…
 A principal vantagem do uso da programação concorrente é o
aumento do desempenho dos programas, pois é possível aumentar a
quantidade de tarefas executadas em um determinado período de
tempo.
Desvantagens da programação concorrente
 Dificuldade de programação
 Baixo suporte de hardware
 Concorrência e sincronização
 Consumo de recursos
 Dificuldades de depuração:
 Acesso compartilhado
 Complexidade do código
 Dificuldade de previsão de desempenho
Desafios da Programação Concorrente
O grande desafio da programação concorrente é o
compartilhamento de recursos, a comunicação e a interação
entre os programas que são executados concorrentemente. O
objetivo deve ser o de administrar o acesso concorrente aos
recursos computacionais, tais como por exemplo, o acesso aos
discos ou a outros recursos compartilhados, como a impressora.
Comunicação e Interação entre programas
concorrentes
Em um sistema computacional concorrente, os programas
executados de forma concorrente podem ter a necessidade de
se comunicarem para troca de informações. Neste contexto, é
importante que o programador possa ter alguma informação
sobre como é feita a comunicação entre os programas
executados concorrentemente.
Conflitos e Compartilhamento de Recursos
É preciso evitar conflitos entre os programas concorrentes. Os
conflitos podem ocorrer porque os programas concorrentes
fazem uso de recursos compartilhados e por isso a necessidade
de se ter controle de concorrência.
Em alguns sistemas computacionais concorrentes a comunicação
entre os processos concorrentes é 'escondida' do programador
mas em outros sistemas a comunicação é explícita, podendo ser
interpretada pelo programador.
Comunicação por memória compartilhada
Neste tipo de comunicação os processos comunicam-se através
do acesso à áreas de memória que são compartilhadas entre os
processos concorrente. Neste tipo de comunicação deve ser
feiro gerenciamento do uso da memória compartilhada a fim de
que um processo não interfira na execução de outro processo
sendo executado concorrentemente.
Diferença entre concorrência e
paralelismo
Concorrência é basicamente a
capacidade de lidar com várias
coisas de uma só vez.
Paralelismo é a capacidade de
lidar com várias coisas ao
mesmo tempo.
Sintaxe e semântica das linguagens Concorrentes
Linguagem C#
Inicialmente, a aplicação da linguagem C foi direccionada para a programação de
sistemas, nomeadamente durante o desenvolvimento do sistema operativo Unix. Tendo a
sua verstilidade, contudo, levado a que fosse utilizada em diversos contextos. Algumas
das suas características principais são:
Portabilidade – Os programas em C correm com poucas ou nenhumas alterações, quando
instalados em diferentes máquinas com diferentes sistemas operativos.
Estrutura – A linguagem C tem atributos e uma estrutura de uma linguagem programação
moderna, sendo uma linguagem estruturada que permite, por exemplo, a recursão.
Cont…
Eficiência – O C permite desenvolver programas tanto a alto como a baixo
nivel. Possui um grande número de operadores bit a bit (bitwise
operators). Além disso, permite trabalhar eficientemente com ponteiros.
O programa principal da linguagem de programação C deve conter uma
função chamada main, e deve ter a seguinte estrutura:
Linguagem C++
C++ (em português: Pronuncia-se "cê mais mais") é uma linguagem de
programação compilada multi-paradigma (seu suporte inclui linguagem
imperativa, orientada a objetos e genérica) e de uso geral. Desde os anos
1990 é uma das linguagens comerciais mais populares, sendo bastante
usada também na academia por seu grande desempenho e base de
utilizadores.
Cont…
 Java: é uma linguagem de programação amplamente utilizada em
desenvolvimento de aplicativos empresariais.
 Foi desenvolvida na SUNM,ICROSYSTEMS em1991,uma grande vantagem
que ela apresenta é o facto de seus códigos fonte e objetos serem
portáteis para diversas arquiteturas e sistemas operacionais.
 A sua sintaxe é
Principais linguagens da programação
concorrente
Java: Java é uma linguagem de programação amplamente utilizada em
desenvolvimento de aplicativos empresariais e também oferece suporte a
concorrência por meio do pacote java.util.concurrent.
C/C++: C e C++ são linguagens de programação populares, amplamente
utilizadas em sistemas embarcados e de alto desempenho
Erlang: Erlang é uma linguagem de programação funcional e concorrente
projetada especificamente para sistemas distribuídos e tolerantes a falhas.
Erlang possui suporte integrado para concorrência
cont…
Rust: Rust é uma linguagem de programação moderna que é
projetada para ser segura, concorrente e de alto desempenho.
Rust possui primitivas de concorrência, como threads e canais,
e seu sistema de tipos e modelo de propriedade ajudam a
prevenir condições de corrida e outros problemas comuns de
concorrência.
.
Obrigado pela atenção dispensada

Mais conteúdo relacionado

Mais procurados

PENERAPAN NOTIFIKASI ANDROID UNTUK MEMBANTU PENYEBARAN INFORMASI DAN KOMUNIKA...
PENERAPAN NOTIFIKASI ANDROID UNTUK MEMBANTU PENYEBARAN INFORMASI DAN KOMUNIKA...PENERAPAN NOTIFIKASI ANDROID UNTUK MEMBANTU PENYEBARAN INFORMASI DAN KOMUNIKA...
PENERAPAN NOTIFIKASI ANDROID UNTUK MEMBANTU PENYEBARAN INFORMASI DAN KOMUNIKA...Uofa_Unsada
 
Laporan Kerja Praktek Stikom Bali
Laporan Kerja Praktek Stikom BaliLaporan Kerja Praktek Stikom Bali
Laporan Kerja Praktek Stikom BaliEka Arimika
 
02a Konsep dan Visi e-Government
02a   Konsep dan Visi e-Government02a   Konsep dan Visi e-Government
02a Konsep dan Visi e-GovernmentLilis Rusliyawati
 
Manajemen proyek-perangkat-lunak-penjabaran-paper
Manajemen proyek-perangkat-lunak-penjabaran-paperManajemen proyek-perangkat-lunak-penjabaran-paper
Manajemen proyek-perangkat-lunak-penjabaran-paperIstiqomah Nur Fatayati
 
Presentasi pengembangan sistem informasi semester antara filkom ub
Presentasi pengembangan sistem informasi semester antara filkom ubPresentasi pengembangan sistem informasi semester antara filkom ub
Presentasi pengembangan sistem informasi semester antara filkom ubWinda Silviana
 
Software Project Management - Proses Manajemen Proyek
Software Project Management - Proses Manajemen ProyekSoftware Project Management - Proses Manajemen Proyek
Software Project Management - Proses Manajemen ProyekDudy Ali
 
Contoh laporan kerja praktek ti
Contoh laporan kerja praktek tiContoh laporan kerja praktek ti
Contoh laporan kerja praktek tialvinsadega
 
Wbs membangun sistem_akademik_berbasis_web
Wbs membangun sistem_akademik_berbasis_webWbs membangun sistem_akademik_berbasis_web
Wbs membangun sistem_akademik_berbasis_webHelny Lalan
 
ppt. IOT(Internet of Things).pptx
ppt. IOT(Internet of Things).pptxppt. IOT(Internet of Things).pptx
ppt. IOT(Internet of Things).pptxAkbarRayhanHasfi
 
Contoh slide presentasi seminar skripsi
Contoh slide presentasi seminar skripsiContoh slide presentasi seminar skripsi
Contoh slide presentasi seminar skripsiirawan afrianto
 
Analisis proses-bisnis modul 3
Analisis proses-bisnis modul 3Analisis proses-bisnis modul 3
Analisis proses-bisnis modul 3stiemberau2
 
UI/UX Heuristic Evaluation & Usability Testing [OCACourse X uxspecialty]
UI/UX Heuristic Evaluation & Usability Testing [OCACourse X uxspecialty] UI/UX Heuristic Evaluation & Usability Testing [OCACourse X uxspecialty]
UI/UX Heuristic Evaluation & Usability Testing [OCACourse X uxspecialty] Open Class Academy
 
Laporan kerja praktek sistem informasi monitoring material gudang
Laporan kerja praktek sistem informasi monitoring material gudangLaporan kerja praktek sistem informasi monitoring material gudang
Laporan kerja praktek sistem informasi monitoring material gudangILex Daud Basra
 
Perbandingan pmbok dan prince2
Perbandingan pmbok dan prince2Perbandingan pmbok dan prince2
Perbandingan pmbok dan prince2Bagus Wahyu
 
Kolaborasi masyarakat digital
Kolaborasi masyarakat digitalKolaborasi masyarakat digital
Kolaborasi masyarakat digitalLovindiA
 
Pm cost management plan
Pm cost management planPm cost management plan
Pm cost management planBagus Wahyu
 

Mais procurados (20)

Sistem basis data 4
Sistem basis data 4Sistem basis data 4
Sistem basis data 4
 
PENERAPAN NOTIFIKASI ANDROID UNTUK MEMBANTU PENYEBARAN INFORMASI DAN KOMUNIKA...
PENERAPAN NOTIFIKASI ANDROID UNTUK MEMBANTU PENYEBARAN INFORMASI DAN KOMUNIKA...PENERAPAN NOTIFIKASI ANDROID UNTUK MEMBANTU PENYEBARAN INFORMASI DAN KOMUNIKA...
PENERAPAN NOTIFIKASI ANDROID UNTUK MEMBANTU PENYEBARAN INFORMASI DAN KOMUNIKA...
 
Laporan Kerja Praktek Stikom Bali
Laporan Kerja Praktek Stikom BaliLaporan Kerja Praktek Stikom Bali
Laporan Kerja Praktek Stikom Bali
 
02a Konsep dan Visi e-Government
02a   Konsep dan Visi e-Government02a   Konsep dan Visi e-Government
02a Konsep dan Visi e-Government
 
Manajemen proyek-perangkat-lunak-penjabaran-paper
Manajemen proyek-perangkat-lunak-penjabaran-paperManajemen proyek-perangkat-lunak-penjabaran-paper
Manajemen proyek-perangkat-lunak-penjabaran-paper
 
Presentasi pengembangan sistem informasi semester antara filkom ub
Presentasi pengembangan sistem informasi semester antara filkom ubPresentasi pengembangan sistem informasi semester antara filkom ub
Presentasi pengembangan sistem informasi semester antara filkom ub
 
Software Project Management - Proses Manajemen Proyek
Software Project Management - Proses Manajemen ProyekSoftware Project Management - Proses Manajemen Proyek
Software Project Management - Proses Manajemen Proyek
 
Contoh laporan kerja praktek ti
Contoh laporan kerja praktek tiContoh laporan kerja praktek ti
Contoh laporan kerja praktek ti
 
Wbs membangun sistem_akademik_berbasis_web
Wbs membangun sistem_akademik_berbasis_webWbs membangun sistem_akademik_berbasis_web
Wbs membangun sistem_akademik_berbasis_web
 
ppt. IOT(Internet of Things).pptx
ppt. IOT(Internet of Things).pptxppt. IOT(Internet of Things).pptx
ppt. IOT(Internet of Things).pptx
 
Sistem terdistribusi
Sistem terdistribusiSistem terdistribusi
Sistem terdistribusi
 
Contoh slide presentasi seminar skripsi
Contoh slide presentasi seminar skripsiContoh slide presentasi seminar skripsi
Contoh slide presentasi seminar skripsi
 
Analisis proses-bisnis modul 3
Analisis proses-bisnis modul 3Analisis proses-bisnis modul 3
Analisis proses-bisnis modul 3
 
Manajemen file
Manajemen fileManajemen file
Manajemen file
 
Antarmuka_pengguna.pptx
Antarmuka_pengguna.pptxAntarmuka_pengguna.pptx
Antarmuka_pengguna.pptx
 
UI/UX Heuristic Evaluation & Usability Testing [OCACourse X uxspecialty]
UI/UX Heuristic Evaluation & Usability Testing [OCACourse X uxspecialty] UI/UX Heuristic Evaluation & Usability Testing [OCACourse X uxspecialty]
UI/UX Heuristic Evaluation & Usability Testing [OCACourse X uxspecialty]
 
Laporan kerja praktek sistem informasi monitoring material gudang
Laporan kerja praktek sistem informasi monitoring material gudangLaporan kerja praktek sistem informasi monitoring material gudang
Laporan kerja praktek sistem informasi monitoring material gudang
 
Perbandingan pmbok dan prince2
Perbandingan pmbok dan prince2Perbandingan pmbok dan prince2
Perbandingan pmbok dan prince2
 
Kolaborasi masyarakat digital
Kolaborasi masyarakat digitalKolaborasi masyarakat digital
Kolaborasi masyarakat digital
 
Pm cost management plan
Pm cost management planPm cost management plan
Pm cost management plan
 

Semelhante a Programação concorrente

Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programaçãoAlbertoVach
 
Programação concorrente
Programação concorrenteProgramação concorrente
Programação concorrenteFabio Duarte
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Valmon Gaudencio
 
Apresentação final
Apresentação finalApresentação final
Apresentação finalvalmon
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iiiRay Fran Pires
 
Noções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores DigitaisNoções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores DigitaisHenry Raúl González Brito
 
Linguagem de programação da internet
Linguagem de programação da internetLinguagem de programação da internet
Linguagem de programação da internetVictor Barreto
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação Marcos Gregorio
 

Semelhante a Programação concorrente (20)

Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programação
 
Programação concorrente
Programação concorrenteProgramação concorrente
Programação concorrente
 
Paradigmas de Linguagem
Paradigmas de LinguagemParadigmas de Linguagem
Paradigmas de Linguagem
 
Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
Aula01 - Analise e Programação
Aula01 - Analise e ProgramaçãoAula01 - Analise e Programação
Aula01 - Analise e Programação
 
Apostila de dev
Apostila de devApostila de dev
Apostila de dev
 
apostila de dev.pdf
apostila de dev.pdfapostila de dev.pdf
apostila de dev.pdf
 
Apostila de dev
Apostila de devApostila de dev
Apostila de dev
 
Apostila de dev
Apostila de devApostila de dev
Apostila de dev
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
 
Comparativo do uso de linguagens de programação e geradores de código no dese...
Comparativo do uso de linguagens de programação e geradores de código no dese...Comparativo do uso de linguagens de programação e geradores de código no dese...
Comparativo do uso de linguagens de programação e geradores de código no dese...
 
Noções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores DigitaisNoções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores Digitais
 
Linguagem de programação da internet
Linguagem de programação da internetLinguagem de programação da internet
Linguagem de programação da internet
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 

Último

Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICA
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICADESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICA
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICAPabloVinicius40
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdfPROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdfdanielemarques481
 

Último (6)

Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICA
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICADESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICA
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICA
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdfPROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
 

Programação concorrente

  • 1. Universidade Metodista Unida de MoçambiqueCampus Universitário de CambineEngenharia Informática e Tecnologias Discentes: Chelton Lazaro Dercio Cumbane Gil Alexandre Lidson Olinda Pave Nildo jaciinto UnidadeCurricular:ParadigmadeProgramação Docente: Eng. Iolanda 1
  • 2. Paradigmade Programação Concorrente  Definição  Caracteristicas da Programação Concorrente  Programação Paralela  Vantagens da Programação Concorrente  Desvantagens da programação concorrente  Desafios da Programação Concorrente  Comunicação e Interação entre programas concorrentes  Conflitos e Compartilhamento de Recursos  Diferença entre concorrência e paralelismo  Sintaxe e semântica das linguagens Concorrentes  Principais linguagens da programação concorrente
  • 3. Definição O termo "programação concorrente" vem do inglês concurrent programming, onde concurrent significa "acontecendo ao mesmo tempo". A programação concorrente é um paradigma de programação usado na construção de programas que fazem uso da execução simultânea de diversas tarefas que podem ser implementadas como programas separados ou como um único programa que dispara várias linhas de execução em paralelo. As linhas de execução também são conhecidas como threads. A programação concorrente foi usada inicialmente na construção de sistemas operacionais. Atualmente, ela é usada para desenvolver aplicações em todas as áreas da
  • 4. Características da Programação Concorrente  Execução simultânea de tarefas  Comunicação e coordenação entre tarefas  Sincronização e exclusão mútua  Independência de tarefas  Concorrência e paralelismo  Tratamento de exceções  Escalabilidade e desempenho
  • 5. Programação Paralela Programação paralela é uma forma de computação em que vários cálculos são realizados ao mesmo tempo, operando sob o princípio de que grandes problemas geralmente podem ser divididos em problemas menores, que então são resolvidos concorrentemente (em paralelo). Existem diferentes formas de computação paralela: em bit, instrução, de dado ou de tarefa. A técnica de paralelismo já é empregada há vários anos, principalmente na computação de alto desempenho
  • 6. Vantagens da Programação Concorrente  Melhoria de desempenho  Responsividade  Modularidade  Escalabilidade  Tolerância a falhas  Compartilhamento de recursos  Simplificação do código
  • 7. Cont…  A principal vantagem do uso da programação concorrente é o aumento do desempenho dos programas, pois é possível aumentar a quantidade de tarefas executadas em um determinado período de tempo.
  • 8. Desvantagens da programação concorrente  Dificuldade de programação  Baixo suporte de hardware  Concorrência e sincronização  Consumo de recursos  Dificuldades de depuração:  Acesso compartilhado  Complexidade do código  Dificuldade de previsão de desempenho
  • 9. Desafios da Programação Concorrente O grande desafio da programação concorrente é o compartilhamento de recursos, a comunicação e a interação entre os programas que são executados concorrentemente. O objetivo deve ser o de administrar o acesso concorrente aos recursos computacionais, tais como por exemplo, o acesso aos discos ou a outros recursos compartilhados, como a impressora.
  • 10. Comunicação e Interação entre programas concorrentes Em um sistema computacional concorrente, os programas executados de forma concorrente podem ter a necessidade de se comunicarem para troca de informações. Neste contexto, é importante que o programador possa ter alguma informação sobre como é feita a comunicação entre os programas executados concorrentemente.
  • 11. Conflitos e Compartilhamento de Recursos É preciso evitar conflitos entre os programas concorrentes. Os conflitos podem ocorrer porque os programas concorrentes fazem uso de recursos compartilhados e por isso a necessidade de se ter controle de concorrência. Em alguns sistemas computacionais concorrentes a comunicação entre os processos concorrentes é 'escondida' do programador mas em outros sistemas a comunicação é explícita, podendo ser interpretada pelo programador.
  • 12. Comunicação por memória compartilhada Neste tipo de comunicação os processos comunicam-se através do acesso à áreas de memória que são compartilhadas entre os processos concorrente. Neste tipo de comunicação deve ser feiro gerenciamento do uso da memória compartilhada a fim de que um processo não interfira na execução de outro processo sendo executado concorrentemente.
  • 13. Diferença entre concorrência e paralelismo Concorrência é basicamente a capacidade de lidar com várias coisas de uma só vez. Paralelismo é a capacidade de lidar com várias coisas ao mesmo tempo.
  • 14. Sintaxe e semântica das linguagens Concorrentes Linguagem C# Inicialmente, a aplicação da linguagem C foi direccionada para a programação de sistemas, nomeadamente durante o desenvolvimento do sistema operativo Unix. Tendo a sua verstilidade, contudo, levado a que fosse utilizada em diversos contextos. Algumas das suas características principais são: Portabilidade – Os programas em C correm com poucas ou nenhumas alterações, quando instalados em diferentes máquinas com diferentes sistemas operativos. Estrutura – A linguagem C tem atributos e uma estrutura de uma linguagem programação moderna, sendo uma linguagem estruturada que permite, por exemplo, a recursão.
  • 15. Cont… Eficiência – O C permite desenvolver programas tanto a alto como a baixo nivel. Possui um grande número de operadores bit a bit (bitwise operators). Além disso, permite trabalhar eficientemente com ponteiros. O programa principal da linguagem de programação C deve conter uma função chamada main, e deve ter a seguinte estrutura:
  • 16. Linguagem C++ C++ (em português: Pronuncia-se "cê mais mais") é uma linguagem de programação compilada multi-paradigma (seu suporte inclui linguagem imperativa, orientada a objetos e genérica) e de uso geral. Desde os anos 1990 é uma das linguagens comerciais mais populares, sendo bastante usada também na academia por seu grande desempenho e base de utilizadores.
  • 17. Cont…  Java: é uma linguagem de programação amplamente utilizada em desenvolvimento de aplicativos empresariais.  Foi desenvolvida na SUNM,ICROSYSTEMS em1991,uma grande vantagem que ela apresenta é o facto de seus códigos fonte e objetos serem portáteis para diversas arquiteturas e sistemas operacionais.  A sua sintaxe é
  • 18. Principais linguagens da programação concorrente Java: Java é uma linguagem de programação amplamente utilizada em desenvolvimento de aplicativos empresariais e também oferece suporte a concorrência por meio do pacote java.util.concurrent. C/C++: C e C++ são linguagens de programação populares, amplamente utilizadas em sistemas embarcados e de alto desempenho Erlang: Erlang é uma linguagem de programação funcional e concorrente projetada especificamente para sistemas distribuídos e tolerantes a falhas. Erlang possui suporte integrado para concorrência
  • 19. cont… Rust: Rust é uma linguagem de programação moderna que é projetada para ser segura, concorrente e de alto desempenho. Rust possui primitivas de concorrência, como threads e canais, e seu sistema de tipos e modelo de propriedade ajudam a prevenir condições de corrida e outros problemas comuns de concorrência.