1
Fork 0
mirror of https://github.com/Steffo99/appunti-magistrali.git synced 2024-10-16 09:47:26 +00:00

Various updates to things

This commit is contained in:
Steffo 2023-11-01 22:23:31 +01:00
parent 1a58be76fa
commit 743c08ed68
Signed by: steffo
GPG key ID: 2A24051445686895
85 changed files with 2134 additions and 790 deletions

View file

@ -0,0 +1,11 @@
{
"accentColor": "#d14224",
"textFontFamily": "",
"monospaceFontFamily": "",
"theme": "obsidian",
"baseFontSize": 16,
"enabledCssSnippets": [
"canvas-zoom",
"canvas-node-placeholder-size"
]
}

View file

@ -0,0 +1,11 @@
{
"accentColor": "#d14224",
"textFontFamily": "",
"monospaceFontFamily": "",
"theme": "obsidian",
"baseFontSize": 16,
"enabledCssSnippets": [
"canvas-zoom",
"canvas-node-placeholder-size"
]
}

View file

@ -0,0 +1,4 @@
[
"obsidian-file-color",
"steffo-file-index"
]

View file

@ -11,7 +11,7 @@
"daily-notes": false,
"templates": true,
"note-composer": false,
"command-palette": true,
"command-palette": false,
"slash-command": false,
"editor-status": true,
"starred": false,

View file

@ -0,0 +1,31 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"page-preview": false,
"daily-notes": false,
"templates": true,
"note-composer": false,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"starred": false,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": false,
"publish": false,
"sync": false,
"bookmarks": true,
"properties": true
}

View file

@ -0,0 +1,31 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"page-preview": false,
"daily-notes": false,
"templates": true,
"note-composer": false,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"starred": false,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": false,
"publish": false,
"sync": false,
"bookmarks": true,
"properties": true
}

View file

@ -9,7 +9,6 @@
"tag-pane",
"properties",
"templates",
"command-palette",
"editor-status",
"bookmarks",
"outline",

View file

@ -0,0 +1,17 @@
[
"file-explorer",
"global-search",
"switcher",
"graph",
"backlink",
"canvas",
"outgoing-link",
"tag-pane",
"properties",
"templates",
"command-palette",
"editor-status",
"bookmarks",
"outline",
"word-count"
]

View file

@ -0,0 +1,17 @@
[
"file-explorer",
"global-search",
"switcher",
"graph",
"backlink",
"canvas",
"outgoing-link",
"tag-pane",
"properties",
"templates",
"command-palette",
"editor-status",
"bookmarks",
"outline",
"word-count"
]

View file

@ -274,23 +274,11 @@
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding broadcast v3.md",
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/6 - Routing",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding broadcast v2.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/protocollo shout v1.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Routing",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election",
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
@ -298,19 +286,15 @@
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/2 - Su anello",
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/2 - Su anello",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/3 - Su grafo generico",
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/3 - Su grafo generico",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/1 - Concetti",
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/1 - Concetti",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
@ -330,11 +314,11 @@
"color": "me4XBNQC4rwzQFLlvIAn0"
},
{
"path": "0 - Template/algoritmo distribuito.md",
"path": "0 - Template/algoritmo distribuito.md",
"color": "me4XBNQC4rwzQFLlvIAn0"
},
{
"path": "0 - Template/problema distribuito.md",
"path": "0 - Template/problema distribuito.md",
"color": "me4XBNQC4rwzQFLlvIAn0"
},
{
@ -350,59 +334,55 @@
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/★ leader election.canvas",
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/★ leader election.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Routing/★ routing.canvas",
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/6 - Routing/★ routing.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "7 - Big data analytics/README.md",
"path": "7 - Big data analytics/★ big data analytics.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "7 - High performance computing/README.md",
"path": "7 - High performance computing/★ high performance computing.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "X - Introduction to quantum information processing/README.md",
"path": "X - Introduction to quantum information processing/★ introduction to quantum information processing.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Crittografia applicata/README.md",
"path": "8 - Crittografia applicata/★ crittografia applicata.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Metodologie di sviluppo software/README.md",
"path": "8 - Metodologie di sviluppo software/★ metodologie di sviluppo software.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/README.md",
"path": "8 - Sistemi complessi/★ sistemi complessi.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sviluppo di software sicuro/README.md",
"path": "8 - Sviluppo di software sicuro/★ sviluppo di software sicuro.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/README.md",
"path": "9 - Cloud and edge computing/★ cloud and edge computing.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Cloud and edge computing/README.md",
"path": "X - Fondamenti di machine learning/★ fondamenti di machine learning.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "X - Fondamenti di machine learning/README.md",
"path": "9 - Kernel hacking/★ kernel hacking.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Kernel hacking/README.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Programmazione mobile/README.md",
"path": "9 - Programmazione mobile/★ programmazione mobile.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
@ -412,6 +392,26 @@
{
"path": "LICENSE.txt",
"color": "me4XBNQC4rwzQFLlvIAn0"
},
{
"path": "9 - Algoritmi distribuiti/★ algoritmi distribuiti.md",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione locale.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione globale.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computation in trees",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computation in trees/★ computation in trees.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
}
]
}

View file

@ -0,0 +1,345 @@
{
"palette": [
{
"id": "7j7Pqog0VHMVVAfazMNlb",
"name": "Accent",
"value": "#d14224"
},
{
"id": "me4XBNQC4rwzQFLlvIAn0",
"name": "System",
"value": "#5c0f00"
},
{
"id": "fc3lLaITDn62PYbzBhqxl",
"name": "To do",
"value": "#d7a628"
}
],
"fileColors": [
{
"path": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/2 - Operation framework/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/1 - Indistinguibilità su disco/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/2 - Comunicazione simmetrica/2 - Confidenzialità/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/2 - Comunicazione simmetrica/5 - Autenticazione/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/2 - Comunicazione simmetrica/6 - Indistinguibilità autenticata/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/3 - Contestualizzazione ed estendibilità/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/4 - Derivazione di chiave/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/4 - Controllo dell'accesso/1 - Modello/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "7 - High performance computing/★ glossario.md",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Metodologie di sviluppo software/★ Materiale di studio/1 - Slides/05-AgileMethodologies_2_decrypted.pdf",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Metodologie di sviluppo software/★ Materiale di studio/1 - Slides/06-ProjectEstimation.pdf",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Metodologie di sviluppo software/★ Materiale di studio/1 - Slides/07-DesignPatterns.pdf",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Metodologie di sviluppo software/★ Materiale di studio",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/2 - Teoria delle curve ellittiche/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "0 - Generale/★ esami.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "0 - Generale",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/5 - Strutture dati particolari/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/5 - Protocolli sicuri/2 - Email/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Integrità semplice/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Sistemi complessi/2 - Sistemi complessi/★ sistemi complessi.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Sistemi complessi/3 - Automi cellulari/★ automi cellulari.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Sistemi complessi/4 - Grafi/★ grafi.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Sistemi complessi/5 - Origine della vita/★ insiemi auto-replicanti.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Sistemi complessi/6 - Robustezza/★ robustezza.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Sistemi complessi/1 - Sistemi dinamici/★ sistemi dinamici.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Sistemi complessi/2 - Sistemi complessi/topological mixing.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/2 - Sistemi complessi/dense periodic orbits.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/2 - Sistemi complessi/Landau's phenomenological theory.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/4 - Grafi/percolation threshold.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/4 - Grafi/★ grafi multi-livello.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Sistemi complessi/4 - Grafi/rete interdipendente.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/4 - Grafi/rete multiplex correlata.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/4 - Grafi/★ ipergrafi.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Sistemi complessi/5 - Origine della vita/insieme auto-catalitico riflessivo generato da cibo.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/07_RBNd_COLOR.pdf",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/6 - Robustezza/🞵 parentesi anti-eugenica.md",
"color": "me4XBNQC4rwzQFLlvIAn0"
},
{
"path": "8 - Sistemi complessi/6 - Robustezza/robustezza differenziale.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/6 - Robustezza/versatilità.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/6 - Robustezza/evolvibilità.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/5 - Origine della vita/modello di Kauffman gene-RBN.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/5 - Origine della vita/★ geni come random boolean network.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "9 - Algoritmi distribuiti/1 - Problemi",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/1 - Problemi/★ problemi.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "9 - Algoritmi distribuiti/1 - Problemi/classe di problemi NP-difficili.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/relax and round.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/vertex cover problem.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/relax and round per vertex cover problem.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/minimum perfect matching.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/★ algoritmi di approssimazione.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding broadcast v3.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding broadcast v2.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/protocollo shout v1.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Routing",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/2 - Su anello",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/3 - Su grafo generico",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/1 - Concetti",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "7 - Big data analytics/★ indice.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "7 - Introduction to quantum information processing",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Crittografia applicata/★ indice.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
}
]
}

