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

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

1 Hiding, Renomeação, Composição Seqüencial e Refinamento Alexandre Mota

Apresentações semelhantes


Apresentação em tema: "1 Hiding, Renomeação, Composição Seqüencial e Refinamento Alexandre Mota"— Transcrição da apresentação:

1 1 Hiding, Renomeação, Composição Seqüencial e Refinamento Alexandre Mota (acm@cin.ufpe.br)

2 2 Hiding Seja P um processo e X um conjunto de eventos P \ X Comporta-se como P, com eventos de X Escondidos (invisíveis) Executados internamente, de forma automática

3 3 Hiding Útil para esconder eventos e comunicações auxiliares do sistema: Aspectos essenciais do sistema, esquecer os detalhes internos de implementação Evitar comunicações não desejadas ou não permitidas Garantir comunicação ponto-a-ponto: (P [|X|] Q) \ X

4 4 Exemplos (a -> P)\{a} = P\{a} (a -> P)\{b} = a -> P\{b}

5 5 Exemplos (a -> P [] b -> Q)\{a,b} = P\{a,b} |~| Q\{a,b}

6 6 Exemplos (a -> P [] b -> Q)\{b} = (a -> P\{b} [] Q\{b}) |~| Q\{b}

7 7 Divergência Processo realiza seqüência infinita de eventos internos O operador de hiding pode introduzir divergência (livelock) P = (  X.a -> X)\{a} Q = a -> Q\{a} P = P (P = (  X.X)) P = div Recursão guardada x construtiva

8 8 Renomeação Seja P um processo e R uma relação entre eventos {e 1 <- f 1,..., e n <- f n } P[[R]] Comporta-se como P, mas eventos e i tornam-se f i segundo R Útil para criar vários processos similares e reusar processos

9 9 Renomeação Se R for uma função então P[[R]] é obtido a partir da sintaxe de P pela renomeação dos eventos segundo R E se for injetiva, P[[R]] oferece o evento R(a) exatamente quando P oferece a

10 10 Renomeação Se R for uma função então Mas se não for injetiva, o comportamento da renomeação pode mudar : (a -> P [] b -> Q)[[a <- b, b <- b]]

11 11 Renomeação Caso R não seja uma função, Podem-se introduzir escolhas que não existiam antes: (a -> STOP)[[a <- a, a <- b]] = (a -> STOP) [] (b -> STOP)

12 12 Composição Seqüencial Sejam P e Q dois processos CSP P ; Q Comporta-se como P até que ocorra um SKIP Neste caso, P ; Q comportar-se-á como o processo Q

13 13 Composição Seqüencial Este operador é útil para dividir-se o sistema em módulos independentes, onde nem o estado precise ser conhecido Os processos (módulos) deverão terminar com SKIP de forma conveniente ao acoplamento desejado

14 14 Composição Seqüencial As seguintes propriedades são interessantes: SKIP ; Q = Q STOP ; Q = STOP

15 15 Refinamento Trata-se de uma relação de satisfação P Q M TFFD

16 16 1.  S  S S(Reflexiva) 2.  S, T  S T  T S  S = T(Anti-Simétrica) 3.  S, T, U  S T  T U  S U(Transitiva) 4.  S, T  S T  C[S] C[T](Monotônica) Propriedades Importantes Relação de refinamento deve ser uma ordem parcial:

17 17 Modelos Semânticos de CSP Modelos: Traces ( T ), Failures ( F ), Failures-Divergences ( FD ) Poder de descrição aumenta de T para FD Capturam-se mais aspectos (comportamento): Não-determinismo (safety ou segurança) Deadlock Livelock

18 18 Igualdade e Refinamento Várias noções de refinamento: P [ T = Q P [ F = Q P [ FD = Q e várias de igualdade: P = T Q P = F Q P = FD Q

19 19 Definição Refinamento em CSP é definido a partir da relação  da Teoria dos Conjuntos Assim P [ T = Q  T (Q)  T (P) P [ F = Q  T (Q)  T (P) e F (Q)  F (P) P [ FD = Q  F  (Q)  F  (P) e D (Q)  D (P) Obs.: F  (P) = F (P)  { (s, X) | s  D (P) }

20 20 Traces traces(a -> P) = {<>} U { ^s | s  traces(P)} traces (c?x:A -> P) = {<>} U { ^s | a  A, s  traces(P[a/x])} traces (P [] Q) = traces(P) U traces(Q) traces (P |~| Q) = traces(P) U traces(Q)

21 21 Exercício 1 Mostre que os seguintes refinamentos são válidos: P [ ] Q = P |~| Q P [ ] Q P, ou Q (a  b  STOP) (a  STOP)

22 22 Failures F (STOP) = {( , X) | X    } F (a  P) = { ( , X) | a  X }  { (  a  ^s, X) | (s, X)  F (P) } F (P |~| Q)= F (P)  F (Q)

23 23 Exercício 2 Mostre a validade dos seguintes refinamentos: P |~| Q P, ou Q (a  b  STOP) (a  STOP)

24 24 Divergences D (STOP) = { } D (SKIP) = { } D (a  P) = {  a  ^s | s  D (P) } D (P |~| Q)= D (P)  D (Q)

25 25 Exercício 3 Mostre a validade dos seguintes refinamentos: P |~| Q P, ou Q

26 26 Propriedades Clássicas Determinismo Algoritmo próprio… Ausência de Deadlock RUN(sigma) P Ausência de Livelock CHAOS(sigma) P

27 27 Verificação de Modelo vs Refinamento Verificação de modelo consiste em: M f Enquanto que verificação de refinamento consiste no que já vimos anteriormente Coincidem quando pode-se encontrar processo CSP P que foi construído para ter a propriedade f (Ex.: ausência de deadlock e livelock) = |

28 28 Referências Roscoe, A.W. The Theory and Practice of Concurrency. Prentice- Hall, 1998. Hoare, C.A.R. Communicating Sequential Processes. Prentice-Hall, 1985.Communicating Sequential Processes


Carregar ppt "1 Hiding, Renomeação, Composição Seqüencial e Refinamento Alexandre Mota"

Apresentações semelhantes


Anúncios Google