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

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

CIn.ufpe.br CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa.

Apresentações semelhantes


Apresentação em tema: "CIn.ufpe.br CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa."— Transcrição da apresentação:

1 CIn.ufpe.br CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. aflj@cin.ufpe.br Leonilson Barbosa lab5@cin.ufpe.br Renata Braga rba6@cin.ufpe.br

2 CIn.ufpe.br Agenda x Y Model-checking de CSP-Z

3 CIn.ufpe.br Z - O que é? x Y z

4 CIn.ufpe.br Z - Características x Y z

5 CIn.ufpe.br Z – Tipos e Variáveis x Y z

6 CIn.ufpe.br Z – Predicados x Y z

7 CIn.ufpe.br Z – Esquemas x Y z

8 CIn.ufpe.br Z – Operações x Y z

9 CIn.ufpe.br Z – Exemplo x Y z

10 CIn.ufpe.br CSP-Z – O que é? x Y z

11 CIn.ufpe.br CSP-Z – Sintaxe e Semânticas x Y z

12 CIn.ufpe.br CSP-Z Como verificar o comportamento das especificações CSP-Z e também as suas propriedades?

13 CIn.ufpe.br CSP-Z – Model-checking

14 CIn.ufpe.br CSP-Z – Model-checking Como caracterizar a parte de Z em CSP? Como será o comportamento do CSP baseado nesses estados de Z? Como combinar e sincronizar as duas partes? Exemplo com um buffer finito.

15 CIn.ufpe.br CSP-Z – Model-checking

16 CIn.ufpe.br CSP-Z – Model-checking Forma comum de representar um estado em CSP é pela parametrização Buffer(State) = in?x -> Buffer(State') Para representar o estado de espaços em Z usa-se um conjunto de tuplas: Para o exemplo do Buffer, se torna: State = {s | s <- FSeq(T, n) } E o estado inicial: Init = { s'| s' }

17 CIn.ufpe.br CSP-Z – Model-checking Restringindo o comportamento de CSP como função do espaço de estados: s != <> & out!y -> Buffer(State') >> Tomando o exemplo do canal out As partes de Z se tornam processos

18 CIn.ufpe.br CSP-Z – Model-checking com(s, In.t) = {s' | s' } com(s, Out.t) = {s' | s', t==head(s), s'==tail(s) } Como dito antes, CSP e Z se combinam através de uma composição paralela, então define-se a Interface: Channels = {|in,out|} lChannels = {} Interface = union(Channels, lChannels)

19 CIn.ufpe.br CSP-Z – Model-checking Então, a parte de Z como um processo, sem a inicialização, fica: Z(State) = ( [] (States,Comm) <-{ (com(State, c), c) | c<-Interface } @ States != {} & |~| State': States @ Comm -> Z(State') ) [] terminate -> SKIP Então, a parte de Z incluindo a inicialização, fica: Z_CSP = let Z(state) = ( como definido acima ) within |~| iState: Init @ Z(iState)

20 CIn.ufpe.br CSP-Z – Model-checking Combinando a parte de Z (em CSP) e a própria parte de CSP, finalmente, temos:... within (main [|Interface|] Z_CSP ) \lChannels A composição paralela por meio dos eventos em Interface une as partes de Z e CSP. O hidding é necessário pois em CSP não existe forma de modularizar da mesma forma que com especificações CSP-Z.

21 CIn.ufpe.br CSP-Z – Model-checking P = let -- The Interface Channels = {|...|} lChannels = {|...|} Interface = union(Channels, lChannels) -- The CSP Part main =... -- The Z Part State = {...} Init = {...} com(sTuple, Comm) = {...}... Z_CSP =... within (main [|Interface|] Z_CSP)\lChannels

22 CIn.ufpe.br CSP-Z – Model-checking Executando no ProBE Ferramenta de conversão de CSP-Z para CSP-M –Autores: Adalberto Farias, Alexandre Mota e Augusto Sampaio (2001) –Desenvolvida na linguagem Java

23 CIn.ufpe.br CSP-Z – Considerações Finais x Y z

24 BOA TARDE!


Carregar ppt "CIn.ufpe.br CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa."

Apresentações semelhantes


Anúncios Google