View file

@ -0,0 +1,210 @@
{
"main": {
"id": "ea42b6c6a6ada42e",
"type": "split",
"children": [
{
"id": "60117978cefd2149",
"type": "tabs",
"children": [
{
"id": "24671e9d856e1cb9",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "README.md",
"mode": "source",
"backlinks": false,
"source": false
}
}
}
],
"stacked": true
}
],
"direction": "vertical"
},
"left": {
"id": "3dc78bddd518c3f3",
"type": "split",
"children": [
{
"id": "d5fc1d7e0478ba75",
"type": "tabs",
"children": [
{
"id": "cc2c082e511eafc9",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical"
}
}
},
{
"id": "4240e87522252410",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "appunti",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
}
}
},
{
"id": "7b02a464bd7f94f4",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {}
}
}
]
}
],
"direction": "horizontal",
"width": 282.5
},
"right": {
"id": "4ef3f291c2866b38",
"type": "split",
"children": [
{
"id": "a0f58612eee5101f",
"type": "tabs",
"children": [
{
"id": "da0ecf3eab9f1146",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "README.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
}
}
},
{
"id": "517852a0c1eb77e0",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "README.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
}
},
{
"id": "7e28c6b81ba7a75b",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true
}
}
},
{
"id": "d08b5edb3d762c99",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "README.md"
}
}
},
{
"id": "3da04ae84a020b40",
"type": "leaf",
"state": {
"type": "all-properties",
"state": {
"sortOrder": "frequency"
}
}
}
]
}
],
"direction": "horizontal",
"width": 300,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"canvas:Create new canvas": true,
"switcher:Open quick switcher": false,
"graph:Open graph view": false,
"command-palette:Open command palette": false,
"templates:Insert template": false
}
},
"active": "24671e9d856e1cb9",
"lastOpenFiles": [
"LICENSE.md",
"LICENSE.txt",
"README.md",
"7 - High performance computing.md",
"7 - Big data analytics/README.md",
"7+-+Big.md",
"7.md",
"9 - Programmazione mobile/README.md",
"9 - Kernel hacking/README.md",
"7 - High performance computing/README.md",
"X - Fondamenti di machine learning/README.md",
"9 - Cloud and edge computing/README.md",
"9 - Algoritmi distribuiti/0 - Materiale di studio/Slides/01 - Problemi e algoritmi.pdf",
"9 - Algoritmi distribuiti/README.md",
"8 - Sviluppo di software sicuro/README.md",
"8 - Sistemi complessi/README.md",
"8 - Metodologie di sviluppo software/README.md",
"8 - Sistemi complessi/Untitled.canvas",
"8 - Crittografia applicata/README.md",
"X - Introduction to quantum information processing/README.md",
"7 - High performance computing/glossario.md",
"7 - Big data analytics/★ indice.canvas",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/★ concetti.canvas",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Routing/★ routing.canvas",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/★ leader election.canvas",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/★ spanning tree.canvas",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/★ broadcast.canvas",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/broadcast.md",
"0 - Template/problema distribuito.md",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/costruzione di uno spanning tree.md",
"0 - Template/algoritmo distribuito.md",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/1 - Concetti/leader election.md",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/costruzione di uno spanning tree tramite traversal.md",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/wake-up problem.md",
"0 - Template",
"8 - Sistemi complessi/2 - Sistemi complessi/★ sistemi complessi.canvas",
"9 - Algoritmi distribuiti/0 - Materiale di studio/Slides/03 - Algoritmi distribuiti.pdf",
"9 - Algoritmi distribuiti/1 - Problemi/★ problemi.canvas",
"0 - Generale/★ esami.canvas",
"steffo-file-index-ignore.json",
"steffo-file-index-ignore.json.part",
"steffo-file-index.json",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/1 - Concetti",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/3 - Su grafo generico",
"8 - Sistemi complessi/3 - Automi cellulari/modello HPP · regola di transizione.png",
"8 - Crittografia applicata/3 - Comunicazione/2 - Garanzie/2 - Indistinguibilità/Pasted image 20230331181648.png"
]
}

View file

@ -0,0 +1,210 @@
{
"main": {
"id": "ea42b6c6a6ada42e",
"type": "split",
"children": [
{
"id": "60117978cefd2149",
"type": "tabs",
"children": [
{
"id": "24671e9d856e1cb9",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "README.md",
"mode": "source",
"backlinks": false,
"source": false
}
}
}
],
"stacked": true
}
],
"direction": "vertical"
},
"left": {
"id": "3dc78bddd518c3f3",
"type": "split",
"children": [
{
"id": "d5fc1d7e0478ba75",
"type": "tabs",
"children": [
{
"id": "cc2c082e511eafc9",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical"
}
}
},
{
"id": "4240e87522252410",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "appunti",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
}
}
},
{
"id": "7b02a464bd7f94f4",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {}
}
}
]
}
],
"direction": "horizontal",
"width": 282.5
},
"right": {
"id": "4ef3f291c2866b38",
"type": "split",
"children": [
{
"id": "a0f58612eee5101f",
"type": "tabs",
"children": [
{
"id": "da0ecf3eab9f1146",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "README.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
}
}
},
{
"id": "517852a0c1eb77e0",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "README.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
}
},
{
"id": "7e28c6b81ba7a75b",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true
}
}
},
{
"id": "d08b5edb3d762c99",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "README.md"
}
}
},
{
"id": "3da04ae84a020b40",
"type": "leaf",
"state": {
"type": "all-properties",
"state": {
"sortOrder": "frequency"
}
}
}
]
}
],
"direction": "horizontal",
"width": 300,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"canvas:Create new canvas": true,
"switcher:Open quick switcher": false,
"graph:Open graph view": false,
"command-palette:Open command palette": false,
"templates:Insert template": false
}
},
"active": "24671e9d856e1cb9",
"lastOpenFiles": [
"LICENSE.md",
"LICENSE.txt",
"README.md",
"7 - High performance computing.md",
"7 - Big data analytics/README.md",
"7+-+Big.md",
"7.md",
"9 - Programmazione mobile/README.md",
"9 - Kernel hacking/README.md",
"7 - High performance computing/README.md",
"X - Fondamenti di machine learning/README.md",
"9 - Cloud and edge computing/README.md",
"9 - Algoritmi distribuiti/0 - Materiale di studio/Slides/01 - Problemi e algoritmi.pdf",
"9 - Algoritmi distribuiti/README.md",
"8 - Sviluppo di software sicuro/README.md",
"8 - Sistemi complessi/README.md",
"8 - Metodologie di sviluppo software/README.md",
"8 - Sistemi complessi/Untitled.canvas",
"8 - Crittografia applicata/README.md",
"X - Introduction to quantum information processing/README.md",
"7 - High performance computing/glossario.md",
"7 - Big data analytics/★ indice.canvas",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/★ concetti.canvas",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Routing/★ routing.canvas",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/★ leader election.canvas",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/★ spanning tree.canvas",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/★ broadcast.canvas",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/broadcast.md",
"0 - Template/problema distribuito.md",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/costruzione di uno spanning tree.md",
"0 - Template/algoritmo distribuito.md",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/1 - Concetti/leader election.md",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/costruzione di uno spanning tree tramite traversal.md",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/wake-up problem.md",
"0 - Template",
"8 - Sistemi complessi/2 - Sistemi complessi/★ sistemi complessi.canvas",
"9 - Algoritmi distribuiti/0 - Materiale di studio/Slides/03 - Algoritmi distribuiti.pdf",
"9 - Algoritmi distribuiti/1 - Problemi/★ problemi.canvas",
"0 - Generale/★ esami.canvas",
"steffo-file-index-ignore.json",
"steffo-file-index-ignore.json.part",
"steffo-file-index.json",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/1 - Concetti",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast",
"9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/3 - Su grafo generico",
"8 - Sistemi complessi/3 - Automi cellulari/modello HPP · regola di transizione.png",
"8 - Crittografia applicata/3 - Comunicazione/2 - Garanzie/2 - Indistinguibilità/Pasted image 20230331181648.png"
]
}

