Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouBeatriz Henriques Alterado mais de 9 anos atrás
1
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Operador para Esconder Eventos
2
Operador para construir processos: P\X dado um processo P e um conjunto de eventos X P\X comporta-se como P exceto pelo fato de que os eventos em X –não podem ser observados, são escondidos –são executados internamente, de forma automática Hiding
3
Útil para esconder eventos e comunicações auxiliares do sistema: –concentrar entendimento nos aspectos essenciais do sistema, esquecer os detalhes internos da implementação –evitar comunicações não desejadas ou não permitidas –garantir comunicação ponto-a-ponto: (P [|X|] Q)\X (P [X||Y|] Q)\(X Y) Hiding
4
COPY'(a,b) = a?x -> b!x -> COPY'(a,b) BCHAIN(N) = || i:{0..N-1} @ [{|dd.i,dd.i+1|}] COPY'(dd.i,dd.i+1) HCHAIN(N) = BCHAIN(N)\{|dd.i | i <- {1..N-1}|} Exemplo Para funcionar como um buffer!
5
BN(a,b,N,s) = #s BN(a,b,N,s^ ) [] #s>0 & b!head(s) -> BN(a,b,N,tail(s)) BN(dd.0,dd.5,5,<>) [= HCHAIN(5) HCHAIN(6) [= BN(dd.0,dd.6,6,<>) Exemplo Equivalente? E BCHAIN ?
6
(P |~| Q)\X = (P\X) |~| (Q\X) (P\Y)\X = P\(X Y) (P\Y)\X = (P\X)\Y P\{} = P (a -> P)\X = P\X (se a X) = a->(P\X) (se a X) Leis
7
(a -> P)\{a} = P\{a} (a -> P)\{b} = a -> P\{b} (a -> P [] b -> Q)\{a,b} = P\{a,b} |~| Q\{a,b} (a -> P [] b -> Q)\{b} = (a -> P\{b} [] Q\{b}) |~| Q\{b} Processos com e sem restrição de visibilidade
8
(c?x:A -> P)\X = if X A={} then c?x:A -> (P\X) else ( (c?x:(A\X) -> (P\X)) [] (|~| {P(a)\X |a X A}) ) |~| (|~| {P(a)\X |a X A}) Processos com e sem restrição de visibilidade
9
Exemplo ATM2 = incard?c -> pin.fpin(c) -> req?n -> ((dispense!n -> outcard.c -> ATM2) |~| (refuse -> (ATM2 |~| outcard.c -> ATM2))) ATMref(n) = (n ATMref(Max) [] incard?c -> pin.fpin(c) -> req?w -> (if w<=n then dispense!w -> outcard.c -> ATMref(n-w) else refuse -> outcard.c -> ATMref(n) )
10
Exemplo ? ATM2 [= ATMref(0) ? ATM2 [= ATMref(0)\{refill} ? ATMref(0)\{refill} [= ATM2 ? ATMref(0) [= ATM2 ATMref(0) é determinística ATMref(0)\{refill} é não-determinística
11
Processo realiza seqüência infinita de eventos internos O operador de hiding pode introduzir divergência ou livelock: P = ( X.a -> X)\{a} Q = a -> Q\{a} P = P (P = ( X.X)) P = div Divergência Recursão guardada x construtiva
12
(P [|X|] Q)\Z = (P\Z) [|X|] (Q\Z) ( se X Z={}) (P [X||Y] Q)\Z = (P\Z X)[X||Y](Q\Z Y) ( se X Y Z={}) Leis
13
traces(P\X) = { s\X | s traces(P) } s\X denota s (Events\X) Traces
14
Do livro texto –Essenciais: 3.1.1 –Opcionais: 3.1.2 Exercícios
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.