08.02.2015 Views

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

notas de aula - Jerônimo C. Pellegrini<br />

Cada thread então executa:<br />

antes da barreira<br />

wait m<br />

contador ← contador + 1<br />

signal m<br />

se contador = max então<br />

signal barreira<br />

wait barreira<br />

signal barreira<br />

depois da barreira<br />

O padrão POSIX descreve uma API para uso de barreiras (veja o Apêndice C).<br />

11.5 monitores<br />

Toda linguagem de programação de alto nível oferece mecanismos de abstração para<br />

processos e para dados. Monitores, inventados por Hoare e Brinch Hansen[41, 42], são<br />

uma única forma de abstração para dados, processos e concorrência.<br />

Um monitor consiste de variáveis, procedimentos e variáveis de condição. As variáveis<br />

somente são visíveis a partir dos procedimentos do monitor, e somente um procedimento<br />

do monitor pode estar executando em cada momento (<strong>com</strong>o se houvesse um mutex lock<br />

para acesso ao monitor) 4<br />

Versão Preliminar<br />

4 São <strong>com</strong>o classes em linguagens orientadas a objetos, mas onde o acesso aos atributos dos objetos é sempre<br />

feito apenas por métodos da classe, e somente por uma única thread de cada vez.<br />

[ 27 de outubro de 2010 at 15:47 ]<br />

253

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!