Gedistribueerde Systemen
From RygirWiki
Contents |
[edit] Examenvragen
[edit] Academiejaar 2009-2010
29-1-'10
[edit] Vraag 1
Bestond uit 2 delen. Wat zijn de twee grote interactiemodellen (korte uitleg), wat zijn de belangrijkste kenmerken, voor en nadelen?
- asynchroon en synchroon
Geef 3 verschillende failures die in het handboek gebruikt worden, en korte uitleg (2 of 3 regels per failure).
- Omission
- Crash
- Timing
- ...
[edit] Vraag 2
Schets uit welke onderdelen RMI bestaat en bespreek wat ze doen. Doe hetzelfde maar korter met RPC, en vergelijk de twee.
[edit] Vraag 3
Leg uit hoe squirrel web cache werkt, en vergelijk met klassieke proxy-aanpak.
[edit] Vraag 4
Bespreek in detail Christian's method voor synchronisatie en vergelijk met berkeley algoritme.
[edit] Vraag 5
Ricart en Agrawalla algoritme voor multicast : geef en bespreek, maar je hoeft niet uit te leggen hoe de performantie is e.d. Leg uit adhv de gegeven tekening.
- Schemake uit het boek gegeven, 3 processen p1,p2,p3. p2 stuurt request naar p1 en p3 met request nummer 34, p1 stuurt zijn request gelijktijdig met nummer 42, p2 krijgt dus antwoord van p1 en p3, die geen toegang tot de kritieke sectie wil, p1 krijgt dan weer geen antwoord van p2 omdat die voorrang heeft, maar wel van p3 omdat die zich niet interesseert.
[edit] Vraag 6
leg uit : lost updates en premature writes. Geef een zelfverzonnen voorbeeld voor elk + leg uit waar het probleem zich voordoet
- lost updates is als je een transactie begint en een variabele inleest, en deze wordt nadien door een andere transactie bijgewerkt, maar je negeert dat in je eigen transactie, en schrijft je resultaat er daarna overheen waardoor je geen rekening hebt gehouden met de aanpassingen.
- Premature write is vergelijkbaar, je gaat het resultaat al wegschrijven en andere transacties kunnen op dat moment op basis van dit resultaat al verder gaan, maar als dan blijkt dat je toch je transactie moet terugdraaien, dan kan dat mislopen omdat die andere nu je update negeren ( in de stijl van lost updates) of omdat die wel correct de resource gelocked hebben, met als gevolg dat je gegevens hebt weggeschreven die nog niet juist waren en anderen hebben die gebruikt.
[edit] Vraag 7
Geef de soorten ordening bij een distributed bulletin board en leg uit met een voorbeeld waarbij je een paar posts content moet verzinnen om aan te geven wat het verschil is.
- uitleggen :
- FIFO
- causaal
- totale ordering
[edit] Vraag 8
Waarom is NFS stateless? Geef 2 duidelijk verschillende voordelen en 2 nadelen van deze aanpak.
- + Altijd kunnen openen
- - Geen locking, dus geen bescherming van deze "kritieke sectie", met alle gevolgen van dien.
[edit] Vraag 9
Wat is de maximale theoretische speedup factor bij parallellisme? Zijn er factoren die zorgen dat die misschien niet gehaald wordt? Zijn er misschien factoren die kunnen zorgen dat hij overtroffen kan worden?
- Alles : Zie kopiebundel parallelisme.
- Maximale theoretische hangt af van welke factoren je variabel acht, je kan zeggen gewoon p keer de enkelvoudige, je kan rekening houden met constante ondeelbare taken, en dan krijg je als je die meeschaalt bij 5% ondeelbare taken nog maximaal 20% snelheidswinst, maar als je zegt dat er een constante hoeveelheid ondeelbare taken zijn, dan krijg je als je de taakgrootte vergroot veel meer snelheidswinst (formule is iets als tijd nodig voor ondeelbare taken, die constant is plus de tijd die overschiet, en dat is de tijd voor 1 deeltaak maal het aantal keer dat de taakgrootte zegt, en dat geheel dan weer gedeeld door het aantal processoren).
- Je zal die dus niet halen als er ondeelbare taken zijn, of als er communicatie overhead bijkomt, of als er idle tijd is doordat sommige deelprocessen sneller zijn als andere en moeten wachten op resultaten van anderen.
- superlineair schalen kan zeker, om wille van dat je parallel algoritme beter kan zijn dan je lineaire versie (in welke geval de parallele delen in serie op 1 processor uitvoeren een optimalisatie van het seriele algoritme zou zijn), of omdat er voordelen ontstaan door het parallellisme, zoals bij het voorbeeld met de te doorzoeken blokken.
[edit] Vraag 10
Wat is linearizability bij replication? Is het praktisch bruikbaar?
[edit] Project Multi-op-een-rij
[edit] Suggesties voor aanpakken
[edit] P2P chain algoritme suggestie
k ga es ff opsommen wat ik denk dat ik nodig heb : -Het concept van joinen > we broadcasten in lan, en over routers is het genoeg als ge een IP hebt (eventueel op te lossen door een online server met vast IP/DNS die een lijst van alle spelers op moment heeft, waar ge dus mee kunt verbinden). > zodra ge een IP hebt om mee te verbinden (hetzij ontdekt door luisteren naar broadcasts lokaal, jaren 90 stijl, hetzij door server, (met community forum enzow, 2010 stijl ;) ),hetzij door een papierke met een IP op of zo, gaat ge verbinden. Deze doet een synchronize. (het huidige bord doorsturen, de klok meesturen? of ge stuurt zetten van iedereen van zichzelf en die waarmee geconnecteerd is stuurt die van disconnects ook mee) > En dan gaat ge er van uit dat iedereen synchroon is, en met zoveel als mogelijk (iedereen is ideaal, maar wil chainlinking doen, daisy chaining) verbinding gemaakt heeft. > nu stuurt ge move requests, met een zendnummer OF een zet-nummer (onder debat momenteel, kan mogelijk al voldoende zijn, maar kan ook gaat zijn in redenering), en dan gaat ge daar een random waarde in moffelen die uw teerlin zet is voor gelijke requests. > anderen sturen replies met of ze de zet aanvaarden of uitstellen naar een latere zet (of eventueel deny wegens onmogelijk) > en dan bij ontvangst van die weet ge genoeg om de zetten uit te voeren in volgorde, dus geen replies en alle requests en replies worden bezorgd aan iedereen trouwens ah nee, de replies alleen aan de afzender behalve bij multicast, dan heet iedereen de replies >en dan hebt ge nog een disconnect vraag, waarbij iedereen die speler uit de actieve lijst schrapt, en hetzelfde met timeout, waarbij die ook "gequit" is en dan hebt ge nog de mogelijkheid van netsplits > dus dan kunt ge geen problemen hebben als ge met aparte connections werkt...en wel met uw systeem van multicast, de reden dat daar op was over gestapt en toen was ik ergens op gekomen waardoor denk dat dat wel kon werken met multicast doordat die de spellen uit elkaar kon houden

