Loading AI tools
Van Wikipedia, de vrije encyclopedie
Een communicatiekanaal in de zin van het gedistribueerd programmeren is een verbinding tussen processoren waarover data gecommuniceerd worden tussen de verbonden processoren.
Communicatiekanalen worden in twee betekenissen gebruikt in het ontwerp van gedistribueerde systemen:
Een communicatiekanaal in de zin van een berekeningsmodel is niet een fysiek kanaal maar een voorstelling van de manier waarop programma's samenwerken. Een kanaal in deze zin wordt gebruikt om het ontwerp van een programma vorm te geven rond bepaalde communicatie-regels (het communicatie-protocol) zoals die gelden tijdens de looptijd van het programma.
Het kanaal is een model van communicatie dat zich onderscheidt van de gedeelde variabele. Bij het ontwerpen van gedistribueerde programma's worden kanalen vaak gebruikt om een vorm van communicatie te modelleren waarbij de ontwerper van het programma niet direct verantwoordelijk is voor de synchronisatie van de communicatie – hetzij omdat er een fysiek kanaal wordt gebruikt, hetzij omdat de synchronisatie van de eigenlijke communicatie om het programma van de ontwerper heen gebeurt. Kanalen modelleren een vorm van communicatie waarbij het de ontwerper van het programma niets kan schelen wat er in het kanaal gebeurt – hij stopt er een waarde in of probeert er een waarde uit te halen en het verdere mechanisme van het kanaal is zijn zorg niet. De regels aangaande de werking van het kanaal zorgen verder automatisch voor de synchronisatie binnen het kanaal en de manier waarop de ontwerper van het programma de kanalen gebruikt kan die synchronisatie uitbreiden tot de rest van zijn programma.
Merk op dat een gemodelleerd kanaal niet noodzakelijk als fysiek kanaal geïmplementeerd hoeft te worden. Een implementatie in de vorm van gedeelde variabelen kan ook, zolang de eigenlijke implementatie maar de regels van het gemodelleerde kanaal eerbiedigt.
Ook in fysieke zin wordt van kanalen gebruikgemaakt. Met de opkomst van het gedistribueerd programmeren is ook het gebruik van netwerken van processoren om een berekening uit te voeren populair geworden. Opstellingen van processoren in een grid – een taurus van processoren, een ring, of processoren samen in een supercomputer-opstelling – of in een weidsere vorm van netwerk – het Internet of andere vormen van grid computing – maken gebruik van kanalen (netwerkverbindingen, bussen, etc.) om data van de ene processor naar de andere te transporteren.
De precieze vorm van een dergelijk netwerk kan van invloed zijn op de efficiëntie van een dergelijke berekening. Een vaak voorkomende optimalisatie van een gedistribueerd programma dat op een vast grid uitgevoerd zal worden, is die die gebruikmaakt van de vorm van het grid om een optimale doorvoersnelheid te behalen. Voor programma's op een wisselend grid als het internet is het daarentegen vaak zaak om de berekening te wapenen tegen het plotseling wegvallen van een deel van het grid.
Kanalen zijn er (zowel als model als in fysieke zin) in verschillende vormen al naargelang hun toepassing.
In principe kan een grid een datum van de ene kant naar de andere kant vervoeren. Speciale vormen van een dergelijk kanaal die vaker toegepast worden, zijn:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.