View file

@ -1,14 +0,0 @@
Problema per un [[sistema distribuito]].
## Definizione
==...==
## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]]
- ==...==
- ==...==
## [[algoritmo|Algoritmi]]
- ==...==
- ==...==

View file

@ -1,23 +1,31 @@
[[algoritmo]] di ==PROBLEMA==.
## [[stato di un'entità|Stati]]
## Funzionamento
- ==`STATO1`==
- ==`STATO2`==
==...==
## [[Comportamento]]
### ==`STATO1`==
==...==
```rust
```
### ==`STATO2`==
==...==
```rust
```
## [[algoritmo corretto|Correttezza]]
==...==
## [[costo computazionale distribuito|Costo computazionale]]
==...==
### [[Comunicazione]]
==...==

View file

@ -0,0 +1,21 @@
Problema per un [[sistema distribuito]].
## Definizione
==...==
## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]]
- **[[restrizione di comunicazione|Comunicazione]]**
- ==...==
- **[[restrizione di affidabilità|Affidabilità]]**
- ==...==
- **[[restrizione di topologia|Topologia]]**
- ==...==
- **[[restrizione di tempo|Tempo]]**
- ==...==
## [[algoritmo|Algoritmi]]
- ==...==
- ==...==

View file

@ -1,3 +1,9 @@
---
aliases:
- correttezza
---
[[Algoritmo]] che per ogni [[istanza]] restituisce sempre la [[soluzione]] corrispondente.
> Un algoritmo non è *corretto* non solo se c'è qualche istanza per cui restituisce la soluzione sbagliata, ma anche se c'è qualche istanza **per cui non termina mai**!

View file

@ -3,6 +3,7 @@ aliases:
- arco
- arco di un sistema distribuito
- stanza
- canale
---
Unità di comunicazione di un [[sistema distribuito]].

View file

@ -1,3 +1,8 @@
---
aliases:
- numero di messaggi
---
[[Risorsa]].
Misurata in [[messaggio|messaggi]] totali scambiati tra entità.

View file

@ -1,3 +1,8 @@
---
aliases:
- grafo indiretto
---
[[restrizione di comunicazione|restrizione di comunicazione]] applicabile a un [[canale di comunicazione]].
Determina che entrambe le [[entità]] possono inviare e ricevere [[messaggio|messaggi]] in esso.

View file

@ -1,3 +1,8 @@
---
aliases:
- grafo diretto
---
[[restrizione di comunicazione|restrizione di comunicazione]] applicabile a un [[canale di comunicazione]].
Determina che una sola delle due [[entità]] può inviare [[messaggio|messaggi]] in esso, e che l'altra può solo riceverli.

View file

@ -0,0 +1,6 @@
[[restrizione di topologia]].
Specifica che tutte le [[entità]] partecipanti hanno un [[identificatore]] distinto da tutte le altre.
> [!EXAMPLE]
> Nella pratica, questo identificatore potrebbe essere un [[UUID]]!

View file

@ -0,0 +1,3 @@
[[restrizione di comunicazione]].
Prevede che sia già stato selezionato un singolo [[leader]] che dia il via all'[[algoritmo]].

View file

@ -0,0 +1,3 @@
[[restrizione di comunicazione]].
Prevede che qualsiasi [[entità]] possa dare il via all'algoritmo, anche se un'altra lo ha già fatto.

View file

@ -1,6 +1,6 @@
Nel trattare [[sistema distribuito simmetrico|sistemi distribuiti simmetrici]], bisogna sempre esplicitare:
- [[restrizione di comunicazione]]
- [[restrizione di affidabilità]]
- [[restrizione topologica]]
- [[restrizione di topologia]]
- [[restrizione di tempo]]

View file

@ -5,4 +5,4 @@ aliases:
---
[[Insieme]] di [[canale di comunicazione|canali di comunicazione]] relativo ad un [[sistema distribuito]].
La conoscenza di essa da parte delle [[entità]] è soggetta all'[[assioma dell'orientamento locale]] e alle [[restrizione topologica]].
La conoscenza di essa da parte delle [[entità]] è soggetta all'[[assioma dell'orientamento locale]] e alle [[restrizione di topologia]].

View file

@ -0,0 +1,5 @@
[[restrizione di tempo]].
Specifica che le [[entità]] partecipanti vengono a conoscenza di quando l'algoritmo è terminato per tutti i partecipanti.
È un problema a sè stante, il [[termination detection problem]].

View file

@ -0,0 +1,3 @@
[[restrizione di tempo]].
Specifica che le [[entità]] partecipanti conoscono quando la loro partecipazione è terminata, ma non quando è terminata quella di tutte le altre.

View file

