Zugriffsregelung

Zugriffsregelung im Alltag

Wenn mehrere Personen über ein Thema diskutieren, dann kommt es oft zu Gesprächsführungskonflikten: Wer darf jetzt eigentlich reden?

Meeting
Quelle: Wikimedia Commons

Solche Konflikte werden mit einfachen Gesprächsregeln gelöst: Wenn jemand anderes spricht, fängt man nicht selbst an, dazwischenzureden. Man wartet also, bis eine kleine Gesprächspause entsteht (das kann durchaus zu Schwierigkeiten bei Dauerrednern führen). Man sollte keine langen Monologe führen und somit anderen Personen auch die Gelegenheit geben, sich am Gespräch zu beteiligen. Wenn zwei Personen gleichzeitig zu reden anfangen, dann hört man am besten auf und einigt sich (z.B. durch eine Geste), wer zuerst dran ist.

Experimente mit einem Simulationsprogramm

Wir wollen die Zugriffsregelung analog zur Gesprächsregelung mit dem Transceiver-Programm transceiver_kollision_com1.py durchspielen.

Transceiver

Aufgabe 1

Verbindet mehrere Rechner über die serielle Schnittstelle an ein Buskabel. Kontrolliert, ob der Portbezeichner im Transceiver-Programm richtig vorgegeben ist.

Jetzt müssen die Adressen vergeben und eingestellt werden. Einigt euch auf Adressen aus dem Zahlenbereich 0..14. Beachtet, dass im Transceiver-Programm eine sehr große Bitzeit voreingestellt ist. Es dauert daher recht lange, bis die Einstellung übernommen ist.

(a) Wie merkt ein Kommunikationsteilnehmer, dass aktuell ein anderer Kommunikationsteilnehmer am senden ist?

(b) Wie merkt ein Sender, wenn ein anderer Kommunikationsteilnehmer auch gerade zu senden anfängt?

(c) Zur Konfliktbehandlung ist im Transceiver-Programm eine Alarm-Schaltfläche vorgesehen. Wie können Sender und Empfänger diesen Alarm benutzen, um einen Zugriffskonflikt zu behandeln?

(d) Wie sollte ein Empfänger sich verhalten, wenn er einen Zugriffskonflikt registriert.

Aufgabe 2

Wenn ihr das Verhalten von allen Kommunikationsteilnehmern gut geregelt habt, dann könnt ihr mit dem Transceiver-Programm kurze Nachrichten über den Bus austauschen - auch, wenn mehrere Teilnehmer gleichzeitig senden wollen.

CSMA/CD

Das Programm sendenMitKollisionserkennung.py sendet Text und geht dabei auch mit Kollisionen um. Das Verfahren, das dabei im Prinzip benutzt wird, nennt man CSMA/CD (Carrier Sense Multiple Access / Collision Detection).

Aufgabe 3 - Experimente mit CSMA/CD

Experimentiere mit dem Programm. Verbinde dazu mindestens drei Rechner mit dem Bus. Einer der Rechner fungiert dabei als Sender, ein zweiter Rechner als Empfänger, ein dritter Rechner stört gelegentlich die Übertragung. Zum Stören kannst Du z.B. den Universaltransceiver benutzen. Zum besseren Verständnis kannst Du auch den Quelltext des Senders analysieren.

Beschreibe das Verfahren und stelle es als Flussdiagramm dar.

Aufgabe 4 - Mehrere Sender

Experimentiere mit mindestens zwei Sendern und mindestens einem Empfänger. Beschreibe wie die Kommunikationsprozesse verlaufen. Erkläre dabei auch den Begriff "Echtzeitfähigkeit" und beurteile das vorhandene System in dieser Hinsicht.

Relevanz der Kollisionserkennung

Heutzutage werden mehrere Rechner meist über Switches verbunden. Diese stellen getrennte Anschlüsse für jeden Teilnehmer bereit und leiten die Daten gezielt an die jeweiligen Empfänger weiter. Dadurch kann es nicht mehr zu Kollisionen kommen. Dennoch lässt sich die Problematik auch heute nicht vermeiden, wenn ein gemeinsames Medium genutzt wird. Dies ist z.B. in Funknetzen prinzipbedingt der Fall, weshalb hier ähnliche Verfahren zum Tragen kommen. (siehe z.B. CSMA/CA)

Token Passing

Alternativ zum oben kennengelernten Verfahren kann man auch den Zugriff mittels "Token Passing" regeln. Dabei wird ein Token, das man sich wie einen Software-Staffelstab vorstellen kann, von einem Teilnehmer zum anderen Teilnehmer weitergereicht.

Aufgabe 5 - Staffelstab

Spiele "Token Passing" als Rollenspiel durch. Beschreibe wie man mit Hilfe eines Tokens den Zugriff auf ein Medium regeln kann. Beschreibe die Vor- und Nachteile gegenüber CSMA/CD.

X

Fehler melden

X

Suche