Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouMikaela Motta Alterado mais de 9 anos atrás
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!
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.