@ -1,17 +1,10 @@
{
"nodes":[
{"id":"0e88c8c55309b762","type":"group","x":220,"y":-2020,"width":1960,"height":1640,"label":"Restrizioni del modello"},
{"id":"0e88c8c55309b762","type":"group","x":220,"y":-2860,"width":1960,"height":2480,"label":"Restrizioni del modello"},
{"id":"840584051841921d","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/tick.md","x":240,"y":960,"width":400,"height":400},
{"id":"ec508dff8f0fad49","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/clock.md","x":240,"y":400,"width":400,"height":400},
{"id":"de6e2a65c63084c7","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/stato di un'entità.md","x":800,"y":-160,"width":400,"height":400},
{"id":"7126bfdd6ead22a9","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/insieme degli stati di un'entità.md","x":1360,"y":-160,"width":400,"height":400},
{"id":"c986480451be1efe","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/entità.md","x":240,"y":-160,"width":400,"height":400},
{"id":"44b1b735656f3c4b","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/azione.md","x":1360,"y":1520,"width":400,"height":400},
{"id":"1d32058a6d2df7ec","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/comportamento.md","x":800,"y":1520,"width":400,"height":400},
{"id":"97624a26a3c7d126","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/sistema sequenziale.md","x":-320,"y":-2480,"width":400,"height":400},
{"id":"97d5f142a5c95ce3","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/sistema parallelo.md","x":-320,"y":-1920,"width":400,"height":400},
{"id":"40f55b66f9214ecd","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/sistema distribuito.md","x":-320,"y":-1360,"width":400,"height":400},
{"id":"806b3a8cfb46e427","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/sistema distribuito simmetrico.md","x":-320,"y":-800,"width":400,"height":400,"color":"#ffffff"},
{"id":"ce14b5c90fd5e953","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/ambiente.md","x":-1440,"y":400,"width":400,"height":400},
{"id":"9fed72abdca670aa","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/impulso spontaneo.md","x":-1440,"y":960,"width":400,"height":400},
{"id":"afa296d887da4394","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/evento.md","x":-600,"y":1520,"width":400,"height":400},
@ -20,26 +13,10 @@
{"id":"e23a1daa61a49d62","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/interno.md","x":-880,"y":2320,"width":400,"height":200},
{"id":"17f246e08226b97c","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/esterno.md","x":-880,"y":2560,"width":400,"height":200},
{"id":"37d87879f33b9570","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/condiviso.md","x":-320,"y":2320,"width":400,"height":200},
{"id":"bdeb2e85bcb32f7e","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizioni al modello dei sistemi distribuiti.md","x":240,"y":-800,"width":400,"height":400},
{"id":"2d21a7ed903a16e7","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di tempo.md","x":800,"y":-600,"width":400,"height":200},
{"id":"0951993b4f64f1b4","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione topologica.md","x":800,"y":-880,"width":400,"height":200},
{"id":"9ff0a423dbb281a0","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/rete di comunicazione.md","x":-320,"y":-160,"width":400,"height":400},
{"id":"4f5b2defe1e9072a","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/assioma del ritardo di comunicazione.md","x":-880,"y":680,"width":400,"height":400},
{"id":"9abf440226d21d98","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/assioma dell'orientamento locale.md","x":-880,"y":120,"width":400,"height":400},
{"id":"6b49f0fc996cb192","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/messaggio.md","x":-320,"y":960,"width":400,"height":400},
{"id":"d8754617f38feb06","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/canale di comunicazione.md","x":-320,"y":400,"width":400,"height":400},
{"id":"ca6adc368f6aed21","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/channel failure detection.md","x":1280,"y":-1720,"width":400,"height":200},
{"id":"a16e77231955a7a3","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/entity failure detection.md","x":1760,"y":-1720,"width":400,"height":200},
{"id":"961e2a0551edc3c5","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di comunicazione.md","x":800,"y":-2000,"width":400,"height":200},
{"id":"dacdf2aa108d08d3","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/half-duplex.md","x":1280,"y":-2000,"width":400,"height":200},
{"id":"e52fa24f0be7ac0e","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/full-duplex.md","x":1760,"y":-2000,"width":400,"height":200},
{"id":"281bcf7f0a4b5be1","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di affidabilità.md","x":800,"y":-1720,"width":400,"height":760},
{"id":"b69def8d92ba28df","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/consegna garantita.md","x":1280,"y":-1160,"width":400,"height":200},
{"id":"887f1f52394b3721","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità parziale.md","x":1280,"y":-1440,"width":400,"height":200},
{"id":"6b3170059dad55ef","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità totale.md","x":1760,"y":-1440,"width":400,"height":200},
{"id":"83b3be69f6f3d497","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/timeout.md","x":1520,"y":-880,"width":400,"height":200},
{"id":"472610beeef20101","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/ritardo di comunicazione limitato.md","x":1280,"y":-600,"width":400,"height":200},
{"id":"fc4c48607c9ae580","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/ritardo di comunicazione unitario.md","x":1760,"y":-600,"width":400,"height":200},
{"id":"5253e63787adc7c1","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/sistema distribuito asincrono.md","x":-880,"y":-800,"width":400,"height":400},
{"id":"5cb928eebbce8c85","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/comunicazione.md","x":-1440,"y":-1920,"width":400,"height":400},
{"id":"0663141369318ae1","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/costo computazionale distribuito.md","x":-880,"y":-1360,"width":400,"height":400},
@ -48,7 +25,35 @@
{"id":"9c678aa28deb9edc","type":"file","file":"9 - Algoritmi distribuiti/1 - Problemi/criterio di costo logaritmico.md","x":-2000,"y":-840,"width":400,"height":200},
{"id":"68d2646884fe10e3","type":"file","file":"9 - Algoritmi distribuiti/1 - Problemi/tempo.md","x":-1440,"y":-1360,"width":400,"height":400},
{"id":"7307a3e6d21d094d","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/criterio di costo asincrono.md","x":-2000,"y":-1120,"width":400,"height":200},
{"id":"3c2d2701a7095e82","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/criterio di costo sincrono totale.md","x":-2000,"y":-1400,"width":400,"height":200}
{"id":"3c2d2701a7095e82","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/criterio di costo sincrono totale.md","x":-2000,"y":-1400,"width":400,"height":200},
{"id":"dacdf2aa108d08d3","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/half-duplex.md","x":1280,"y":-2560,"width":400,"height":200},
{"id":"ca6adc368f6aed21","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/channel failure detection.md","x":1280,"y":-2280,"width":400,"height":200},
{"id":"a16e77231955a7a3","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/entity failure detection.md","x":1760,"y":-2280,"width":400,"height":200},
{"id":"961e2a0551edc3c5","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di comunicazione.md","x":800,"y":-2840,"width":400,"height":480},
{"id":"e52fa24f0be7ac0e","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/full-duplex.md","x":1760,"y":-2560,"width":400,"height":200},
{"id":"281bcf7f0a4b5be1","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di affidabilità.md","x":800,"y":-2280,"width":400,"height":760},
{"id":"b69def8d92ba28df","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/consegna garantita.md","x":1280,"y":-1720,"width":400,"height":200},
{"id":"887f1f52394b3721","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità parziale.md","x":1280,"y":-2000,"width":400,"height":200},
{"id":"6b3170059dad55ef","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità totale.md","x":1760,"y":-2000,"width":400,"height":200},
{"id":"5f79f222c02d34a4","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/iniziatore singolo.md","x":1280,"y":-2840,"width":400,"height":200},
{"id":"8feba6ce763a0898","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/iniziatori multipli.md","x":1760,"y":-2840,"width":400,"height":200},
{"id":"97624a26a3c7d126","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/sistema sequenziale.md","x":-320,"y":-2480,"width":400,"height":400},
{"id":"97d5f142a5c95ce3","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/sistema parallelo.md","x":-320,"y":-1920,"width":400,"height":400},
{"id":"40f55b66f9214ecd","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/sistema distribuito.md","x":-320,"y":-1360,"width":400,"height":400},
{"id":"83b3be69f6f3d497","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/timeout.md","x":1520,"y":-880,"width":400,"height":200},
{"id":"bdeb2e85bcb32f7e","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizioni al modello dei sistemi distribuiti.md","x":240,"y":-800,"width":400,"height":400},
{"id":"2d21a7ed903a16e7","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di tempo.md","x":800,"y":-1160,"width":400,"height":760},
{"id":"472610beeef20101","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/ritardo di comunicazione limitato.md","x":1280,"y":-600,"width":400,"height":200},
{"id":"fc4c48607c9ae580","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/ritardo di comunicazione unitario.md","x":1760,"y":-600,"width":400,"height":200},
{"id":"de6e2a65c63084c7","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/stato di un'entità.md","x":800,"y":-160,"width":400,"height":400},
{"id":"7126bfdd6ead22a9","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/insieme degli stati di un'entità.md","x":1360,"y":-160,"width":400,"height":400},
{"id":"c986480451be1efe","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/entità.md","x":240,"y":-160,"width":400,"height":400},
{"id":"806b3a8cfb46e427","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/sistema distribuito simmetrico.md","x":-320,"y":-800,"width":400,"height":400,"color":"#ffffff"},
{"id":"9ff0a423dbb281a0","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/rete di comunicazione.md","x":-320,"y":-160,"width":400,"height":400},
{"id":"4a1b9354e73b16bc","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/identificatori univoci.md","x":1280,"y":-1440,"width":400,"height":200},
{"id":"0951993b4f64f1b4","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di topologia.md","x":800,"y":-1440,"width":400,"height":200},
{"id":"55006dcc3b515353","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione locale.md","x":1280,"y":-1160,"width":400,"height":200},
{"id":"d12cedf357c12705","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione globale.md","x":1760,"y":-1160,"width":400,"height":200}
],
"edges":[
{"id":"1bb35cb60ca4ea15","fromNode":"afa296d887da4394","fromSide":"bottom","toNode":"904bb8e648bdcb90","toSide":"top"},
@ -102,6 +107,10 @@
{"id":"c83642765cb5fdb3","fromNode":"0663141369318ae1","fromSide":"left","toNode":"1bbe4f0ecb072362","toSide":"right"},
{"id":"4e6bc2efe53e4e17","fromNode":"0663141369318ae1","fromSide":"left","toNode":"68d2646884fe10e3","toSide":"right"},
{"id":"11e3f0f7f9977138","fromNode":"68d2646884fe10e3","fromSide":"left","toNode":"7307a3e6d21d094d","toSide":"right"},
{"id":"0a39548d5dde3f7e","fromNode":"68d2646884fe10e3","fromSide":"left","toNode":"3c2d2701a7095e82","toSide":"right"}
{"id":"0a39548d5dde3f7e","fromNode":"68d2646884fe10e3","fromSide":"left","toNode":"3c2d2701a7095e82","toSide":"right"},
{"id":"459233fc20cad1e7","fromNode":"961e2a0551edc3c5","fromSide":"right","toNode":"5f79f222c02d34a4","toSide":"left"},
{"id":"862f0a43ddf5a87a","fromNode":"5f79f222c02d34a4","fromSide":"right","toNode":"8feba6ce763a0898","toSide":"left"},
{"id":"92889f0a7be5f7d4","fromNode":"55006dcc3b515353","fromSide":"right","toNode":"d12cedf357c12705","toSide":"left"},
{"id":"02d76934b8ed7603","fromNode":"2d21a7ed903a16e7","fromSide":"right","toNode":"55006dcc3b515353","toSide":"left"}
]
}

