For faster navigation, this Iframe is preloading the Wikiwand page for Communicatiekanaal.

Communicatiekanaal

Uit Wikipedia, de vrije encyclopedie

Communications men.jpg

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:

  • Als model van communicatie in een berekening
  • Als fysiek kanaal tussen twee (of meer) processoren

Kanalen als berekeningsmodel

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.

Fysieke kanalen

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.

Kenmerken van kanalen

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:

  • Eenrichtingskanalen, waarbij de communicatie maar een kant op kan verlopen
  • Blokkerende kanalen, waarbij het gebruikende programma geblokkeerd wordt als het niet direct een waarde in het kanaal kan sturen of eruit kan lezen wanneer het dat probeert te doen
  • Asynchrone kanalen, waarbij de zender van een bericht niet hoeft te wachten totdat het bericht ontvangen is alvorens verder te mogen gaan
  • Gebufferde kanalen, waarlangs meerdere berichten tegelijkertijd onderweg kunnen zijn
{{bottomLinkPreText}} {{bottomLinkText}}
Communicatiekanaal
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Wikiwand 2.0 is here 🎉! We've made some exciting updates - No worries, you can always revert later on