Programacao_Concorrente slide.pdf

MuseiwaLopes 88 views 20 slides Apr 20, 2023
Slide 1
Slide 1 of 20
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20

About This Presentation

Os programas executados de forma concorrente podem se comunicar de forma concorrente, existem conflitos e compartilhamento de recursos. Tem que se evitar conflitos nos programas. A comunicação é explícita podendo ser controlada pela parte do programador.


Slide Content

Universidade Metodista Unida de
MoçambiqueCampus Universitário de
CambineEngenharia Informática e
Tecnologias
Discentes:
CheltonLazaro
DercioCumbane
Gil Alexandre
Lidson OlindaPave
Nildojaciinto
UnidadeCurricular:ParadigmadeProgramação
Docente: Eng. Iolanda
1

Paradigmade Programação Concorrente
Definição
CaracteristicasdaProgramaçãoConcorrente
ProgramaçãoParalela
VantagensdaProgramaçãoConcorrente
Desvantagensdaprogramaçãoconcorrente
DesafiosdaProgramaçãoConcorrente
ComunicaçãoeInteraçãoentreprogramasconcorrentes
ConflitoseCompartilhamentodeRecursos
Diferençaentreconcorrênciaeparalelismo
SintaxeesemânticadaslinguagensConcorrentes
Principaislinguagensdaprogramaçãoconcorrente

Definição
Otermo"programaçãoconcorrente"vemdoinglêsconcurrentprogramming,onde
concurrentsignifica"acontecendoaomesmotempo".
Aprogramaçãoconcorrenteéumparadigmadeprogramaçãousadonaconstruçãode
programasquefazemusodaexecuçãosimultâneadediversastarefasquepodemser
implementadascomoprogramasseparadosoucomoumúnicoprogramaquedisparavárias
linhasdeexecuçãoemparalelo.Aslinhasdeexecuçãotambémsãoconhecidascomo
threads.
Aprogramaçãoconcorrentefoiusadainicialmentenaconstruçãodesistemas
operacionais.Atualmente,elaéusadaparadesenvolveraplicaçõesemtodasasáreasda

Características da Programação
Concorrente
Execuçãosimultâneadetarefas
Comunicaçãoecoordenaçãoentretarefas
Sincronizaçãoeexclusãomútua
Independênciadetarefas
Concorrênciaeparalelismo
Tratamentodeexceções
Escalabilidadeedesempenho

Programação Paralela
Programaçãoparalelaéumaformadecomputaçãoemquevárioscálculos
sãorealizadosaomesmotempo,operandosoboprincípiodequegrandes
problemasgeralmentepodemserdivididosemproblemasmenores,que
entãosãoresolvidosconcorrentemente(emparalelo).
Existemdiferentesformasdecomputaçãoparalela:embit,instrução,de
dadooudetarefa.
Atécnicadeparalelismojáéempregadaháváriosanos,principalmentena
computaçãodealtodesempenho

Vantagens da Programação
Concorrente
Melhoriadedesempenho
Responsividade
Modularidade
Escalabilidade
Tolerânciaafalhas
Compartilhamentoderecursos
Simplificaçãodocódigo

Cont…
Aprincipalvantagemdousodaprogramaçãoconcorrenteéo
aumentododesempenhodosprogramas,poisépossívelaumentara
quantidadedetarefasexecutadasemumdeterminadoperíodode
tempo.

Desvantagens da programação concorrente
Dificuldadedeprogramação
Baixosuportedehardware
Concorrênciaesincronização
Consumoderecursos
Dificuldadesdedepuração:
Acessocompartilhado
Complexidadedocódigo
Dificuldadedeprevisãodedesempenho

Desafios da Programação Concorrente
Ograndedesafiodaprogramaçãoconcorrenteéo
compartilhamentoderecursos,acomunicaçãoeainteração
entreosprogramasquesãoexecutadosconcorrentemente.O
objetivodeveserodeadministraroacessoconcorrenteaos
recursoscomputacionais,taiscomoporexemplo,oacessoaos
discosouaoutrosrecursoscompartilhados,comoaimpressora.

ComunicaçãoeInteraçãoentreprogramas
concorrentes
Emumsistemacomputacionalconcorrente,osprogramas
executadosdeformaconcorrentepodemteranecessidadede
secomunicaremparatrocadeinformações.Nestecontexto,é
importantequeoprogramadorpossateralgumainformação
sobrecomoéfeitaacomunicaçãoentreosprogramas
executadosconcorrentemente.

Conflitos e Compartilhamento de Recursos
Éprecisoevitarconflitosentreosprogramasconcorrentes.Os
conflitospodemocorrerporqueosprogramasconcorrentes
fazemusoderecursoscompartilhadoseporissoanecessidade
desetercontroledeconcorrência.
Emalgunssistemascomputacionaisconcorrentesacomunicação
entreosprocessosconcorrentesé'escondida'doprogramador
masemoutrossistemasacomunicaçãoéexplícita,podendoser
interpretadapeloprogramador.

Comunicação por memória compartilhada
Nestetipodecomunicaçãoosprocessoscomunicam-seatravés
doacessoàáreasdememóriaquesãocompartilhadasentreos
processosconcorrente.Nestetipodecomunicaçãodeveser
feirogerenciamentodousodamemóriacompartilhadaafimde
queumprocessonãointerfiranaexecuçãodeoutroprocesso
sendoexecutadoconcorrentemente.

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–OCpermitedesenvolverprogramastantoaaltocomoabaixo
nivel.Possuiumgrandenúmerodeoperadoresbitabit(bitwise
operators).Alémdisso,permitetrabalhareficientementecomponteiros.
OprogramaprincipaldalinguagemdeprogramaçãoCdeveconteruma
funçãochamadamain,edeveteraseguinteestrutura:

Linguagem C++
C++(emportuguês:Pronuncia-se"cêmaismais")éumalinguagemde
programaçãocompiladamulti-paradigma(seusuporteincluilinguagem
imperativa,orientadaaobjetosegenérica)edeusogeral.Desdeosanos
1990éumadaslinguagenscomerciaismaispopulares,sendobastante
usadatambémnaacademiaporseugrandedesempenhoebasede
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 suasintaxeé

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éumalinguagemdeprogramaçãomodernaqueé
projetadaparasersegura,concorrenteedealtodesempenho.
Rustpossuiprimitivasdeconcorrência,comothreadsecanais,
eseusistemadetiposemodelodepropriedadeajudama
prevenircondiçõesdecorridaeoutrosproblemascomunsde
concorrência.

.
Obrigado pelaatençãodispensada
Tags