View file

@ -0,0 +1,83 @@
---
aliases:
- broadcast
---
Problema per un [[sistema distribuito]].
## Definizione
Una [[entità]] vuole comunicare un'informazione a tutto il resto del [[sistema distribuito]].
## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]]
- [[terminazione locale]]
- **[[restrizione di comunicazione|Comunicazione]]**
- [[iniziatore singolo]]
- **[[restrizione di affidabilità|Affidabilità]]**
- [[affidabilità totale]]
- **[[restrizione di topologia|Topologia]]**
- [[grafo connesso]]
- [[full-duplex|grafo indiretto]]
- **[[restrizione di tempo|Tempo]]**
- [[ritardo di comunicazione unitario]]
## [[algoritmo|Algoritmi]]
- **Flooding**
- [[flooding v1]] (non [[algoritmo corretto|corretto]]...)
- [[flooding v2]] ([[algoritmo corretto|corretto]].)
- [[flooding v3]] (ottimizzato!)
## [[notazione Ω-grande|Lower bound]] [[costo computazionale|costo computazionale]]
### [[Comunicazione]]
#### In un [[grafo]] qualsiasi
Ogni [[entità]] deve ricevere per forza il messaggio, quindi sicuramente:
$$
\Omega(Entities)
$$
In più, non è possibile togliere nessun [[canale di comunicazione|canale]] senza rischiare che un'[[entità]] non venga raggiunta, in quanto non si hanno informazioni sulla [[rete di comunicazione]] sottostante:
$$
\Large 2 \cdot Channels - (Entities - 1)
$$
#### [[restrizioni al modello dei sistemi distribuiti|Restringendo]] a un [[albero]] con [[leader]] alla [[radice di un albero|radice]]
In un [[albero]], è impossibile che due [[entità]] vicine vengano scoperte contemporaneamente, pertanto il [[notazione Ω-grande|lower bound]] diminuisce a:
$$
\Large 1 \cdot Channels
$$
#### [[restrizioni al modello dei sistemi distribuiti|Restringendo]] a un [[grafo completo]]
In un [[grafo completo]] il [[leader]] può inviare il [[messaggio]] direttamente ai suoi vicini:
$$
\Large 1 \cdot Nodes
$$
### [[tempo]]
#### In un [[grafo]] qualsiasi
Il [[grafo]] potrebbe essere un [[cammino]], che richiederebbe che ogni arco venisse attraversato, quindi sicuramente:
$$
\Large 1 \cdot Channels
$$
#### [[restrizioni al modello dei sistemi distribuiti|Restringendo]] a un [[albero]] con [[leader]] alla [[radice di un albero|radice]]
Anche un [[albero]] potrebbe essere un [[cammino]] come un [[grafo]] qualsiasi:
$$
\Large 1 \cdot Channels
$$
#### [[restrizioni al modello dei sistemi distribuiti|Restringendo]] a un [[grafo completo]]
In un [[grafo completo]], tutte le [[entità]] sono vicine del [[leader]], quindi ricevono tutte il [[messaggio]] contemporaneamente:
$$
\Large 1
$$

View file

@ -1,21 +0,0 @@
[[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/problema]] per un [[sistema distribuito]].
## Definizione
Una singola [[entità]] vuole fare arrivare un [[messaggio]] a tutte le altre.
### [[restrizioni al modello dei sistemi distribuiti]]
- [[affidabilità totale]]
- [[full-duplex]]
- [[grafo connesso]]
> L'algoritmo è indipendente da:
> - [[topologia]]
> - numero di [[entità]]
> - presenza di [[identificativi]] del sistema
## Algoritmi
- [[flooding broadcast v3]]
-

View file

@ -1,22 +0,0 @@
[[Algoritmo]] ***incorretto*** di [[broadcast]].
Ogni [[entità]] manda l'informazione a tutti i suoi vicini.
## [[Stato]]
- `INITIATOR`: quello che manda il messaggio
- `SLEEPING`: quelli che non mandano il messaggio
## [[comportamento]]
### `INITIATOR`
Se ricevo il messaggio non faccio niente.
### `SLEEPING`
Se ricevo il messaggio lo propago ai miei vicini.
## Incorrettezza
L'algoritmo molto probabilmente non terminerà!

View file

@ -1,23 +0,0 @@
[[Algoritmo]] di [[broadcast]], una correzione a [[flooding broadcast v1]].
Ogni [[entità]] manda l'informazione a tutti i suoi vicini, **ma solo se non l'ha già fatto**.
## [[Stato]]
- `INITIATOR`: quello che manda il messaggio
- `SLEEPING`: quelli che non mandano il messaggio
- **`DONE`: quelli non hanno mandato il messaggio, ma l'hanno ricevuto e inoltrato**
## [[comportamento]]
### `INITIATOR`
Se ricevo il messaggio non faccio niente.
### `SLEEPING`
Se ricevo il messaggio lo propago ai miei vicini e passo a `DONE`.
### **`DONE`**
**Se ricevo il messaggio non faccio niente.**

View file

