A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

©André Santos, 2000 Concorrência e Sincronização André Santos CIn-UFPE Concorrência.

Apresentações semelhantes


Apresentação em tema: "©André Santos, 2000 Concorrência e Sincronização André Santos CIn-UFPE Concorrência."— Transcrição da apresentação:

1 ©André Santos, 2000 Concorrência e Sincronização André Santos CIn-UFPE Concorrência

2 ©André Santos, 2000 Notação: Declarações type days = (SUN,MON,...,SAT) var i : int := 0, x : real, s : string(10) var forks[1:5]:bool := ([5] false) type student = rec (name:string(30) age : int classes[1:5] : string(15))

3 ©André Santos, 2000 Notação: Statements skip vector[1] := n + 2 v1 :=: v2 x := x+1; y := y-1 if B1 -> S1 []... [] Bn -> Sn fi

4 ©André Santos, 2000 Notação: Statements do B1 -> S1 []... [] Bn -> Sn od MDC: x := X; y := Y do x > y -> x := x – y [] y > x -> y := y – x od

5 ©André Santos, 2000 Notação: Statements fa i:=1 to n -> vector[i]:=0 af procedure inc (var x:int) x := x + 1 end

6 ©André Santos, 2000 Notação: Concorrência co S1 //... // Sn oc x := 0; y := 0 co x:= x + 1 // y:= y + 1 oc z := x + y co i := 1 to n -> a[i]:=0 oc

7 ©André Santos, 2000 Notação: Concorrência var a[1:n], b[1:n] : int Largest:: var max:int max:=a[1] fa j:=2 to n st max max := a[j] af

8 ©André Santos, 2000 Notação: Concorrência Sum[i:1..n]:: b[i] := a[1] fa j:=2 to i -> b[i] := b[i] + a[j] af

9 ©André Santos, 2000 Políticas de Escalonamento e Fairness n Várias das propriedades de liveness dependem de fairness. n O escalonamento se preocupa em como garantir que processos tenham chance de prosseguir, independentemente das ações dos demais processos.  A existência de várias ações elegíveis fazem com que uma política de escalonamento seja usada para definir qual será executada.

10 ©André Santos, 2000 Atomicidade de fina granularidade n Ação atômica faz uma transformação indivisível no estado. n Qualquer estado intermediário na implementação da ação deve ser invisível para os outros processos. n Ação atômica de fina granularidade é implementada diretamente pelo hardware em que o programa concorrente executa.

11 ©André Santos, 2000 Exemplo: atribuição n y:=0; z:=0 co x := y+z // y :=1; z:=2 oc n x = 0,1,2 ou 3?

12 ©André Santos, 2000 Assumir nos exemplos n Valores de tipos básicos são lidos e escritos como uma ação atômica n Valores são manipulados carregando-os em registros, executando operações e depois guardando os resultados na memória. n Cada processo tem seu conjunto de registros (chaveamento de contexto) n Resultados intermediários são guardados em registros ou em memória.

13 ©André Santos, 2000 Especificando sincronização n Objetivo: possibilitar criação de ações atômicas de maior granularidade. n Exemplo: modificação simultânea em um banco de dados S> 0) -> s := s-1>

14 ©André Santos, 2000 Especificando sincronização Exclusão mútua Sincronização de condição 0> n Ação atômica incondicional x condicional

15 ©André Santos, 2000 Políticas de Escalonamento e Fairness Exemplo: var continue := true Loop:: do continue -> skip od Stop:: continue := False n O que acontece se o escalonador faz o chaveamento de contexto (context switch) apenas quando um processo termina ou fica em espera?

16 ©André Santos, 2000 Unconditional Fairness n Uma política de escalonamento é incondicionalmente justa se toda ação atômica incondicional que é elegível é executada em algum momento. n Para o exemplo anterior, round-robin ou execução paralela em multiprocessadores seria incondicionalmente justa.

17 ©André Santos, 2000 Weak Fairness n Na presença de ações atômicas condicionais, é necessário hipóteses mais fortes para garantir que os processos vão progredir. n Uma política de escalonamento é fracamente justa se ela é incondicionalmente justa e toda ação atômica condicional elegível é executada em algum momento, assumindo que sua guarda se torne verdadeira e não seja subsequentemente mudada para falso por outro processo.

18 ©André Santos, 2000 Weak Fairness n Round-robin e timeslicing são fracamente justas. n O processo em algum momento verá que sua condição de espera se tornou verdadeira.

19 ©André Santos, 2000 Strong Fairness n Se a guarda pode mudar - de falsa para verdadeira e novamente para falsa – enquanto um processo espera. n Uma política de escalonamento é fortemente justa se ela é incondicionalmente justa e toda ação atômica condicional elegível é executada em algum momento, assumindo que a guarda é infinitamente frequentemente verdadeira.

20 ©André Santos, 2000 Strong Fairness Exemplo: var continue := true, try := false; Loop:: do continue -> try := true; try := false od Stop:: continue := false>

21 ©André Santos, 2000 Strong Fairness n De forma geral não é viável na prática:  Alternar a cada instrução  Escalonador de um multiprocessador n Não é fortemente justo:  Round-robin e timeslicing

22 ©André Santos, 2000 Strong Fairness Instâncias específicas: 0) -> s := s - 1> n 2 processos de espera, demais incrementam s n Escalonador FCFS (First Come First Served)


Carregar ppt "©André Santos, 2000 Concorrência e Sincronização André Santos CIn-UFPE Concorrência."

Apresentações semelhantes


Anúncios Google