Presentation is loading. Please wait.

Presentation is loading. Please wait.

Semáforos Plataforma Java 1.5 Juliano Cardoso Vacaro.

Similar presentations


Presentation on theme: "Semáforos Plataforma Java 1.5 Juliano Cardoso Vacaro."— Presentation transcript:

1 Semáforos Plataforma Java 1.5 Juliano Cardoso Vacaro

2 Agenda Definição (Tanenbaum) API Java JDK 1.5

3 Semáforos (Tanenbaum) Definição Sincronização de Processos Bloqueantes Baixo Nível Composto por: Duas Primitivas: UP e DOWN Inteiro não negativo Fila de processos

4 Semáforos (Tanenbaum) Definição UP(s) se s = 0 e existem processos bloqueados então: libera um dos processos Senão: s := s + 1 DOWN(s) se s > 0 então: s:= s – 1 senão: processo é bloqueado

5 Semáforos (Tanenbaum) Observações UP e DOWN devem ser atômicos UP representa a primitiva V DOWN representa a primitiva P O contador do semáforo representa o número de recursos disponíveis

6 Semáforos (Java) Criação Modelados pela classe Semaphore Na criação de um objeto pode-se especificar: Valor do contador do semáforo Modo de gerenciamento da fila de processos bloqueados (FIFO ou não ordenada)

7 Semáforos (Java) Criação Protótipo Semaphore(int permits, boolean fair) Onde permits: valor inicial do contador do semáforo fair: se verdadeiro define ordenação FIFO da fila de processos bloqueados

8 Semáforos (Java) Requisição/Liberação Requisição (Primitiva P) Métodos bloqueantes Métodos bloqueantes com timeout Métodos Não bloqueantes Liberação (Primitiva V) Métodos Não bloqueantes

9 Semáforos (Java) Requisição Protótipos Bloqueantes acquire() acquire(int permits) Não Bloquantes tryAcquire(int permits, long timeout, TimeUnit unit) Onde permits: decremento do contador do semáforo timeout: tempo de espera pela permissão ao acesso

10 Semáforos (Java) Liberação Protótipos release() release(int permits) Onde Permits: incremento do contador do semáforo

11 Semáforos (Java) Status availablePermits() Informa o número de acessos permitidos no momento getQueueLength() Retorna o número de threads bloquadas Apenas uma estimativa (sem sincronização)


Download ppt "Semáforos Plataforma Java 1.5 Juliano Cardoso Vacaro."

Similar presentations


Ads by Google