TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

A Programação Concorrente

Por:   •  12/4/2015  •  Trabalho acadêmico  •  694 Palavras (3 Páginas)  •  178 Visualizações

Página 1 de 3

Programa concorrente é executado simultaneamente

por diversos processos que cooperam entre si, isto é, trocam informações, que significa

trocar dados ou realizar algum tipo de sincronização

Componentes concorrentes comunicam-se ao trocar mensagens, cuja leitura pode ser feita:

- Assincronamente: o transmissor prossegue a sua execução após o envio da mensagem,

não aguardando a aceitação por parte do receptor.

- Sincronamente: o transmissor interrompe a sua execução após o envio da mensagem, enquanto

aguarda que o receptor aceite a mensagem enviada.

O ponto comum de envio-recepção determina um ponto de sincronismo.

Processo: Um processo difere do programa, pois um programa

é apenas uma seqüência de instruções, algo sem atividade dentro do sistema,

já o processo é o programa em atividade, ocorrendo mudanças de estado à medida

que vai sendo executado

Tarefa: é uma unidade de um programa que pode estar em execução concorrente

com outras unidades do mesmo programa.

Sincronização: é um mecanismo que controla a ordem de execução das tarefas

Dois tipos de sincronização: - Cooperação – Competição

A cooperação entre processos acontece quando para executar o seu código, um processo

espera que outro processo termine a tarefa primeiro.

A competição ocorre quando ambas requerem o uso de algum recurso que

não pode ser usado simultaneamente.

Este cenário de competição por recursos, retrata um problema

que deve ser resolvido com exclusão mútua.

Sincronização de Cooperação:

- Uso de funções wait e notify para controlar o acesso aos recursos, usando o conceito de monitores.

Sincronização de Competição:

- Uso da palavra synchronized para garantir o acesso único a um determinado recurso

Sincronização é uma forma especial de comunicação onde os dados envolvidos são informações de controle.

A sincronização serve ao objetivo de garantir o correto seqüenciamento de processos

e implementar o acesso mutuamente exclusivo a dados compartilhados.

Por exemplo, a sincronização pode ser utilizada para:

- Controlar a execução de processos produtores / consumidores;

- Proteger dados compartilhados de maneira que escritas simultâneas não possam ocorrer.

A sincronização é necessária pois uma tarefa pode estar a espera de um resultado gerado por outra,

para que a sua execução tenha um resultado consistente.

Exclusão mútua - tem como objetivo sincronizar threads de forma a garantir que

determinadas partes do código sejam executadas por no máximo uma thread de cada vez,

e assim, evitar que recursos compartilhados sejam acessados simultaneamente por várias threads.

Sincronização condicional - permite que o programador faça com que uma thread espera uma

dada condição ser verdadeira antes de continuar sua execução.

Threads são fluxos de execução que rodam dentro de um processo (aplicação).

Normalmente as threads compartilham regiões de memória.

Threads permitem que sua aplicação execute mais de

...

Baixar como (para membros premium)  txt (5 Kb)   pdf (44.6 Kb)   docx (13.5 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com