@ -1,47 +0,0 @@
[[Algoritmo]] di [[broadcast]], migliore rispetto a [[flooding broadcast v2]].
Ogni [[entità]] manda l'informazione a tutti i suoi vicini **che non gliel'hanno mandato**, ma solo se non l'ha già fatto.
## [[Stato]]
- `INITIATOR`: quello che manda il messaggio
- `SLEEPING`: quelli che non mandano il messaggio
- `DONE`: quelli non hanno mandato il messaggio, ma l'hanno ricevuto e inoltrato
## [[comportamento]]
### `INITIATOR`
Se ricevo il messaggio non faccio niente.
### `SLEEPING`
Se ricevo il messaggio lo propago ai miei vicini **eccetto quello che me l'ha mandato** e passo a `DONE`.
### `DONE`
Se ricevo il messaggio non faccio niente.
## [[costo computazionale distribuito]]
### [[Spazio]]
Abbiamo massimo $2$ messaggi per ogni [[arco di un grafo|arco]] della [[rete di comunicazione]]:
- $1$ normalmente
- $2$ se i due nodi che l'arco connette si mandano messaggi a vicenda
Quindi, l'algoritmo è in $O(archi)$, ovvero $O(nodi)$, e in particolare:
#TODO La formula formattata bene.
### [[Tempo]] (unitario uniforme per messaggio)
[[diametro di un grafo|Diametro]] della [[rete di comunicazione]].
Quindi, l'algoritmo è in $O(nodi)$.
## Osservazioni
C'è [[terminazione locale]], ma non [[terminazione globale]]: non si sa [[termination detection problem|il momento in cui il messaggio è stato propagato a tutti i nodi]]!
L'algoritmo è efficiente negli [[albero|alberi]], non nei [[grafo completo|grafi completi]]:
#TODO Al minimo richiede $n - 1$ messaggi, e quindi $\Omega(nodi)$.

View file

@ -0,0 +1,38 @@
[[algoritmo]] ***[[algoritmo corretto|incorretto]]*** di [[broadcast problem]].
## Funzionamento
Il [[leader]] invia il suo messaggio iniziale a tutti i vicini, e loro lo inoltrano a loro volta ai loro vicini.
## [[Comportamento]]
### `LEADER`
All'[[impulso spontaneo|inizio dell'algoritmo]], invia il suo messaggio:
```rust
spontaneously! {
send!(*, Message {...});
}
```
Se lo riceve indietro, non fa niente:
```rust
on_receive! {
_ => {},
}
```
### `SLEEPING`
Se riceve il messaggio, lo inoltra a tutti i suoi vicini:
```rust
on_receive! {
_ => send!(*, msg)
}
```
## [[algoritmo corretto|Correttezza]]
> [!DANGER] Algoritmo incorretto
>
> Questo algoritmo non termina mai!
> È riportato qui solo come base per le due versioni successive.

View file

