Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Simulador para Algoritmos Distribuídos Caio Kinzel Filho.
-
Upload
mauro-rios-canejo -
Category
Documents
-
view
225 -
download
0
Transcript of Simulador para Algoritmos Distribuídos Caio Kinzel Filho.
![Page 1: Simulador para Algoritmos Distribuídos Caio Kinzel Filho.](https://reader030.fdocumentos.tips/reader030/viewer/2022033101/5706384c1a28abb8238f64bb/html5/thumbnails/1.jpg)
Simulador para Algoritmos Distribuídos
Caio Kinzel Filho
![Page 2: Simulador para Algoritmos Distribuídos Caio Kinzel Filho.](https://reader030.fdocumentos.tips/reader030/viewer/2022033101/5706384c1a28abb8238f64bb/html5/thumbnails/2.jpg)
• as ideias, as funcionalidades, as limitações, as possíveis extensões, então tem que ser equilibrado
![Page 3: Simulador para Algoritmos Distribuídos Caio Kinzel Filho.](https://reader030.fdocumentos.tips/reader030/viewer/2022033101/5706384c1a28abb8238f64bb/html5/thumbnails/3.jpg)
Motivação
• Exercicio: fazer um algoritmo distribuido• Debugar...• Testar em mais de uma topologia• Baseado em composição
![Page 4: Simulador para Algoritmos Distribuídos Caio Kinzel Filho.](https://reader030.fdocumentos.tips/reader030/viewer/2022033101/5706384c1a28abb8238f64bb/html5/thumbnails/4.jpg)
Solução
• Modelo + Templates + Algoritmos
• C#• DSL Tools• Visual Studio• T4
![Page 5: Simulador para Algoritmos Distribuídos Caio Kinzel Filho.](https://reader030.fdocumentos.tips/reader030/viewer/2022033101/5706384c1a28abb8238f64bb/html5/thumbnails/5.jpg)
Modelo
![Page 6: Simulador para Algoritmos Distribuídos Caio Kinzel Filho.](https://reader030.fdocumentos.tips/reader030/viewer/2022033101/5706384c1a28abb8238f64bb/html5/thumbnails/6.jpg)
Modelo
![Page 7: Simulador para Algoritmos Distribuídos Caio Kinzel Filho.](https://reader030.fdocumentos.tips/reader030/viewer/2022033101/5706384c1a28abb8238f64bb/html5/thumbnails/7.jpg)
Modelo
![Page 8: Simulador para Algoritmos Distribuídos Caio Kinzel Filho.](https://reader030.fdocumentos.tips/reader030/viewer/2022033101/5706384c1a28abb8238f64bb/html5/thumbnails/8.jpg)
Templates
• T4• Criação do código C# para as topologias• Customizável
![Page 9: Simulador para Algoritmos Distribuídos Caio Kinzel Filho.](https://reader030.fdocumentos.tips/reader030/viewer/2022033101/5706384c1a28abb8238f64bb/html5/thumbnails/9.jpg)
Templates
![Page 10: Simulador para Algoritmos Distribuídos Caio Kinzel Filho.](https://reader030.fdocumentos.tips/reader030/viewer/2022033101/5706384c1a28abb8238f64bb/html5/thumbnails/10.jpg)
Algoritmospublic interface IAlgorithm{ Action<INode, IMessage> BeforeSend { get; } Action<INode, IMessage> AfterSend { get; } Action<INode> BeforeReceive { get; } Action<INode, IMessage> AfterReceive { get; } Action<IMessage> Handle { get; } Action<INode, IMessage> Send { get; } Action<INode> Start { get; }}
![Page 11: Simulador para Algoritmos Distribuídos Caio Kinzel Filho.](https://reader030.fdocumentos.tips/reader030/viewer/2022033101/5706384c1a28abb8238f64bb/html5/thumbnails/11.jpg)
Algoritmospublic interface IChannel{ INode Source { get; } INode Sink { get; } Queue<IMessage> InputMessages { get; set; } Queue<IMessage> OutputMessages { get; set; } void Receive(); void Send<T>(T args) where T : IMessage; event EventHandler MessageSent;}
![Page 12: Simulador para Algoritmos Distribuídos Caio Kinzel Filho.](https://reader030.fdocumentos.tips/reader030/viewer/2022033101/5706384c1a28abb8238f64bb/html5/thumbnails/12.jpg)
Algoritmos
public interface IMessage{ INode Sender { get; set; } INode Receiver { get; set; } INode Originated { get; set; } string Content { get; set; }}
![Page 13: Simulador para Algoritmos Distribuídos Caio Kinzel Filho.](https://reader030.fdocumentos.tips/reader030/viewer/2022033101/5706384c1a28abb8238f64bb/html5/thumbnails/13.jpg)
Algoritmos
public interface INode{ int ID { get; set; } List<IChannel> SendsTo { get; set; } List<IChannel> ReceivesFrom { get; set; } IAlgorithm Algorithm { get; set; } Dictionary<string, object> NodeInfo { get; set; }}
![Page 14: Simulador para Algoritmos Distribuídos Caio Kinzel Filho.](https://reader030.fdocumentos.tips/reader030/viewer/2022033101/5706384c1a28abb8238f64bb/html5/thumbnails/14.jpg)
Algoritmos
• MultiThread, MonoThread• Sincrono, Assincrono• Com falhas, Sem falhas
![Page 15: Simulador para Algoritmos Distribuídos Caio Kinzel Filho.](https://reader030.fdocumentos.tips/reader030/viewer/2022033101/5706384c1a28abb8238f64bb/html5/thumbnails/15.jpg)
Limitações
• Desempenho MultiThread• Grandes topologias– Tempo de computação– Debugging
![Page 16: Simulador para Algoritmos Distribuídos Caio Kinzel Filho.](https://reader030.fdocumentos.tips/reader030/viewer/2022033101/5706384c1a28abb8238f64bb/html5/thumbnails/16.jpg)
Possibilidades
• Novos modelos de canais• Estratégias de injeção de falhas• Estratégias de Halting