1 Hiding, Renomeação, Composição Seqüencial e Refinamento Alexandre Mota ([email protected])
-
Upload
vagner-gabeira-batista -
Category
Documents
-
view
217 -
download
0
Transcript of 1 Hiding, Renomeação, Composição Seqüencial e Refinamento Alexandre Mota ([email protected])
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
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
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
Renomeação Seja P um processo e R uma relação
entre eventos {e1 <- f1, ..., en <- fn} P[[R]]
Comporta-se como P, mas eventos ei tornam-se fi segundo R
Útil para criar vários processos similares e reusar processos
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
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
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
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
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
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
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
Igualdade e Refinamento Várias noções de refinamento:
P [ T = QP [ F = QP [ FD = Q
e várias de igualdade:P =T QP =F QP =FD Q
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
Traces traces(a -> P) = {<>} U {<a>^s | s
traces(P)}
traces (c?x:A -> P) = {<>} U {<c.a>^s | aA, s traces(P[a/x])}
traces (P [] Q) = traces(P) U traces(Q)
traces (P |~| Q) = traces(P) U traces(Q)
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
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)
26
Propriedades Clássicas Determinismo
Algoritmo próprio… Ausência de Deadlock
RUN(sigma) P Ausência de Livelock
CHAOS(sigma) P
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
Referências Roscoe, A.W. The Theory and
Practice of Concurrency. Prentice-Hall, 1998.
Hoare, C.A.R. Communicating Sequential Processes. Prentice-Hall, 1985.