@ -0,0 +1,81 @@
[[algoritmo]] di [[broadcast problem]] che risolve l'incorrettezza del [[flooding v1]].
## Funzionamento
Il [[leader]] invia il suo messaggio iniziale a tutti i vicini, e, ***se è la prima volta che lo ricevono***, loro lo inoltrano a loro volta ai loro vicini.
## [[Comportamento]]
### `LEADER`
All'[[impulso spontaneo|inizio dell'algoritmo]], invia il suo messaggio:
```rust
spontaneously! {
send!(*, Message {...});
state!(DONE);
}
```
Se lo riceve indietro, non fa niente:
```rust
on_receive! {
_ => {},
}
```
### `SLEEPING`
Se riceve il messaggio, lo inoltra a tutti i suoi vicini, poi passa allo stato `DONE`:
```rust
on_receive! {
_ => {
send!(*, msg);
state!(DONE);
},
}
```
### `DONE`
Non fa niente:
```rust
on_receive! {
_ => {},
}
```
## [[algoritmo corretto|Correttezza]]
Per via dell'ipotesi di [[grafo connesso]], tutte le [[entità]] riceveranno eventualmente il [[messaggio]] inviato.
Con la ricezione del [[messaggio]], eventualmente tutte le [[entità]] diventeranno `DONE`, raggiungendo [[terminazione locale]].
## [[costo computazionale distribuito|Costo computazionale]]
### [[Comunicazione]]
Attraverso ogni [[canale di comunicazione|canale]] passeranno al massimo due [[messaggio|messaggi]]:
- $0$, se l'algoritmo termina prima che il [[canale di comunicazione|canale]] sia esplorato
- $1$, se l'[[entità]] di destinazione non è ancora stata scoperta
- $2$, se entrambe le [[entità]] connesse sono scoperte contemporaneamente
Dunque, i [[messaggio|messaggi]] trasferiti saranno:
$$
2 \cdot Channels
$$
Che, in [[notazione asintotica]], è:
$$
\Large O(Channels)
$$
### [[Spazio]]
Un multiplo del [costo di comunicazione](#Comunicazione), sempre [[notazione asintotica|asintotico]] a:
$$
\Large O(Channels)
$$
### [[Tempo]]
Coincide con il lower bound del [[broadcast problem]].

View file

@ -0,0 +1,74 @@
[[algoritmo]] di [[broadcast problem]] che riduce il [[comunicazione|numero di messaggi]] rispetto al [[flooding v2]]. ^6af4aa
## Funzionamento
Il [[leader]] invia il suo [[messaggio]] iniziale a tutti i vicini, e, se è la prima volta che lo ricevono, loro lo inoltrano a loro volta ai loro vicini ***tranne quello che gliel'ha inviato***.
## [[Comportamento]]
### `LEADER`
All'[[impulso spontaneo|inizio dell'algoritmo]], invia il suo [[messaggio]]:
```rust
spontaneously! {
send!(*, Message {...});
state!(DONE);
}
```
Se lo riceve indietro, non fa niente:
```rust
on_receive! {
_ => {},
}
```
### `SLEEPING`
Se riceve il [[messaggio]], lo inoltra a tutti i suoi vicini, poi passa allo stato `DONE`:
```rust
on_receive! {
_ => {
send!(!sender, msg);
state!(DONE);
},
}
```
### `DONE`
Non fa niente:
```rust
on_receive! {
_ => {},
}
```
## [[algoritmo corretto|Correttezza]]
Vedi [[flooding v2]].
## [[costo computazionale distribuito|Costo computazionale]]
### [[Comunicazione]]
Il costo computazionale è lo stesso del [[flooding v2]], ma con un trasferimento in meno per ogni [[entità]] che non è il [[leader]]:
$$
2 \cdot Channels - (Entities - 1)
$$
In [[notazione asintotica]], è sempre:
$$
\Large O(Channels)
$$
### [[Spazio]]
Un multiplo del [costo di comunicazione](#Comunicazione), sempre [[notazione asintotica|asintotico]] a:
$$
\Large O(Channels)
$$
### [[Tempo]]
Vedi [[flooding v2]].

View file

@ -1,9 +1,54 @@
[[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/problema]] per [[sistema distribuito|sistemi distribuiti]].
Problema per un [[sistema distribuito]], variante del [[broadcast problem]].
È un [[broadcast]] in cui ci sono più `INITIATOR`.
## Definizione
## Algoritmi
***Varie [[entità]]*** vogliono comunicare una ***stessa*** informazione a tutto il resto del [[sistema distribuito]].
- [[flooding broadcast v3]]
- #TODO Più archi avranno $2$ messaggi scambiati.
- $2 \cdot archi - (nodi - initiator)$
## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]]
- [[terminazione locale]]
- **[[restrizione di comunicazione|Comunicazione]]**
- ***[[iniziatori multipli]]***
- **[[restrizione di affidabilità|Affidabilità]]**
- [[affidabilità totale]]
- **[[restrizione di topologia|Topologia]]**
- [[grafo connesso]]
- [[full-duplex|grafo indiretto]]
- **[[restrizione di tempo|Tempo]]**
- [[ritardo di comunicazione unitario]]
## [[algoritmo|Algoritmi]]
- **Flooding**
- [[flooding v1]] (non [[algoritmo corretto|corretto]]...)
- [[flooding v2]] ([[algoritmo corretto|corretto]].)
- [[flooding v3]] (ottimizzato!)
## [[notazione Ω-grande|Lower bound]] [[costo computazionale|costo computazionale]]
### [[Comunicazione]]
#### Con un solo iniziatore
Uguale al [[broadcast problem]]:
$$
\Large 2 \cdot Channels - (Entities - 1)
$$
#### Con tutti iniziatori
Tutti i [[canale di comunicazione|canali]] vengono esplorati $2$ volte, quindi:
$$
\Large 2 \cdot Channels
$$
#### Con più iniziatori
Nel caso peggiore, gli iniziatori sono tutti vicini tra loro, e ciò aumenta il numero di [[canale di comunicazione|canali]] esplorati $2$ volte:
$$
\Large 2 \cdot Channels - (Entities - Initiators)
$$
### [[9 - Algoritmi distribuiti/1 - Problemi/tempo|Tempo]]
Nel caso peggiore, si ha un solo iniziatore, il che lo rende uguale al [[broadcast problem]].

View file

@ -1 +1,17 @@
{}
{
"nodes":[
{"id":"1ae79343ecdc2ecf","type":"group","x":900,"y":540,"width":1640,"height":1000,"color":"5","label":"Flooding"},
{"id":"1bf892659093d611","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v1.md","x":920,"y":560,"width":480,"height":960},
{"id":"a1841455be06b505","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v2.md","x":1480,"y":560,"width":480,"height":960},
{"id":"ea39c9f9c9d31ba6","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v3.md","x":2040,"y":560,"width":480,"height":960},
{"id":"f3ab5010d2f02e70","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/broadcast problem.md","x":-120,"y":560,"width":960,"height":960},
{"id":"11f8175c0f53986b","x":-120,"y":1680,"width":960,"height":960,"type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/wake-up problem.md"}
],
"edges":[
{"id":"35072e6a9d31a026","fromNode":"1bf892659093d611","fromSide":"right","toNode":"a1841455be06b505","toSide":"left"},
{"id":"3dc6b0d3f79913da","fromNode":"a1841455be06b505","fromSide":"right","toNode":"ea39c9f9c9d31ba6","toSide":"left"},
{"id":"ef4269bad6676843","fromNode":"f3ab5010d2f02e70","fromSide":"bottom","toNode":"11f8175c0f53986b","toSide":"top"},
{"id":"29e162f3ecbad77b","fromNode":"11f8175c0f53986b","fromSide":"right","toNode":"1ae79343ecdc2ecf","toSide":"left"},
{"id":"b064dba571d8d37f","fromNode":"f3ab5010d2f02e70","fromSide":"right","toNode":"1ae79343ecdc2ecf","toSide":"left"}
]
}

View file

@ -1,16 +0,0 @@
[[Algoritmo]] di [[costruzione di uno spanning tree]].
Utilizza un [[token]] per visitare sequenzialmente tutti i nodi del tree.
## #TODO [[restrizioni al modello dei sistemi distribuiti]]
- Iniziatore singolo
- [[full-duplex]]
- Connettività???
- [[affidabilità totale]]
## [[Stato]]
## [[comportamento]]

View file

@ -1,11 +0,0 @@
[[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/problema]] per [[sistema distribuito|sistemi distribuiti]].
Consiste nel creare uno [[spanning tree]] per effettuare efficientemente [[broadcast]] ripetuti.
## [[restrizioni al modello dei sistemi distribuiti]]
#TODO
## Algoritmi
- [[protocollo shout v1]]

View file

@ -0,0 +1,18 @@
Problema per un [[sistema distribuito]], che estende il problema di [[spanning tree construction]].
## Definizione
Si vuole [[problema di ricerca|determinare]] uno [[spanning tree]] per il [[sistema distribuito]] in modo da poter effettuare efficientemente [[broadcast problem|broadcast]], ***ma è possibile che più [[entità]] diano il via alla costruzione contemporaneamente***.
## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]]
- **[[restrizione di comunicazione|Comunicazione]]**
- ***[[iniziatori multipli]]***
- [[identificatori univoci]]
- **[[restrizione di affidabilità|Affidabilità]]**
- [[affidabilità totale]]
- **[[restrizione di topologia|Topologia]]**
- [[grafo connesso]]
- [[full-duplex|grafo indiretto]]
- **[[restrizione di tempo|Tempo]]**
- [[ritardo di comunicazione unitario]]

View file

@ -1,11 +0,0 @@
[[Algoritmo]] per la [[costruzione di uno spanning tree]].
## #TODO [[Stato]]
## #TODO [[comportamento]]
## [[costo computazionale distribuito]]
È composto da una fase di [[flooding broadcast v3]] più una fase di reply.
Dato che nella fase di reply ogni nodo risponde una e una sola volta, possiamo dire che il costo sia esattamente doppio a quello del [[flooding broadcast v3]].

View file

@ -1,8 +0,0 @@
[[Algoritmo]] per la [[costruzione di uno spanning tree]], basato su [[protocollo shout v1]] ma che interpreta come `No` lo scambio di due `Question` tra nodi.
## #TODO [[Stato]]
## #TODO [[comportamento]]
## [[costo computazionale distribuito]]

View file

@ -0,0 +1,23 @@
Problema per un [[sistema distribuito]].
## Definizione
Si vuole [[problema di ricerca|determinare]] uno [[spanning tree]] per il [[sistema distribuito]] in modo da poter effettuare efficientemente [[broadcast problem|broadcast]].
## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]]
- **[[restrizione di comunicazione|Comunicazione]]**
- [[iniziatore singolo]]
- **[[restrizione di affidabilità|Affidabilità]]**
- [[affidabilità totale]]
- **[[restrizione di topologia|Topologia]]**
- [[grafo connesso]]
- [[full-duplex|grafo indiretto]]
- **[[restrizione di tempo|Tempo]]**
- [[ritardo di comunicazione unitario]]
## [[algoritmo|Algoritmi]]
- [[SHOUT protocol]]
- [[SHOUT+ protocol]]
- [[spanning tree by depth-first traversal]]

View file

@ -1 +1 @@
[[Sottografo]] [[grafo aciclico|aciclico]] [[grafo connesso|connesso]] che contiene tutti i nodi dell'originale, ma solo un sottoinsieme degli archi.
Sotto-[[grafo]] [[grafo aciclico|aciclico]] che include **tutti i [[nodo di un grafo|nodi]]**.

View file

@ -1 +1,9 @@
{}
{
"nodes":[
{"id":"e4db85d4dd9cb928","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/spanning tree construction.md","x":-320,"y":-1280,"width":960,"height":960},
{"id":"42f2908da34c9d4d","x":-40,"y":-1840,"width":400,"height":400,"type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/spanning tree.md"}
],
"edges":[
{"id":"0b872430734f1f17","fromNode":"42f2908da34c9d4d","fromSide":"bottom","toNode":"e4db85d4dd9cb928","toSide":"top"}
]
}

View file

@ -0,0 +1 @@
Unica [[entità]] di un [[sistema distribuito]] che dà il via ad un [[algoritmo]] in condizioni di [[iniziatore singolo]].

View file

@ -2,7 +2,7 @@
## Funzionamento (del duale FloodMin)
Vengono effettuati $Diametro$ [[flooding broadcast v3]], ciascuno con l'id più basso incontrato da ciascun nodo nella fase precedente.
Vengono effettuati $Diametro$ [[flooding v3]], ciascuno con l'id più basso incontrato da ciascun nodo nella fase precedente.
## [[costo computazionale]]

View file

@ -1,5 +0,0 @@
[[algoritmo]] di [[routing]].
Sfrutta il [[broadcast]] per fare arrivare il messaggio a destinazione.
Funziona, ma è molto problematico in termini di [[costo computazionale distribuito]]!

View file

@ -1,5 +0,0 @@
#TODO Termine?
Database contenuto in ciascuna entità che effettua [[routing]].
Associa ogni destinazione al collegamento necessario per raggiungerla e al costo richiesto.

View file

@ -1,7 +0,0 @@
---
aliases:
- instradamento
---
[[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/problema]].
Consiste nel determinare un percorso all'interno della [[rete di comunicazione]] tra due [[entità]].

View file

@ -0,0 +1,14 @@
---
aliases:
- routing function
---
[[Funzione]] [[individuale]] che, in un problema di [[routing]], associa ogni [[entità]] con il [[canale di comunicazione]] da utilizzare per raggiungerla.
$$
\def \varSource {{\color{LimeGreen} Source}}
\def \varDestination {{\color{IndianRed} Destination}}
\Large
\textrm{Channel}_{\varSource}(\varDestination)
$$
Comunemente implementata come [[routing table]].

View file

@ -0,0 +1,65 @@
[[algoritmo]] [[iterativo]] di [[routing]] che sfrutta la visita [[breadth-first]].
## Funzionamento
### Distanze a relazione
Consideriamo due [[entità]] vicine nel [[sistema distribuito]]:
$$
\def \varSource {{\color{LimeGreen} Source}}
\def \varA {{\color{DarkGoldenrod} Entity_A}}
\def \varB {{\color{Goldenrod} Entity_B}}
\Large
\varA\ \textrm{neighbours}\ \varB
$$
Misuriamo la [[distanza]] di $\varA$ dalla sorgente $\varSource$:
$$
\Large
\textrm{Distance}_{\varSource}(\varA)
$$
Confrontiamola con la [[distanza]] di $\varB$, notando che ci si può trovare in tre casi:
$$
\Large
\textrm{Distance}_{\varSource}(\varA) = \begin{cases}
\textrm{Distance}_{\varSource}(\varB)-1\\
\textrm{Distance}_{\varSource}(\varB)\\
\textrm{Distance}_{\varSource}(\varB)+1
\end{cases}
$$
### Albero parziale
Definiamo un *albero parziale*, che ad ogni iterazione conterrà i nodi a distanza $Iterazione - 1$, e poi esploriamo i nodi vicini fino a raggiungere i nodi a distanza $Iterazione$.
## [[stato di un'entità|Stati]]
- `SOURCE`: il [[leader]]
- `UNKNOWN`: una [[entità]] non parte dell'albero parziale
- `EXPLORED`: una [[entità]] parte dell'albero parziale
## [[Comportamento]]
### `SOURCE`
==...==
### `UNKNOWN`
==...==
### `EXPLORED`
==...==
## [[costo computazionale distribuito|Costo computazionale]]
### [[Comunicazione]]
==...==
### [[Spazio]]
==...==
### [[Tempo]]
==...==

View file

@ -0,0 +1 @@
[[Entità]] che partecipa ad un [[algoritmo]] di [[routing]].

View file

@ -0,0 +1,3 @@
[[Risorsa]].
[[Spazio]] necessario a memorizzare la [[funzione di routing]].

View file

@ -0,0 +1,15 @@
In un contesto di [[routing]], [[associazione]] tra [[entità]] da raggiungere e [[canale di comunicazione]] da utilizzare più [[costo]] totale per raggiungerla.
$$
\def \varSource {{\color{LimeGreen} Source}}
\def \varDestination {{\color{IndianRed} Destination}}
\Large
\varDestination \to
\begin{pmatrix}
\textrm{Channel}_{\varSource}(\varDestination)
\\
\textrm{Cost}_{\varSource}(\varDestination)
\end{pmatrix}
$$
Implementazione semplice di [[funzione di routing]].

View file

@ -0,0 +1,28 @@
[[problema di ottimizzazione]] per un [[sistema distribuito]].
## Definizione
Date due qualsiasi [[entità]], si vuole determinare un [[cammino]] nella [[rete di comunicazione]] che permetta alle due di comunicare persistentemente.
### Terminologia
Le [[entità]] che partecipano alla risoluzione del problema sono dette anche [[router]].
Ogni entità ha una [[funzione di routing]], archiviata nella [[routing memory]], che richiede un dato [[tempo di ricerca]] per essere eseguita.e mi
## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]]
- [[full-duplex]]
- [[canale di comunicazione|canali di comunicazione]] con un [[costo]]
- ==connettività?==
- [[affidabilità totale]]
- [[orientamento locale]]
- [[identificatori univoci]]
## [[algoritmo|Algoritmi]]
- [[broadcast routing]]
- [[routing table gossiping]]
- [[routing table iterating]]
- [[shortest path spanning tree]]
- [[min-hop routing]]

View file

@ -0,0 +1,3 @@
[[Risorsa]].
[[Tempo]] necessario a valutare la [[funzione di routing]].

View file

@ -0,0 +1,4 @@
{
"nodes":[],
"edges":[]
}

View file

@ -0,0 +1,13 @@
Appunti del corso di ***Algoritmi distribuiti***, tenuto da [[Manuela Montangero]] e [[Giacomo Cabri]] nel primo semestre dell'anno accademico 2023/2024.
## Appunti
1. [[★ problemi.canvas|★ problemi]]
2. [[★ algoritmi di approssimazione.canvas|★ algoritmi di approssimazione]]
3. **Computazione distribuita**
1. [[★ concetti.canvas|★ concetti]]
2. [[★ broadcast.canvas|★ broadcast]]
3. [[★ spanning tree.canvas|★ spanning tree]]
4. [[★ computation in trees.canvas|★ computation in trees]]
5. [[★ leader election.canvas|★ leader election]]
6. [[★ routing.canvas|★ routing]]

View file

@ -5,35 +5,41 @@ Sono [Steffo](https://www.steffo.eu/), studente del corso di Laurea Magistrale i
Li [ho pubblicati qui](https://gh.steffo.eu/obsiview/?vault=https%3A%2F%2Fraw.githubusercontent.com%2FSteffo99%2Fappunti-magistrali%2Fmain%2F&path=README.md) nella speranza che ti possano essere utili!
Buona fortuna! :)
## Insegnamenti
## Contenuti
### 7 - Primo semestre magistrale
### `0` - Sistema e materiali di studio
- [Big data analytics](7%20-%20Big%20data%20analytics/README.md)
- [High performance computing](7%20-%20High%20performance%20computing/README.md)
- Concetti generali sfusi
- Template per creazione di nuove pagine
- Materiali vari di studio (non pubblicati, ma potenzialmente referenziati)
### 8 - Secondo semestre magistrale
### `7` - Primo semestre magistrale
- [Crittografia applicata](8%20-%20Crittografia%20applicata/README.md)
- [Metodologie di sviluppo software](8%20-%20Metodologie%20di%20sviluppo%20software/README.md)
- [Sistemi complessi](8%20-%20Sistemi%20complessi/README.md)
- [Sviluppo di software sicuro](8%20-%20Sviluppo%20di%20software%20sicuro/README.md)
- [[★ big data analytics]]
- [[★ high performance computing]]
### 9 - Terzo semestre magistrale
### `8` - Secondo semestre magistrale
- [Algoritmi distribuiti](9%20-%20Algoritmi%20distribuiti/README.md)
- [Cloud and edge computing](9%20-%20Cloud%20and%20edge%20computing/README.md)
- [Kernel hacking](9%20-%20Kernel%20hacking/README.md)
- [Programmazione mobile](9%20-%20Programmazione%20mobile/README.md)
- [[★ crittografia applicata]]
- [[★ metodologie di sviluppo software]]
- [[★ sistemi complessi]]
- [[★ sviluppo di software sicuro]]
### 10 - Quarto semestre magistrale
### `9` - Terzo semestre magistrale
- [[★ algoritmi distribuiti]]
- [[★ cloud and edge computing]]
- [[★ kernel hacking]]
- [[★ programmazione mobile]]
### `10` - Quarto semestre magistrale
*Non c'è ancora niente qui.*
### X - Work-in-progress
### `X` - Work-in-progress
- [Introduction to quantum information processing](X%20-%20Introduction%20to%20quantum%20information%20processing/README.md)
- [Fondamenti di machine learning](X%20-%20Fondamenti%20di%20machine%20learning/README.md)
- [[★ introduction to quantum information processing]]
- [[★ fondamenti di machine learning]]
## Licenza

File diff suppressed because it is too large Load diff