Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouEster Branco Alterado mais de 9 anos atrás
1
Especificação de um Mecanismo Autonômico em CSP Adalberto R. Sampaio Junior Doutorado – Cin/UFPE
2
Ambiente de execução do sistema S = state?i -> signal!i -> ( next -> S [] execute?x -> Sidx(x) ) Sidx(i) = state.i -> signal!i -> execute?x -> Sidx(x) ) 2
3
Sistemas simulados S1: não determinístico 3
4
Sistemas simulados S1: determinístico Estados válidos: 1, 2, 3, 5 4
5
Sistemas simulados S3: determinístico Estados válidos: 1, 2 5
6
Sistemas simulados S4: determinístico Estados válidos: 1, 5,3,2 6
7
Verificação de Traces Foi verificado se o ambiente e execução S poderia executar os sistemas S1, S2, S3, S4. Traces S \{|execute, next|} [T= S1 S \{|execute, next|} [T= S2 S \{|execute, next|} [T= S3 S \{|execute, next|} [T= S4 7
8
Mecanismo Autonômico Modelado com base na arquitetura Mape-K proposta pela IBM. Quatro processos: Monitor; Analisador; Planejador; Executor; Uma base de conhecimento 8
9
Mecanismo Autonômico Monitor check(n) = {s | s <- inter({sym.n},SYMPTOMS), member(sym.n,SYMPTOMS)} Monitor = signal?s -> monitor!s -> if empty(check(s)) then next -> Monitor else symptom_detect!head(seq(check(s))) -> Monitor 9
10
Mecanismo Autonômico Analisador request_change(n) = mapLookup(CHANGES,n) Analizer = symptom_detect?s -> if member(s, SYMPTOMS) then change_plan!request_change(s) -> Analizer else Analizer 10
11
Mecanismo Autonômico Planejador Planner = change_plan?cp -> (mapMember(ACTIONS, cp)) & apply!mapLookup(ACTIONS,cp) -> Planner 11
12
Mecanismo Autonômico Executor Executor = apply?cp -> execute!cp -> Executor 12
13
Mecanismo Autonômico Autonomic = ( Monitor [|{|symptom_detect|}|] Analizer ) [|{|change_plan|}|] Planner ) [|{|apply|}|] Executor 13
14
Mecanismo Autonômico Base de conhecimento ---------------Knowledge Base--------------- -- S2 --SYMPTOMS = {sym.2, sym.3} --CHANGES = (| sym.2 => change.1, sym.3 => change.2 |) --ACTIONS = (| change.1 => 3, change.2 => 5 |) -- S3 --SYMPTOMS = {sym.2} --CHANGES = (| sym.2 => change.1 |) --ACTIONS = (| change.1 => 1 |) -- S4 SYMPTOMS = {sym.1, sym.2, sym.3, sym.5} CHANGES = (| sym.1 => change.1, sym.2 => change.2, sym.3 => change.3, sym.5 => change.4 |) ACTIONS = (| change.1 => 5, change.2 => 1, change.3 => 2, change.4 => 3 |) ---------------end knowledge Base--------------- 14
15
Execução do Sistema de Forma Autonômica Au = S [|{|signal, execute, next|}|] Autonomic Propriedades verificadas assert Au :[deadlock free] assert Au :[deterministic] assert Au :[divergence free] assert S \{|execute, next|} [T= S1 assert S \{|execute, next|} [T= S2 assert S \{|execute, next|} [T= S3 assert S \{|execute, next|} [T= S4 TO_HIDE = {|symptom_detect, change_plan, apply, next, execute, monitor|} assert Au \ TO_HIDE [T= S1 assert Au \ TO_HIDE [T= S2 assert Au \ TO_HIDE [T= S3 assert Au \ TO_HIDE [T= S4 15
16
Execução do Sistema de Forma Autonômica -- -- monitor.[n] -- execute.[m] A(n,m) = monitor.n -> execute.m -> A(n,m) B(m,n) = execute.m -> monitor.n -> B(m,n) assert Autonomic \ {|signal, symptom_detect, change_plan, apply|} [T= A(3,4) assert Autonomic \ {|signal, symptom_detect, change_plan, apply|} [T= B(4,3) 16
17
Refinamento [FD= ---------------Centralized Monitor--------------- -- deterministic -- Monitor check(n) = {s | s <- inter({sym.n},SYMPTOMS), member(sym.n,SYMPTOMS)} Monitor = signal?s -> monitor!s -> if empty(check(s)) then next -> Monitor else symptom_detect!head(seq(check(s))) -> Monitor ------------------------------------------------- ---------------Distributed Monitor--------------- Non deterministic -- Monitor M(i) = sense?s -> if s == i then (signal.s -> monitor!s -> if empty (check(s)) then next -> M(i) else symptom_detect!head(seq(check(s))) -> M(i) ) else M(i) MMM = ||| i : STATES @ M(i) assert MMM \ {|sense|} [T= Monitor assert MMM \ {|sense|} [FD= Monitor ------------------------------------------------- 17
18
Obrigado! 18
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.