Académique Documents
Professionnel Documents
Culture Documents
RESUMO
ABSTRACT
This article intends to show the main advantages in using the concurrent
programming paradigm in developing software and the main disadvantages
that lead to its low utilization in the developers community wich are the
implementation difficulty and code control and the low necessary hardware
availability for a good use of the paradigm . Case examples are shown where
there is a great benefit in the use of this paradigms, as well as case examples
where there are challenges to surpass to use this paradigm.
1. Introduo
Existem tarefas dentro do cdigo de certos softwares que podem ser dividas entre dois
ou mais processadores de um mesmo computador, um bom exemplo a utilizao dos
novos processadores de ncleo duplo executando um programa reprodutor de filmes.
Enquanto a imagem processada em um deles, o som pode ser processado em outro.
Isso traz um grande benefcio, a diviso de trabalho, onde pode-se notar um menor uso
da capacidade de cada um, o que possibilita a execuo de outras tarefas do sistema
operacional e at mesmo outros softwares que utilizem dois processadores porm no
consumindo 100% deles.
2
Figura 1 Gerenciador de Tarefas do Windows XP Processamento de um filme, udio em um ncleo,
vdeo em outro.
Outras aplicaes podem utilizar dois ncleos para diminuir o tempo de execuo de
certa tarefa considerada importante e que merea ser realizada em menor tempo. Um
bom exemplo a compactao de um arquivo, pode-se obter em um cenrio ideal, uma
diminuio de 50% no tempo necessrio para a compactao de um arquivo. A
utilizao dos dois ncleos ser mxima e possvel que as tarefas menos importantes
do sistema operacional e os outros programas que estavam em execuo sofram uma
queda de desempenho. [Citao] - FIGURA
Alm disso, quando temos um processador de ncleo nico, as diversas tarefas que
esto sendo executadas muitas vezes sem a interveno do usurio, como carregamento
e interpretao de drivers do sistema operacional, servios de aplicativos e requisies
de conexo de sites da internet podem consumir um tempo de processador precioso,
impedindo um bom desempenho da tarefa principal para o usurio. Se utilizarmos um
processador de ncleo duplo e se o sistema operacional, seus drivers e servios de
aplicativos forem programados utilizando o paradigma concorrente, pode-se utilizar
apenas um dos ncleos para essas tarefas, enquanto o outro continua livre para processar
a aplicao principal com um desempenho superior.
3
Figura 2 Gerenciador de tarefas Windows XP Uso total de todos os ncleos para o processamento de
uma imagem tridimensional no menor tempo possvel.
4
Figura 3 Software alternando a porcentagem de uso dos ncleos conforme os threads
vo sendo iniciados ou finalizados.
5
3.1.1 Sincronizao Condicional
Para que um thread no interfira em outro, usa-se dois tipos de sinal, o WAIT (espere) e
o NOTIFY (sinal para prosseguir). Supondo uma situao onde dois threads possuam
trecho de cdigo que instrui para acessar uma mesma rea de memria, o primeiro
thread teria de emitir o sinal WAIT para a segunda, e assim que realizasse todas as
operaes necessrias com aquela rea da memria, enviaria o NOTIFY para o segundo
thread iniciar seu acesso. Isso seria a situao ideal. Porm no assim que ocorre em
algumas implementaes do UNIX. Dependendo da implementao pode haver uma
perda de sinal entre os threads causando a no-execuo de determinada tarefa por uma
das threads, impactando todo o andamento da aplicao.
6
Figura 4 Gasto com processadores Single Core (Um ncleo) e Multicore (Vrios ncleos) em 2005 e
2006 para uso em servidores
4.Concluso
7
Referncias - URLs
http://www.dc.ufscar.br/~mdchiodi/ProgramacaoConcorrente/Pc.html - Curso de
Programao Concorrente. Acesso em 18 Jun 2007.
http://www.cacs.louisiana.edu/~mgr/404/burks/pcinfo/progdocs/plbook/concurre.htm -
Concurrent Programming. Acesso em 17 Jun 2007.
http://en.wikipedia.org/wiki/Concurrent_computing#Advantages Wikipedia -
Concurrent computing. Acesso em 17 Jun 2007.
http://www.intel.com/products/processor/xeon/idc_quadcore.pdf - Quad-Core
Processors Bring Higher Performance and Lower Cost to Mainstream Computing
Matthew Eastwood Kenneth Cayton, Abril 2007 - Acesso em 18 Jun 2007
http://www.phptr.com/content/images/0131013769/samplechapter/hughesch01.pdf -
The Joys of Concurrent Programming Acesso em 16 Jun 2007